/** * Change the mapperBuilderErrorHandler to an IgnoreMapperBuilderErrorHandler. * @return the current factory */ public final MF ignorePropertyNotFound() { return addColumnProperty(ConstantPredicate.truePredicate(), OptionalProperty.INSTANCE); }
private static Predicate<Method> getExcludeMethodPredicateFor(Class<?> builderClass) { if (builderClass.getSuperclass() != null && builderClass.getSuperclass().getName().equals("com.google.protobuf.GeneratedMessageV3$Builder")) { return GOOGLE_PROTO_EXCLUDE; } return ConstantPredicate.falsePredicate(); }
/** * Change the mapperBuilderErrorHandler to an IgnoreMapperBuilderErrorHandler. * @return the current factory */ public final MF ignorePropertyNotFound() { return addColumnProperty(ConstantPredicate.truePredicate(), OptionalProperty.INSTANCE); }
private static Predicate<Method> getExcludeMethodPredicateFor(Class<?> builderClass) { if (builderClass.getSuperclass() != null && builderClass.getSuperclass().getName().equals("com.google.protobuf.GeneratedMessageV3$Builder")) { return GOOGLE_PROTO_EXCLUDE; } return ConstantPredicate.falsePredicate(); }
private static ColumnDefinitionProvider<CsvColumnKey> addDefaultDateFormat(AbstractColumnDefinitionProvider<CsvColumnKey> columnDefinitionProvider, String defaultDateFormat) { columnDefinitionProvider.addColumnProperty(ConstantPredicate.truePredicate(), new DefaultDateFormatProperty(defaultDateFormat)); return columnDefinitionProvider; }
private static ColumnDefinitionProvider<CsvColumnKey> addDefaultDateFormat(AbstractColumnDefinitionProvider<CsvColumnKey> columnDefinitionProvider, String defaultDateFormat) { columnDefinitionProvider.addColumnProperty(ConstantPredicate.truePredicate(), new DefaultDateFormatProperty(defaultDateFormat)); return columnDefinitionProvider; }
public CsvMapperFactory cellValueReaderFactory(CellValueReaderFactory cellValueReaderFactory) { return addColumnProperty(ConstantPredicate.truePredicate(), new CustomReaderFactoryProperty(cellValueReaderFactory)); }
public CsvMapperFactory cellValueReaderFactory(CellValueReaderFactory cellValueReaderFactory) { return addColumnProperty(ConstantPredicate.truePredicate(), new CustomReaderFactoryProperty(cellValueReaderFactory)); }
@Override public AbstractColumnDefinitionProvider<CsvColumnKey> enrichColumnDefinitions(AbstractColumnDefinitionProvider<CsvColumnKey> columnDefinitions) { AbstractColumnDefinitionProvider<CsvColumnKey> copy = columnDefinitions.copy(); copy.addColumnProperty(ConstantPredicate.truePredicate(), new DefaultDateFormatProperty(defaultDateFormat)); return copy; }
@Override public AbstractColumnDefinitionProvider<CsvColumnKey> enrichColumnDefinitions(AbstractColumnDefinitionProvider<CsvColumnKey> columnDefinitions) { AbstractColumnDefinitionProvider<CsvColumnKey> copy = columnDefinitions.copy(); copy.addColumnProperty(ConstantPredicate.truePredicate(), new DefaultDateFormatProperty(defaultDateFormat)); return copy; }
public PassThroughClassMeta(Type type, ReflectionService reflectionService) { this.type = type; this.reflectionService = reflectionService; try { String value = TypeHelper.toClass(type).getAnnotation(ReflectionService.PassThrough.class).value(); ObjectClassMeta<T> objectClassMeta = new ObjectClassMeta<T>(type, reflectionService); this.instantiatorDefinition = objectClassMeta.getInstantiatorDefinitions().get(0); Predicate<PropertyMeta<?, ?>> predicate = ConstantPredicate.truePredicate(); this.propertyMeta = objectClassMeta .newPropertyFinder() .findProperty(DefaultPropertyNameMatcher.of(value), new Object[0], (TypeAffinity) null, predicate); this.innerMeta = propertyMeta.getPropertyClassMeta(); } catch(Exception e) { ErrorHelper.rethrow(e); throw new IllegalStateException(); } }
public PassThroughClassMeta(Type type, ReflectionService reflectionService) { this.type = type; this.reflectionService = reflectionService; try { String value = TypeHelper.toClass(type).getAnnotation(ReflectionService.PassThrough.class).value(); ObjectClassMeta<T> objectClassMeta = new ObjectClassMeta<T>(type, reflectionService); this.instantiatorDefinition = objectClassMeta.getInstantiatorDefinitions().get(0); Predicate<PropertyMeta<?, ?>> predicate = ConstantPredicate.truePredicate(); this.propertyMeta = objectClassMeta .newPropertyFinder() .findProperty(DefaultPropertyNameMatcher.of(value), new Object[0], (TypeAffinity) null, predicate); this.innerMeta = propertyMeta.getPropertyClassMeta(); } catch(Exception e) { ErrorHelper.rethrow(e); throw new IllegalStateException(); } }
private <T> void testWriter(Supplier<T> supplier, String[] headers) throws Exception { T instance1 = supplier.get(); ClassMeta<T> classMeta = ReflectionService.newInstance().<T>getClassMeta(instance1.getClass()); Writerbuilder<T> builder = new Writerbuilder<T>(classMeta); Object[] row = new Object[headers.length]; for(int i = 0; i < headers.length; i++) { String str = headers[i]; builder.addColumn(str); row[i] = classMeta.newPropertyFinder().findProperty(DefaultPropertyNameMatcher.of(str), new Object[0], (TypeAffinity)null, ConstantPredicate.<PropertyMeta<?, ?>>truePredicate()).getGetter().get(instance1); } FieldMapper<T, List<Object>> mapper = builder.mapper(); List<Object> objects = new ArrayList<Object>(); mapper.mapTo(instance1, objects, MappingContext.EMPTY_CONTEXT); assertArrayEquals(row, objects.toArray()); }
public static <T, P> PropertyMapping<T, P, SampleFieldKey> createPropertyMapping( Class<T> target, String property) { ClassMeta<T> classMeta = REFLECTION_SERVICE.getClassMeta(target); PropertyMeta<T, P> propertyMeta = classMeta.newPropertyFinder().findProperty(DefaultPropertyNameMatcher.of(property), new Object[0], (TypeAffinity)null, ConstantPredicate.<PropertyMeta<?, ?>>truePredicate()); PropertyMapping<T, P , SampleFieldKey> pm = new PropertyMapping<T, P, SampleFieldKey>( propertyMeta, new SampleFieldKey(property, 0), FieldMapperColumnDefinition.<SampleFieldKey>identity()); return pm; }
private <P, C> MultiIndexFieldMapper<T> newCollectionFieldMapper(PropertyMapping<T, P, JdbcColumnKey> pm) { PropertyMeta<T, ?> propertyMeta = pm.getPropertyMeta(); IndexedGetter<C, P> indexedGetter; IntGetter<? super C> sizeGetter; Getter<T, C> collectionGetter = (Getter<T, C>) propertyMeta.getGetter(); if (TypeHelper.isAssignable(List.class, propertyMeta.getPropertyType())) { indexedGetter = (IndexedGetter<C, P>) new ListIndexedGetter<P>(); sizeGetter = (IntGetter<C>) new ListSizeGetter(); } else if (TypeHelper.isArray(propertyMeta.getPropertyType())) { indexedGetter = (IndexedGetter<C, P>) new ArrayIndexedGetter<P>(); sizeGetter = new ArraySizeGetter(); } else { throw new IllegalArgumentException("Unexpected elementMeta" + propertyMeta); } PropertyMeta<C, P> childProperty = (PropertyMeta<C, P>) pm.getPropertyMeta().getPropertyClassMeta().newPropertyFinder().findProperty(DefaultPropertyNameMatcher.of("0"), pm.getColumnDefinition().properties(), pm.getColumnKey(), ConstantPredicate.<PropertyMeta<?, ?>>truePredicate()); final PropertyMapping<C, P, JdbcColumnKey> pmchildProperttMeta = pm.propertyMeta(childProperty); ContextualIndexedSetter<PreparedStatement, P> setter = getSetter(pmchildProperttMeta); return new CollectionIndexFieldMapper<T, C, P>(setter, collectionGetter, sizeGetter, indexedGetter); }
private <P, C> MultiIndexFieldMapper<T> newCollectionFieldMapper(PropertyMapping<T, P, JdbcColumnKey> pm) { PropertyMeta<T, ?> propertyMeta = pm.getPropertyMeta(); IndexedGetter<C, P> indexedGetter; IntGetter<? super C> sizeGetter; Getter<T, C> collectionGetter = (Getter<T, C>) propertyMeta.getGetter(); if (TypeHelper.isAssignable(List.class, propertyMeta.getPropertyType())) { indexedGetter = (IndexedGetter<C, P>) new ListIndexedGetter<P>(); sizeGetter = (IntGetter<C>) new ListSizeGetter(); } else if (TypeHelper.isArray(propertyMeta.getPropertyType())) { indexedGetter = (IndexedGetter<C, P>) new ArrayIndexedGetter<P>(); sizeGetter = new ArraySizeGetter(); } else { throw new IllegalArgumentException("Unexpected elementMeta" + propertyMeta); } PropertyMeta<C, P> childProperty = (PropertyMeta<C, P>) pm.getPropertyMeta().getPropertyClassMeta().newPropertyFinder().findProperty(DefaultPropertyNameMatcher.of("0"), pm.getColumnDefinition().properties(), pm.getColumnKey(), ConstantPredicate.<PropertyMeta<?, ?>>truePredicate()); final PropertyMapping<C, P, JdbcColumnKey> pmchildProperttMeta = pm.propertyMeta(childProperty); ContextualIndexedSetter<PreparedStatement, P> setter = getSetter(pmchildProperttMeta); return new CollectionIndexFieldMapper<T, C, P>(setter, collectionGetter, sizeGetter, indexedGetter); }
private <T> void testDbObjectxxxMapper(Supplier<T> supplier, boolean useAsm, String[] headers) throws Exception { T instance1 = supplier.get(); T instance2 = supplier.get(); ClassMeta<T> classMeta = ReflectionService.newInstance(useAsm).<T>getClassMeta(instance1.getClass()); SampleMapperBuilder<T> builder = new SampleMapperBuilder<T>(classMeta); SampleMapperBuilder<T> builderIndexed = new SampleMapperBuilder<T>(classMeta); Object[] row = new Object[headers.length]; for(int i = 0; i < headers.length; i++) { String str = headers[i]; builder.addMapping(str); builderIndexed.addMapping(str, i); row[i] = classMeta.newPropertyFinder().findProperty(DefaultPropertyNameMatcher.of(str), new Object[0], (TypeAffinity)null, ConstantPredicate.<PropertyMeta<?, ?>>truePredicate()).getGetter().get(instance1); } EnumerableMapper<Object[][], T, ?> mapper = builder.mapper(); assertEquals(instance1, mapper.iterator(new Object[][] {row}).next()); Assert.assertEquals(instance1, builderIndexed.mapper().iterator(new Object[][] {row}).next()); assertNotEquals(instance1, instance2); }
@Test public void testMetaDataOnFastTuple() throws Exception { //creates a new tuple allocated on the JVM heap @SuppressWarnings("unchecked") ClassMeta<FastTuple> cm = ReflectionService.newInstance().getClassMeta((Class<FastTuple>) tuple.getClass()); ConstantPredicate<PropertyMeta<?, ?>> pred = ConstantPredicate.<PropertyMeta<?, ?>>truePredicate(); final PropertyFinder<FastTuple> propertyFinder = cm.newPropertyFinder(); final PropertyMeta<FastTuple, Long> fieldA = propertyFinder.findProperty(new DefaultPropertyNameMatcher("fieldA", 0, true, true), new Object[0], (TypeAffinity)null, pred); final PropertyMeta<FastTuple, Integer> fieldB = propertyFinder.findProperty(new DefaultPropertyNameMatcher("fieldB", 0, true, true), new Object[0], (TypeAffinity)null, pred); final PropertyMeta<FastTuple, Short> fieldC = propertyFinder.findProperty(new DefaultPropertyNameMatcher("fieldC", 0, true, true), new Object[0], (TypeAffinity)null, pred); final PropertyMeta<FastTuple, ?> fieldD = propertyFinder.findProperty(new DefaultPropertyNameMatcher("fieldD", 0, true, true), new Object[0], (TypeAffinity)null, pred); assertNotNull(fieldA); assertNotNull(fieldB); assertNotNull(fieldC); assertNull(fieldD); fieldA.getSetter().set(tuple, 6l); assertEquals(6l, fieldA.getGetter().get(tuple).longValue()); fieldB.getSetter().set(tuple, 7); assertEquals(7, fieldB.getGetter().get(tuple).intValue()); fieldC.getSetter().set(tuple, (short)3); assertEquals(3, fieldC.getGetter().get(tuple).shortValue()); }
@Test public void testPrimitiveField() { ClassMeta<DbObject> classMeta = ReflectionService.newInstance(false).getClassMeta(DbObject.class); PropertyMeta<DbObject, Long> id = classMeta.newPropertyFinder().<Long>findProperty(new DefaultPropertyNameMatcher("id", 0, false, false), new Object[0], (TypeAffinity)null, ConstantPredicate.<PropertyMeta<?, ?>>truePredicate()); FieldMapperColumnDefinition<JdbcColumnKey> identity = FieldMapperColumnDefinition.identity(); PropertyMapping<DbObject, Long, JdbcColumnKey> propertyMapping = new PropertyMapping<DbObject, Long, JdbcColumnKey>(id, new JdbcColumnKey("id", 1), identity); FieldMapper<ResultSet, DbObject> fieldMapper = factory.newFieldMapper( propertyMapping, null, RethrowMapperBuilderErrorHandler.INSTANCE); assertTrue(fieldMapper instanceof LongConstantSourceFieldMapper); PropertyMapping<DbObject, Long, JdbcColumnKey> propertyMapping1 = new PropertyMapping<DbObject, Long, JdbcColumnKey>(id, new JdbcColumnKey("id", 0), identity); fieldMapper = factory.newFieldMapper(propertyMapping1, null, RethrowMapperBuilderErrorHandler.INSTANCE); assertTrue(fieldMapper instanceof LongConstantSourceFieldMapper); } }
ConstantPredicate<PropertyMeta<?, ?>> predicate = ConstantPredicate.<PropertyMeta<?, ?>>truePredicate(); final PropertyFinder<FastTuple> propertyFinder = cm.newPropertyFinder();