org.sfm.jdbc.querydsl.TupleFieldMapperFactory Maven / Gradle / Ivy
package org.sfm.jdbc.querydsl;
import org.sfm.map.FieldMapper;
import org.sfm.map.FieldMapperErrorHandler;
import org.sfm.map.FieldMapperFactory;
import org.sfm.map.FieldMapperImpl;
import org.sfm.map.GetterFactory;
import org.sfm.map.MapperBuilderErrorHandler;
import org.sfm.reflect.Getter;
import org.sfm.reflect.Setter;
import org.sfm.reflect.TypeHelper;
import com.mysema.query.Tuple;
public final class TupleFieldMapperFactory implements FieldMapperFactory> {
private final GetterFactory> getterFactory;
public TupleFieldMapperFactory(GetterFactory> getterFactory) {
this.getterFactory = getterFactory;
}
@Override
public FieldMapper newFieldMapper(Setter setter,
TupleElementKey> key, FieldMapperErrorHandler> errorHandler, MapperBuilderErrorHandler mappingErrorHandler) {
final Class> type = TypeHelper.toClass(setter.getPropertyType());
Getter getter = getterFactory.newGetter(type, key);
if (getter == null) {
mappingErrorHandler.getterNotFound("Could not find getter for " + key + " type " + type);
}
return new FieldMapperImpl(getter, setter);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy