org.sfm.jooq.RecordFieldMapperFactory Maven / Gradle / Ivy
package org.sfm.jooq;
import java.lang.reflect.Type;
import org.jooq.Record;
import org.sfm.map.FieldMapperErrorHandler;
import org.sfm.map.MapperBuilderErrorHandler;
import org.sfm.map.impl.FieldErrorHandlerMapper;
import org.sfm.map.impl.FieldMapper;
import org.sfm.map.impl.FieldMapperFactory;
import org.sfm.map.impl.fieldmapper.FieldMapperImpl;
import org.sfm.reflect.Getter;
import org.sfm.reflect.Setter;
public class RecordFieldMapperFactory implements
FieldMapperFactory {
private RecordGetterFactory getterFactory;
public RecordFieldMapperFactory(RecordGetterFactory recordGetterFactory) {
this.getterFactory = recordGetterFactory;
}
@Override
public FieldMapper newFieldMapper(Type type, Setter setter,
JooqFieldKey key, FieldMapperErrorHandler errorHandler,
MapperBuilderErrorHandler mapperErrorHandler) {
Getter getter = getterFactory.newGetter(type, key);
if (getter == null) {
mapperErrorHandler.getterNotFound("Could not find getter for " + key + " type " + type);
}
FieldMapper fm = new FieldMapperImpl(getter, setter);
if (errorHandler != null) {
fm = new FieldErrorHandlerMapper(key, fm, errorHandler);
}
return fm;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy