private void writeDestinationValue(Object destObj, Object destFieldValue, FieldMap fieldMap, Object srcObj) {
boolean bypass = false;
if (destFieldValue == null && !fieldMap.isDestMapNull()) {
bypass = true;
}
if (destFieldValue != null && !fieldMap.isDestMapEmptyString() && destFieldValue.getClass().equals(String.class)
&& StringUtils.isEmpty((String) destFieldValue)) {
bypass = true;
}
if (destFieldValue != null && fieldMap.isTrimStrings() && destFieldValue.getClass().equals(String.class)) {
destFieldValue = ((String) destFieldValue).trim();
}
if (!bypass) {
eventMgr.fireEvent(new DozerEvent(DozerEventType.MAPPING_PRE_WRITING_DEST_VALUE, fieldMap.getClassMap(), fieldMap, srcObj,
destObj, destFieldValue));
fieldMap.writeDestValue(destObj, destFieldValue);
eventMgr.fireEvent(new DozerEvent(DozerEventType.MAPPING_POST_WRITING_DEST_VALUE, fieldMap.getClassMap(), fieldMap, srcObj,
destObj, destFieldValue));
}
}