public <T, P> Setter<T, P> getFieldSetter(Field field) { boolean accessible = Modifier.isPublic(field.getModifiers()) && Modifier.isPublic(field.getDeclaringClass().getModifiers()); if (asmFactory != null && accessible) { try { return asmFactory.createSetter(field); } catch(Throwable e) { } } if (!accessible) { try { field.setAccessible(true); } catch (Exception e) { // cannot make field accessible return null; } } return new FieldSetter<T, P>(field); }
@Test public void testSet() throws Exception { Field fooField = Foo.class.getDeclaredField("foo"); fooField.setAccessible(true); FieldSetter<Foo, String> setter = new FieldSetter<Foo, String>(fooField); SetterHelperTest.validateFooSetter(setter); assertEquals("FieldSetter{field=private java.lang.String org.simpleflatmapper.test.beans.Foo.foo}", setter.toString()); }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> BooleanSetter<? super T> toBooleanSetter(final Setter<? super T, ? super Boolean> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof BooleanSetter) { return (BooleanSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new BooleanMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new BooleanFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> ByteSetter<? super T> toByteSetter(final Setter<? super T, ? super Byte> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof ByteSetter) { return (ByteSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new ByteMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new ByteFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } } @SuppressWarnings({ "rawtypes", "unchecked" })
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> ShortSetter<? super T> toShortSetter(final Setter<? super T, ? super Short> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof ShortSetter) { return (ShortSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new ShortMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new ShortFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
public <T, P> Setter<T, P> getFieldSetter(Field field) { boolean accessible = Modifier.isPublic(field.getModifiers()) && Modifier.isPublic(field.getDeclaringClass().getModifiers()); if (asmFactory != null && accessible) { try { return asmFactory.createSetter(field); } catch(Throwable e) { } } if (!accessible) { try { field.setAccessible(true); } catch (Exception e) { // cannot make field accessible return null; } } return new FieldSetter<T, P>(field); }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> DoubleSetter<? super T> toDoubleSetter(final Setter<? super T, ? super Double> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof DoubleSetter) { return (DoubleSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new DoubleMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new DoubleFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> IntSetter<? super T> toIntSetter(final Setter<? super T, ? super Integer> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof IntSetter) { return (IntSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new IntMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new IntFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> FloatSetter<? super T> toFloatSetter(final Setter<? super T, ? super Float> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof FloatSetter) { return (FloatSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new FloatMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new FloatFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> IntSetter<? super T> toIntSetter(final Setter<? super T, ? super Integer> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof IntSetter) { return (IntSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new IntMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new IntFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> LongSetter<? super T> toLongSetter(final Setter<? super T, ? super Long> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof LongSetter) { return (LongSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new LongMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new LongFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> CharacterSetter<? super T> toCharacterSetter(final Setter<? super T, ? super Character> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof CharacterSetter) { return (CharacterSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new CharacterMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new CharacterFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> DoubleSetter<? super T> toDoubleSetter(final Setter<? super T, ? super Double> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof DoubleSetter) { return (DoubleSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new DoubleMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new DoubleFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> BooleanSetter<? super T> toBooleanSetter(final Setter<? super T, ? super Boolean> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof BooleanSetter) { return (BooleanSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new BooleanMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new BooleanFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> ShortSetter<? super T> toShortSetter(final Setter<? super T, ? super Short> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof ShortSetter) { return (ShortSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new ShortMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new ShortFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> CharacterSetter<? super T> toCharacterSetter(final Setter<? super T, ? super Character> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof CharacterSetter) { return (CharacterSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new CharacterMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new CharacterFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> LongSetter<? super T> toLongSetter(final Setter<? super T, ? super Long> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof LongSetter) { return (LongSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new LongMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new LongFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> FloatSetter<? super T> toFloatSetter(final Setter<? super T, ? super Float> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof FloatSetter) { return (FloatSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new FloatMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new FloatFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } }
@SuppressWarnings({ "rawtypes", "unchecked" }) public static <T> ByteSetter<? super T> toByteSetter(final Setter<? super T, ? super Byte> setter) { if (isNullSetter(setter)) { return null; } else if (setter instanceof ByteSetter) { return (ByteSetter<? super T>) setter; } else if (setter instanceof MethodSetter) { return new ByteMethodSetter<T>(((MethodSetter) setter).getMethod()); } else if (setter instanceof FieldSetter) { return new ByteFieldSetter<T>(((FieldSetter) setter).getField()); } else { throw new IllegalArgumentException("Invalid type " + setter); } } @SuppressWarnings({ "rawtypes", "unchecked" })