}
public static final Object mapFromDbObjectNode(final Class classz, final ObjectResultNode node,
final Mapping mapping) throws InstantiationException, IllegalAccessException, IllegalArgumentException,
InvocationTargetException, NotsupportedTypeException {
DatabaseField databaseField = mapping.getField().getAnnotation(DatabaseField.class);
final Object value;
if (mapping.isOptionalField() && isRowWithAllFieldsNull(node)) {
value = null;
} else if (databaseField.mapper() != DefaultObjectMapper.class) {
ObjectMapper mapper = databaseField.mapper().newInstance();
value = mapper.unmarshalFromDbNode(node);
} else {
value = mapField(mapping.getFieldClass(), node);
}