use of org.simpleflatmapper.map.MappingException in project SimpleFlatMapper by arnaudroger.
the class ConstantSourceMapperBuilderTest method testFieldMapperErrorHandler.
@Test
public void testFieldMapperErrorHandler() throws Exception {
ConstantSourceMapperBuilder<Object, MyObjectWithInner, SampleFieldKey> constantSourceMapperBuilder = new ConstantSourceMapperBuilder<Object, MyObjectWithInner, SampleFieldKey>(mapperSource, classMeta, MapperConfig.config(new IdentityFieldMapperColumnDefinitionProvider<SampleFieldKey>()).fieldMapperErrorHandler(new FieldMapperErrorHandler<SampleFieldKey>() {
@Override
public void errorMappingField(SampleFieldKey key, Object source, Object target, Exception error) throws MappingException {
}
}), new MappingContextFactoryBuilder<Object, SampleFieldKey>(null), SampleFieldKey.KEY_FACTORY);
constantSourceMapperBuilder.addMapping(new SampleFieldKey("prop_date", 16), FieldMapperColumnDefinition.<SampleFieldKey>identity());
Mapper<Object, MyObjectWithInner> mapper = constantSourceMapperBuilder.mapper();
MyObjectWithInner o = mapper.map(null);
System.out.println("mapper = " + mapper);
assertNull(o.prop);
}
use of org.simpleflatmapper.map.MappingException in project SimpleFlatMapper by arnaudroger.
the class AbstractMapperFactoryTest method testErrorHandlers.
@Test
public void testErrorHandlers() {
MapperFactory mapperFactory = new MapperFactory();
FieldMapperErrorHandler<SampleFieldKey> fieldMapperErrorHandler = new FieldMapperErrorHandler<SampleFieldKey>() {
@Override
public void errorMappingField(SampleFieldKey key, Object source, Object target, Exception error) throws MappingException {
}
};
MapperBuilderErrorHandler mapperBuilderErrorHandler = new MapperBuilderErrorHandler() {
@Override
public void accessorNotFound(String msg) {
}
@Override
public void propertyNotFound(Type target, String property) {
}
@Override
public void customFieldError(FieldKey<?> key, String message) {
}
};
ConsumerErrorHandler consumerErrorHandler = new ConsumerErrorHandler() {
@Override
public void handlerError(Throwable error, Object target) {
}
};
mapperFactory.fieldMapperErrorHandler(fieldMapperErrorHandler);
mapperFactory.mapperBuilderErrorHandler(mapperBuilderErrorHandler);
mapperFactory.consumerErrorHandler(consumerErrorHandler);
MapperConfig<SampleFieldKey, FieldMapperColumnDefinition<SampleFieldKey>> mapperConfig = mapperFactory.mapperConfig();
assertEquals(fieldMapperErrorHandler, mapperConfig.fieldMapperErrorHandler());
assertEquals(mapperBuilderErrorHandler, mapperConfig.mapperBuilderErrorHandler());
assertEquals(consumerErrorHandler, mapperConfig.consumerErrorHandler());
Assert.assertEquals(consumerErrorHandler, mapperFactory.consumerErrorHandler());
mapperFactory = new MapperFactory();
assertTrue(mapperFactory.ignorePropertyNotFound().mapperConfig().mapperBuilderErrorHandler() instanceof IgnoreMapperBuilderErrorHandler);
}
use of org.simpleflatmapper.map.MappingException in project SimpleFlatMapper by arnaudroger.
the class DiscriminatorMapperTest method setUp.
@Before
public void setUp() {
Mapper<Object[], Person> studentMapper = new Mapper<Object[], Person>() {
@Override
public Person map(Object[] source) throws MappingException {
return map(source, null);
}
@Override
public Person map(Object[] source, MappingContext<? super Object[]> context) throws MappingException {
StudentGS studentGS = new StudentGS();
try {
mapTo(source, studentGS, context);
} catch (Exception e) {
ErrorHelper.rethrow(e);
}
return studentGS;
}
@Override
public void mapTo(Object[] source, Person target, MappingContext<? super Object[]> context) throws Exception {
StudentGS studentGS = (StudentGS) target;
studentGS.setName((String) source[1]);
studentGS.setId((Integer) source[2]);
}
};
Mapper<Object[], Person> professorMapper = new Mapper<Object[], Person>() {
@Override
public Person map(Object[] source) throws MappingException {
return map(source, null);
}
@Override
public Person map(Object[] source, MappingContext<? super Object[]> context) throws MappingException {
ProfessorGS professorGS = new ProfessorGS();
try {
mapTo(source, professorGS, context);
} catch (Exception e) {
ErrorHelper.rethrow(e);
}
return professorGS;
}
@Override
public void mapTo(Object[] source, Person target, MappingContext<? super Object[]> context) throws Exception {
ProfessorGS professorGS = (ProfessorGS) target;
professorGS.setName((String) source[1]);
professorGS.setId((Integer) source[2]);
}
};
List<DiscriminatorMapper.PredicatedMapper<Object[], Object[][], Person, RuntimeException>> mappers = new ArrayList<DiscriminatorMapper.PredicatedMapper<Object[], Object[][], Person, RuntimeException>>();
mappers.add(new DiscriminatorMapper.PredicatedMapper<Object[], Object[][], Person, RuntimeException>(new Predicate<Object[]>() {
@Override
public boolean test(Object[] objects) {
return "student".equals(objects[0]);
}
}, studentMapper, new MappingContextFactoryFromRows<Object[], Object[][], RuntimeException>() {
@Override
public MappingContext<? super Object[]> newMappingContext(Object[][] objects) throws RuntimeException {
return MappingContext.INSTANCE;
}
}));
mappers.add(new DiscriminatorMapper.PredicatedMapper<Object[], Object[][], Person, RuntimeException>(new Predicate<Object[]>() {
@Override
public boolean test(Object[] objects) {
return "professor".equals(objects[0]);
}
}, professorMapper, new MappingContextFactoryFromRows<Object[], Object[][], RuntimeException>() {
@Override
public MappingContext<? super Object[]> newMappingContext(Object[][] objects) throws RuntimeException {
return MappingContext.INSTANCE;
}
}));
mapper = new DiscriminatorMapper<Object[], Object[][], Person, RuntimeException>(mappers, new UnaryFactory<Object[][], Enumarable<Object[]>>() {
@Override
public Enumarable<Object[]> newInstance(Object[][] objects) {
return new ArrayEnumarable<Object[]>(objects);
}
}, new UncheckedConverter<Object[], String>() {
@Override
public String convert(Object[] in) {
return Arrays.toString(in);
}
}, RethrowConsumerErrorHandler.INSTANCE);
}
use of org.simpleflatmapper.map.MappingException in project SimpleFlatMapper by arnaudroger.
the class JdbcMapperCustomMappingTest method testCustomMapping.
@Test
public void testCustomMapping() throws SQLException, Exception {
JdbcMapperFactory mapperFactory = JdbcMapperFactoryHelper.asm();
mapperFactory.addCustomFieldMapper("id", new FieldMapper<ResultSet, DbObject>() {
@Override
public void mapTo(ResultSet source, DbObject target, MappingContext<? super ResultSet> mappingContext) throws MappingException {
target.setId(1);
}
});
final JdbcMapper<DbObject> mapper = mapperFactory.newMapper(DbObject.class);
DbHelper.testQuery(new TestRowHandler<PreparedStatement>() {
@Override
public void handle(PreparedStatement t) throws Exception {
ResultSet r = t.executeQuery();
r.next();
DbHelper.assertDbObjectMapping(mapper.map(r));
}
}, DbHelper.TEST_DB_OBJECT_QUERY.replace("id,", "33 as id,"));
}
use of org.simpleflatmapper.map.MappingException in project SimpleFlatMapper by arnaudroger.
the class JdbcMapperCustomMappingTest method testCustomMappingStatic.
@Test
public void testCustomMappingStatic() throws SQLException, Exception {
JdbcMapperFactory mapperFactory = JdbcMapperFactoryHelper.asm();
mapperFactory.addCustomFieldMapper("id", new FieldMapper<ResultSet, DbObject>() {
@Override
public void mapTo(ResultSet source, DbObject target, MappingContext<? super ResultSet> mappingContext) throws MappingException {
target.setId(1);
}
});
final JdbcMapper<DbObject> mapper = JdbcMapperDbObjectTest.addColumn(mapperFactory.newBuilder(DbObject.class)).mapper();
DbHelper.testQuery(new TestRowHandler<PreparedStatement>() {
@Override
public void handle(PreparedStatement t) throws Exception {
ResultSet r = t.executeQuery();
r.next();
DbHelper.assertDbObjectMapping(mapper.map(r));
}
}, DbHelper.TEST_DB_OBJECT_QUERY.replace("id,", "33 as id,"));
}
Aggregations