public CsvMapperBuilder(final ClassMeta<T> classMeta, ColumnDefinitionProvider<CsvColumnKey> columnDefinitionProvider) { this( classMeta, MapperConfig.<CsvColumnKey, CsvRow>config(columnDefinitionProvider), CsvRowGetterFactory.INSTANCE, new CsvMappingContextFactoryBuilder(!MapperConfig.<CsvColumnKey, CsvRow>config(columnDefinitionProvider).unorderedJoin()) ); }
public CsvMapperBuilder(final ClassMeta<T> classMeta, ColumnDefinitionProvider<CsvColumnKey> columnDefinitionProvider) { this( classMeta, MapperConfig.<CsvColumnKey, CsvRow>config(columnDefinitionProvider), CsvRowGetterFactory.INSTANCE, new CsvMappingContextFactoryBuilder(!MapperConfig.<CsvColumnKey, CsvRow>config(columnDefinitionProvider).unorderedJoin()) ); }
public <T> JdbcMapperBuilder<T> newBuilder(ClassMeta<T> classMeta) { MapperConfig<JdbcColumnKey, ResultSet> mapperConfig = mapperConfig(); return new JdbcMapperBuilder<T>( classMeta, mapperConfig, getterFactory, new JdbcMappingContextFactoryBuilder(!mapperConfig.unorderedJoin())); }
public <T> DatastaxMapperBuilder<T> newBuilder(ClassMeta<T> classMeta) { MapperConfig<DatastaxColumnKey, Row> mapperConfig = mapperConfig(); return new DatastaxMapperBuilder<T>(classMeta, mapperConfig, getterFactory, new DatastaxMappingContextFactoryBuilder<Row>(!mapperConfig.unorderedJoin())); }
/** * Build a new JdbcMapperBuilder targeting the specified type with the specified ReflectionService. * * @param target the type * @param reflectService the ReflectionService */ public JdbcMapperBuilder(final Type target, ReflectionService reflectService) { this(reflectService.<T>getClassMeta(target), MapperConfig.<JdbcColumnKey, ResultSet>fieldMapperConfig(), ResultSetGetterFactory.INSTANCE, new JdbcMappingContextFactoryBuilder(!MapperConfig.<JdbcColumnKey, ResultSet>fieldMapperConfig().unorderedJoin())); }
public <T> JdbcMapperBuilder<T> newBuilder(ClassMeta<T> classMeta) { MapperConfig<JdbcColumnKey, ResultSet> mapperConfig = mapperConfig(); return new JdbcMapperBuilder<T>( classMeta, mapperConfig, getterFactory, new JdbcMappingContextFactoryBuilder(!mapperConfig.unorderedJoin())); }
/** * Build a new JdbcMapperBuilder targeting the specified type with the specified ReflectionService. * * @param target the type * @param reflectService the ReflectionService */ public JdbcMapperBuilder(final Type target, ReflectionService reflectService) { this(reflectService.<T>getClassMeta(target), MapperConfig.<JdbcColumnKey, ResultSet>fieldMapperConfig(), ResultSetGetterFactory.INSTANCE, new JdbcMappingContextFactoryBuilder(!MapperConfig.<JdbcColumnKey, ResultSet>fieldMapperConfig().unorderedJoin())); }
public <T> CsvMapperBuilder<T> newBuilder(final ClassMeta<T> classMeta) { MapperConfig<CsvColumnKey, CsvRow> mapperConfig = mapperConfig(); CsvMappingContextFactoryBuilder parentBuilder = new CsvMappingContextFactoryBuilder(!mapperConfig.unorderedJoin()); if (mapperConfig.fieldMapperErrorHandler() instanceof ResultFieldMapperErrorHandler) { parentBuilder.addSupplier(new Supplier<Object>() { @Override public Object get() { return new ArrayList(); } }); } CsvMapperBuilder<T> builder = new CsvMapperBuilder<T>(classMeta, mapperConfig, getterFactory, parentBuilder); return builder; }
public <T> CsvMapperBuilder<T> newBuilder(final ClassMeta<T> classMeta) { MapperConfig<CsvColumnKey, CsvRow> mapperConfig = mapperConfig(); CsvMappingContextFactoryBuilder parentBuilder = new CsvMappingContextFactoryBuilder(!mapperConfig.unorderedJoin()); if (mapperConfig.fieldMapperErrorHandler() instanceof ResultFieldMapperErrorHandler) { parentBuilder.addSupplier(new Supplier<Object>() { @Override public Object get() { return new ArrayList(); } }); } CsvMapperBuilder<T> builder = new CsvMapperBuilder<T>(classMeta, mapperConfig, getterFactory, parentBuilder); return builder; }
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 ); }
@Override public <R extends Record, E> RecordMapper<R, E> provide(RecordType<R> recordType, Class<? extends E> type) { SourceMapper<Record, E> mapper; MappingContextFactory<? super Record> mappingContextFactory; TargetColumnsMapperKey key = getMapperKey(recordType, type); MapperAndContext mc = mapperCache.get(key); if (mc == null) { JooqMapperBuilder<E> mapperBuilder = new JooqMapperBuilder<E>( reflectionService.<E>getClassMeta(type), new JooqMappingContextFactoryBuilder<Record>(!mapperConfig.unorderedJoin()), mapperConfig); int i = 0; for(Field<?> field : recordType.fields()) { mapperBuilder.addField(new JooqFieldKey(field, i++)); } mapper = mapperBuilder.mapper(); mappingContextFactory = mapperBuilder.contextFactory(); mapperCache.putIfAbsent(key, new MapperAndContext(mapper, mappingContextFactory)); } else { mapper = (SourceMapper<Record, E>) mc.mapper; mappingContextFactory = mc.mappingContextFactory; } return new JooqRecordMapperWrapper<R, E>(mapper, mappingContextFactory); }
@Override public <R extends Record, E> RecordMapper<R, E> provide(RecordType<R> recordType, Class<? extends E> type) { SourceMapper<Record, E> mapper; MappingContextFactory<? super Record> mappingContextFactory; TargetColumnsMapperKey key = getMapperKey(recordType, type); MapperAndContext mc = mapperCache.get(key); if (mc == null) { JooqMapperBuilder<E> mapperBuilder = new JooqMapperBuilder<E>( reflectionService.<E>getClassMeta(type), new JooqMappingContextFactoryBuilder<Record>(!mapperConfig.unorderedJoin()), mapperConfig); int i = 0; for(Field<?> field : recordType.fields()) { mapperBuilder.addField(new JooqFieldKey(field, i++)); } mapper = mapperBuilder.mapper(); mappingContextFactory = mapperBuilder.contextFactory(); mapperCache.putIfAbsent(key, new MapperAndContext(mapper, mappingContextFactory)); } else { mapper = (SourceMapper<Record, E>) mc.mapper; mappingContextFactory = mc.mappingContextFactory; } return new JooqRecordMapperWrapper<R, E>(mapper, mappingContextFactory); }
public static <P> ConstantSourceMapperBuilder<GettableByIndexData, P, DatastaxColumnKey> newFieldMapperBuilder(DatastaxMapperFactory factory, Type target) { MapperConfig<DatastaxColumnKey, Row> config = factory.mapperConfig(); MapperSourceImpl<GettableByIndexData, DatastaxColumnKey> mapperSource = new MapperSourceImpl<GettableByIndexData, DatastaxColumnKey>(GettableByIndexData.class, new ContextualGetterFactoryAdapter<GettableByIndexData, DatastaxColumnKey>(new RowGetterFactory(factory))); ClassMeta<P> classMeta = factory.getClassMeta(target); return ConstantSourceMapperBuilder.<GettableByIndexData, P, DatastaxColumnKey>newConstantSourceMapperBuilder( mapperSource, classMeta, config, new DatastaxMappingContextFactoryBuilder<GettableByIndexData>(!config.unorderedJoin()), DatastaxMapperBuilder.KEY_FACTORY); } }
public final MapperConfig<K, S> mapperConfig() { return MapperConfig .<K, S>config(enrichColumnDefinitions(columnDefinitions)) .mapperBuilderErrorHandler(mapperBuilderErrorHandler) .propertyNameMatcherFactory(propertyNameMatcherFactory) .failOnAsm(failOnAsm) .asmMapperNbFieldsLimit(asmMapperNbFieldsLimit) .fieldMapperErrorHandler(fieldMapperErrorHandler) .consumerErrorHandler(consumerErrorHandler) .maxMethodSize(maxMethodSize) .assumeInjectionModifiesValues(assumeInjectionModifiesValues) .discriminators(discriminators) .rowFilter(rowFilter) .unorderedJoin(unorderedJoin); }
public final MapperConfig<K, S> mapperConfig() { return MapperConfig .<K, S>config(enrichColumnDefinitions(columnDefinitions)) .mapperBuilderErrorHandler(mapperBuilderErrorHandler) .propertyNameMatcherFactory(propertyNameMatcherFactory) .failOnAsm(failOnAsm) .asmMapperNbFieldsLimit(asmMapperNbFieldsLimit) .fieldMapperErrorHandler(fieldMapperErrorHandler) .consumerErrorHandler(consumerErrorHandler) .maxMethodSize(maxMethodSize) .assumeInjectionModifiesValues(assumeInjectionModifiesValues) .discriminators(discriminators) .rowFilter(rowFilter) .unorderedJoin(unorderedJoin); }
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 testJoinUnordere604_2() throws Exception { SampleMapperBuilder<Prof> builderA = new SampleMapperBuilder<Prof>( ReflectionService.newInstance().getClassMeta(Prof.class), MapperConfig.<SampleFieldKey, Object[]>fieldMapperConfig().unorderedJoin(true)); builderA.addKey("id"); builderA.addMapping("name"); builderA.addKey("students_id"); builderA.addMapping("students_name"); SetRowMapper<Object[], Object[][], Prof, Exception> mapper = builderA.mapper(); List<Prof> profs = mapper.forEach(new Object[][]{ {1l, "prof1", 1l, "S1"}, {2l, "prof2", 1l, "S1"}, }, new ListCollector<Prof>()).getList(); boolean test = false; assertEquals(Arrays.asList( new Prof(1l, "prof1", Arrays.asList(new Student(1l, "S1", test))), new Prof(2l, "prof2", Arrays.asList(new Student(1l, "S1", test))) ), profs); }
@Test public void testJoinUnordere606() throws Exception { SampleMapperBuilder<Prof> builderA = new SampleMapperBuilder<Prof>( ReflectionService.newInstance().getClassMeta(Prof.class), MapperConfig.<SampleFieldKey, Object[]>fieldMapperConfig().unorderedJoin(true)); builderA.addKey("id"); builderA.addMapping("name"); builderA.addKey("students_id"); builderA.addMapping("students_name"); builderA.addMapping("students_test"); SetRowMapper<Object[], Object[][], Prof, Exception> mapper = builderA.mapper(); List<Prof> profs = mapper.forEach(new Object[][]{ {1l, "prof1", 1l, "S1", true}, {2l, "prof2", 1l, "S1", false}, }, new ListCollector<Prof>()).getList(); assertEquals(Arrays.asList( new Prof(1l, "prof1", Arrays.asList(new Student(1l, "S1", true))), new Prof(2l, "prof2", Arrays.asList(new Student(1l, "S1", false))) ), profs); }
@Test public void testJoinUnordere604() throws Exception { SampleMapperBuilder<Prof> builderA = new SampleMapperBuilder<Prof>( ReflectionService.newInstance().getClassMeta(Prof.class), MapperConfig.<SampleFieldKey, Object[]>fieldMapperConfig().unorderedJoin(true)); builderA.addKey("id"); builderA.addMapping("name"); builderA.addKey("students_id"); builderA.addMapping("students_name"); SetRowMapper<Object[], Object[][], Prof, Exception> mapper = builderA.mapper(); List<Prof> profs = mapper.forEach(new Object[][]{ {1l, "prof1", 1l, "S1"}, {2l, "prof2", 3l, "S3"}, {1l, "prof1", 2l, "S2"}, {2l, "prof2", 4l, "S4"}, {3l, "prof3", 4l, "S4"}, {3l, "prof3", 4l, "S4"}, }, new ListCollector<Prof>()).getList(); boolean test = false; assertEquals(Arrays.asList( new Prof(1l, "prof1", Arrays.asList(new Student(1l, "S1", test), new Student(2l, "S2", test))), new Prof(2l, "prof2", Arrays.asList(new Student(3l, "S3", test), new Student(4l, "S4", test))), new Prof(3l, "prof3", Arrays.asList(new Student(4l, "S4", test))) ), profs); }