public MappingContextFactoryBuilder<S, K> newBuilder(List<KeyAndPredicate<S, K>> subKeys, PropertyMeta<?, ?> owner) { // look for duplicate for(MappingContextFactoryBuilder<S, K> child : children) { if ((child.owner.getPath().equals(owner.getPath()) && child.owner.getPropertyClassMeta().equals(owner.getPropertyClassMeta())) ) { return child; } } MappingContextFactoryBuilder<S, K> subBuilder = new MappingContextFactoryBuilder<S, K>(counter, subKeys, keySourceGetter, this, owner, ignoreRootKey); children.add(subBuilder); return subBuilder; }
public MappingContextFactoryBuilder<S, K> newBuilder(List<KeyAndPredicate<S, K>> subKeys, PropertyMeta<?, ?> owner) { // look for duplicate for(MappingContextFactoryBuilder<S, K> child : children) { if ((child.owner.getPath().equals(owner.getPath()) && child.owner.getPropertyClassMeta().equals(owner.getPropertyClassMeta())) ) { return child; } } MappingContextFactoryBuilder<S, K> subBuilder = new MappingContextFactoryBuilder<S, K>(counter, subKeys, keySourceGetter, this, owner, ignoreRootKey); children.add(subBuilder); return subBuilder; }
public SheetMapperBuilder(ClassMeta<T> classMeta, MapperConfig<CsvColumnKey, Row> mapperConfig, GetterFactory<Row, CsvColumnKey> getterFactory) { super(KEY_FACTORY, new SetRowMapperBuilderImpl<RowMapper<T> , Row, Sheet, T, CsvColumnKey, RuntimeException>( classMeta, new MappingContextFactoryBuilder<Row, CsvColumnKey>(CsvColumnKeyRowKeySourceGetter.INSTANCE, !mapperConfig.unorderedJoin()), mapperConfig, FIELD_MAPPER_SOURCE.getterFactory(getterFactory), KEY_FACTORY, new UnaryFactory<Sheet, Enumerable<Row>>() { @Override public Enumerable<Row> newInstance(Sheet rows) { throw new UnsupportedOperationException(); } }, new RowMapperFactory<T>(), CsvColumnKeyRowKeySourceGetter.INSTANCE), new BiFunction<RowMapper<T>, List<CsvColumnKey>, RowMapper<T>>() { @Override public RowMapper<T> apply(RowMapper<T> setRowMapper, List<CsvColumnKey> keys) { return setRowMapper; } }, COLUMN_DEFINITION_FACTORY, 0 ); }
@Before public void setUp() { builder = new MappingContextFactoryBuilder<Object[], SampleFieldKey>(getKeySourceGetter(), true); } @Test
final MappingContextFactoryBuilder<T, K> mappingContextFactoryBuilder = new MappingContextFactoryBuilder<T, K>(keySourceGetter(), !mapperConfig.unorderedJoin());
final MappingContextFactoryBuilder<T, K> mappingContextFactoryBuilder = new MappingContextFactoryBuilder<T, K>(keySourceGetter(), !mapperConfig.unorderedJoin());
new DefaultSetRowMapperBuilder<Object[], Object[][], T, SampleFieldKey, Exception>( classMeta, new MappingContextFactoryBuilder<Object[], SampleFieldKey>(KEY_SOURCE_GETTER, !mapperConfig.unorderedJoin()), mapperConfig, new MapperSourceImpl<Object[], SampleFieldKey>(Object[].class, new ContextualGetterFactoryAdapter<Object[], SampleFieldKey>(GETTER_FACTORY)),
private QueryPreparer<T> preparedStatementMapper(NamedSqlQuery query, String[] generatedKeys) { for(int i = 0; i < query.getParametersSize(); i++) { addColumn(query.getParameter(i).getName()); } boolean hasMultiIndex = propertyMappingsBuilder.forEachProperties(new ForEachCallBack<PropertyMapping<T, ?, JdbcColumnKey>>() { boolean hasMultiIndex; @Override public void handle(PropertyMapping<T, ?, JdbcColumnKey> pm) { hasMultiIndex |= isMultiIndex(pm.getPropertyMeta()); } }).hasMultiIndex; if (hasMultiIndex) { MappingContextFactoryBuilder<T, JdbcColumnKey> mappingContextFactoryBuilder = new MappingContextFactoryBuilder<T, JdbcColumnKey>(keySourceGetter(), !mapperConfig.unorderedJoin()); return new MultiIndexQueryPreparer<T>(query, buildIndexFieldMappers(mappingContextFactoryBuilder), generatedKeys, mappingContextFactoryBuilder.build()); } else { return new MapperQueryPreparer<T>(query, mapper(), generatedKeys); } }
private QueryPreparer<T> preparedStatementMapper(NamedSqlQuery query, String[] generatedKeys) { for(int i = 0; i < query.getParametersSize(); i++) { addColumn(query.getParameter(i).getName()); } boolean hasMultiIndex = propertyMappingsBuilder.forEachProperties(new ForEachCallBack<PropertyMapping<T, ?, JdbcColumnKey>>() { boolean hasMultiIndex; @Override public void handle(PropertyMapping<T, ?, JdbcColumnKey> pm) { hasMultiIndex |= isMultiIndex(pm.getPropertyMeta()); } }).hasMultiIndex; if (hasMultiIndex) { MappingContextFactoryBuilder<T, JdbcColumnKey> mappingContextFactoryBuilder = new MappingContextFactoryBuilder<T, JdbcColumnKey>(keySourceGetter(), !mapperConfig.unorderedJoin()); return new MultiIndexQueryPreparer<T>(query, buildIndexFieldMappers(mappingContextFactoryBuilder), generatedKeys, mappingContextFactoryBuilder.build()); } else { return new MapperQueryPreparer<T>(query, mapper(), generatedKeys); } }
@Test public void testFieldMapperErrorHandler() throws Exception{ ConstantSourceMapperBuilder<Object, MyObjectWithInner, SampleFieldKey> constantSourceMapperBuilder = ConstantSourceMapperBuilder.<Object, MyObjectWithInner, SampleFieldKey>newConstantSourceMapperBuilder( mapperSource, classMeta, MapperConfig.config(new IdentityFieldMapperColumnDefinitionProvider<SampleFieldKey>()).fieldMapperErrorHandler(new FieldMapperErrorHandler<SampleFieldKey>() { @Override public void errorMappingField(SampleFieldKey key, Object source, Object target, Exception error, Context mappingContext) throws MappingException { } }), new MappingContextFactoryBuilder<Object, SampleFieldKey>(null, true), SampleFieldKey.KEY_FACTORY ); constantSourceMapperBuilder.addMapping(new SampleFieldKey("prop_date", 16), FieldMapperColumnDefinition.<SampleFieldKey>identity()); SourceMapper<Object, MyObjectWithInner> mapper = constantSourceMapperBuilder.mapper(); MyObjectWithInner o = mapper.map(null, null); System.out.println("mapper = " + mapper); assertNull(o.prop.date); }
@Test public void testAnonymousParameterWithDifferentType() throws Exception { ConstantSourceMapperBuilder<Object, MyObjectWithInner, SampleFieldKey> constantSourceMapperBuilder = ConstantSourceMapperBuilder.<Object, MyObjectWithInner, SampleFieldKey>newConstantSourceMapperBuilder( mapperSource, classMeta, MapperConfig.config(new IdentityFieldMapperColumnDefinitionProvider<SampleFieldKey>()), new MappingContextFactoryBuilder<Object, SampleFieldKey>(null, true), SampleFieldKey.KEY_FACTORY ); constantSourceMapperBuilder.addMapping(new SampleFieldKey("prop", 0, Date.class), FieldMapperColumnDefinition.<SampleFieldKey>identity()); SourceMapper<Object, MyObjectWithInner> mapper = constantSourceMapperBuilder.mapper(); MyObjectWithInner o = mapper.map(null, null); assertEquals(DATE, o.prop.date); assertNull(o.prop.str); }
@Test public void testMapInnerObjectWithMapper() throws Exception { ConstantSourceMapperBuilder<Object, MyObjectWithInner, SampleFieldKey> constantSourceMapperBuilder = ConstantSourceMapperBuilder.<Object, MyObjectWithInner, SampleFieldKey>newConstantSourceMapperBuilder( mapperSource, classMeta, MapperConfig.config(new IdentityFieldMapperColumnDefinitionProvider<SampleFieldKey>()), new MappingContextFactoryBuilder<Object, SampleFieldKey>(null, true), SampleFieldKey.KEY_FACTORY ); constantSourceMapperBuilder.addMapping(new SampleFieldKey("prop_date", 0), FieldMapperColumnDefinition.<SampleFieldKey>identity()); SourceMapper<Object, MyObjectWithInner> mapper = constantSourceMapperBuilder.mapper(); MyObjectWithInner o = mapper.map(null, null); assertEquals(DATE, o.prop.date); assertNull(o.prop.str); }