@Override
 public MutableFieldDef getMutableFieldDef(FieldDef fieldDef) {
   if (fieldDef != null) {
     FieldDefImpl fieldDefImpl = new FieldDefImpl();
     fieldDefImpl.setName(fieldDef.getName());
     fieldDefImpl.setSearchDefinition(fieldDef.getSearchDefinition());
     fieldDefImpl.setValueDef(fieldDef.getValueDef());
     fieldDefImpl.setVariations(fieldDef.getVariations().values());
     fieldDefImpl.setFieldStandaloneUpdateAble(true);
     fieldDefImpl.setRequired(true);
     return fieldDefImpl;
   } else {
     throw new IllegalArgumentException("Argument can not be null.");
   }
 }