/**
  * Clones a field.
  *
  * @param Field $field
  *
  * @return Field The cloned field
  */
 protected function cloneField(Field $field)
 {
     $clone = clone $field;
     $clone->setChildren(array_map(function ($child) {
         return $this->cloneField($child);
     }, $field->getChildren()));
     $clone->setConstraints(array_map(function ($constraint) {
         return clone $constraint;
     }, $field->getConstraints()));
     return $clone;
 }