@Component
public class RegionalOfficeToEntityConverter implements CustomConverter {
@Qualifier("transformer")
@Autowired
private Transformer transformer;
@Override
@Transactional
public Object convert(Object existingDestinationFieldValue, Object sourceFieldValue, Class<?> destinationClass,
Class<?> sourceClass)
{
if (sourceFieldValue == null) {
return sourceFieldValue;
}
if (sourceFieldValue instanceof RegionalOffice) {
RegionalOffice office = (RegionalOffice) sourceFieldValue;
RegionalOfficeEntity entity = new RegionalOfficeEntity();
transformer.map(office, entity);
return entity;
}
if (sourceFieldValue instanceof RegionalOfficeEntity) {
RegionalOfficeEntity entity = (RegionalOfficeEntity) sourceFieldValue;
RegionalOffice office = new RegionalOffice();
transformer.map(entity, office);
return office;
}
return null;
}
}