private Object upgrade(Object property) { if (property instanceof Setter) { return new SetterProperty((Setter<?, ?>) property); } if (property instanceof Getter) { return new GetterProperty((Getter<?, ?>) property); } return property; }
@Override public void accept(Predicate<? super K> predicate, SetterProperty setterProperty) { if (predicate instanceof CaseInsensitiveFieldKeyNamePredicate) { CaseInsensitiveFieldKeyNamePredicate p = (CaseInsensitiveFieldKeyNamePredicate) predicate; ExtendPropertyFinder.CustomProperty cp = new ExtendPropertyFinder.CustomProperty(setterProperty.getTargetType(), classMeta.getReflectionService(), p.getName(), setterProperty.getPropertyType(), setterProperty.getSetter(), NullGetter.getter()); if (propertyPredicate.test(cp)) { customProperties.add(cp); } } } });
public SetterProperty(Setter<?, ?> setter) { this(setter, getTargetType(setter), getPropertyType(setter)); }
public Setter<?, ?> getCustomSetterTo(Type targetType) { for(SetterProperty setterProperty : lookForAll(SetterProperty.class)) { if (setterProperty.getTargetType() == null || TypeHelper.isAssignable(setterProperty.getTargetType(), targetType)) { return setterProperty.getSetter(); } } return null; }
@Test public void testSetterProperty() { Setter<Object, Object> setter = new Setter<Object, Object>() { @Override public void set(Object target, Object value) throws Exception { } @Override public String toString() { return "S"; } }; SetterProperty property = new SetterProperty(setter); assertSame(setter, property.getSetter()); assertEquals("Setter{S}", property.toString()); }
@SuppressWarnings("unchecked") private <S, P> ContextualSetter<Appendable, ? super P> getSetter(PropertyMapping<S, P, CsvColumnKey> pm, CellWriter cellWriter) { final SetterProperty setterProperty = pm.getColumnDefinition().lookFor(SetterProperty.class); if (setterProperty != null) { return new CellWriterSetterWrapper<P>(cellWriter, ContextualSetterAdapter.of ((Setter<Appendable, P>) setterProperty.getSetter())); } ContextualSetter<Appendable, ? super P> setter = setterFromFactory(pm); if (setter != null) { return new CellWriterSetterWrapper<P>(cellWriter, setter); } return null; }
public Setter<?, ?> getCustomSetterTo(Type targetType) { for(SetterProperty setterProperty : lookForAll(SetterProperty.class)) { if (setterProperty.getTargetType() == null || TypeHelper.isAssignable(setterProperty.getTargetType(), targetType)) { return setterProperty.getSetter(); } } return null; }
@SuppressWarnings("unchecked") private <S, P> ContextualSetter<Appendable, ? super P> getSetter(PropertyMapping<S, P, CsvColumnKey> pm, CellWriter cellWriter) { final SetterProperty setterProperty = pm.getColumnDefinition().lookFor(SetterProperty.class); if (setterProperty != null) { return new CellWriterSetterWrapper<P>(cellWriter, ContextualSetterAdapter.of ((Setter<Appendable, P>) setterProperty.getSetter())); } ContextualSetter<Appendable, ? super P> setter = setterFromFactory(pm); if (setter != null) { return new CellWriterSetterWrapper<P>(cellWriter, setter); } return null; }
public SetterProperty(Setter<?, ?> setter) { this(setter, getTargetType(setter), getPropertyType(setter)); }
@Override public void accept(Predicate<? super K> predicate, SetterProperty setterProperty) { if (predicate instanceof CaseInsensitiveFieldKeyNamePredicate) { CaseInsensitiveFieldKeyNamePredicate p = (CaseInsensitiveFieldKeyNamePredicate) predicate; ExtendPropertyFinder.CustomProperty cp = new ExtendPropertyFinder.CustomProperty(setterProperty.getTargetType(), classMeta.getReflectionService(), p.getName(), setterProperty.getPropertyType(), setterProperty.getSetter(), NullGetter.getter()); if (propertyPredicate.test(cp)) { customProperties.add(cp); } } } });
private Object upgrade(Object property) { if (property instanceof Setter) { return new SetterProperty((Setter<?, ?>) property); } if (property instanceof Getter) { return new GetterProperty((Getter<?, ?>) property); } return property; }
@Test public void testCustomSetter() throws Exception { Object o = new Object(); newFieldMapperAndMapToPS(new ConstantGetter<Object, Object>(o), Object.class, new SetterProperty(new Setter<PreparedStatement, Object>() { @Override public void set(PreparedStatement target, Object value) throws Exception { ps.setString(35, "aa"); } })); verify(ps).setString(35, "aa"); }
@Test public void jdbcMapperExtrapolateOverrideSetter() { JdbcMapperFactory .newInstance() .addColumnProperty("bar", new SetterProperty(new Setter<PreparedStatement, Bar2Prop>() { @Override public void set(PreparedStatement target, Bar2Prop value) throws Exception { target.setString(3, value.getVal()); target.setInt(4, value.getI()); } })) .buildFrom(Foo2.class) .addColumn("bar") .mapper(); } @Test
private MapperConfig<SampleFieldKey, Object[]> mapperConfig() { FieldMapperColumnDefinitionProviderImpl<SampleFieldKey> provider = new FieldMapperColumnDefinitionProviderImpl<SampleFieldKey>(); provider.addColumnDefinition("benchmark", FieldMapperColumnDefinition.<SampleFieldKey>identity().add(new SetterProperty(SETTER)).add(new GetterProperty(GETTER))); return MapperConfig.<SampleFieldKey, Object[]>fieldMapperConfig().columnDefinitions(provider); } }