FieldMap result;
if (srcField.isMapTypeCustomGetterSetterField() || destField.isMapTypeCustomGetterSetterField()
|| classMap.isSrcClassMapTypeCustomGetterSetter() || classMap.isDestClassMapTypeCustomGetterSetter()) {
result = new MapFieldMap(classMap);
} else if (srcField.isCustomGetterSetterField() || destField.isCustomGetterSetterField()) {
result = new CustomGetSetMethodFieldMap(classMap);
} else {
result = new GenericFieldMap(classMap);
}
result.setSrcField(srcField);