private static FieldReflection getFieldReflection(Class clazz, String fieldName, boolean printStackTrace) { try { return new FieldReflectionFactory().create(clazz, fieldName, true); } catch (NoSuchFieldException e) { if (printStackTrace) e.printStackTrace(); } return null; }
public FieldReflection create(Field field) { boolean b = isUnsafeAvailable(field); switch (getType(field)) { case BOOLEAN: if (b && getBoolean && putBoolean) return createBooleanUnsafeGetterSetter(field); else return createBooleanReflectionGetterSetter(field); case BYTE: if (b && getByte && putByte) return createByteUnsafeGetterSetter(field); else return createByteReflectionGetterSetter(field); case CHAR: if (b && getChar && putChar) return createCharUnsafeGetterSetter(field); else return createCharReflectionGetterSetter(field); case DOUBLE: if (b && getDouble && putDouble) return createDoubleUnsafeGetterSetter(field); else return createDoubleReflectionGetterSetter(field); case FLOAT: if (b && getFloat && putFloat) return createFloatUnsafeGetterSetter(field); else return createFloatReflectionGetterSetter(field); case INTEGER:
@Override public JsonFieldSetter create(Field field, boolean setAccessible) { return (JsonFieldSetter) super.create(field, setAccessible); }
@Override public JsonFieldSetter create(Class clazz, String name, boolean setAccessible) throws NoSuchFieldException { return (JsonFieldSetter) super.create(clazz, name, setAccessible); }
public FieldReflection create(Field field) { boolean b = isUnsafeAvailable(field); switch (getType(field)) { case BOOLEAN: if (b && getBoolean && putBoolean) return createBooleanUnsafeGetterSetter(field); else return createBooleanReflectionGetterSetter(field); case BYTE: if (b && getByte && putByte) return createByteUnsafeGetterSetter(field); else return createByteReflectionGetterSetter(field); case CHAR: if (b && getChar && putChar) return createCharUnsafeGetterSetter(field); else return createCharReflectionGetterSetter(field); case DOUBLE: if (b && getDouble && putDouble) return createDoubleUnsafeGetterSetter(field); else return createDoubleReflectionGetterSetter(field); case FLOAT: if (b && getFloat && putFloat) return createFloatUnsafeGetterSetter(field); else return createFloatReflectionGetterSetter(field); case INTEGER:
private static FieldReflection getFieldReflection(Class clazz, String fieldName, boolean printStackTrace) { try { return new FieldReflectionFactory().create(clazz, fieldName, true); } catch (NoSuchFieldException e) { if (printStackTrace) e.printStackTrace(); } return null; }
@Override public JsonFieldSetter create(Class clazz, String name) throws NoSuchFieldException { return (JsonFieldSetter) super.create(clazz, name); }
private static FieldReflection getByteBufferAddressReflection() { try { return new FieldReflectionFactory().create(Buffer.class, "address", true); } catch (NoSuchFieldException e) { throw Unchecked.rethrow(e); } }
public FieldReflection create(Field field, boolean setAccessible) { if (setAccessible) field.setAccessible(true); return create(field); }
private void testUnsafeTypes() throws NoSuchFieldException { FieldReflectionFactory factory = new FieldReflectionFactory(); Assert.assertTrue(factory.create(TestClass.class, "i") instanceof IntegerUnsafeGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "l") instanceof LongUnsafeGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "b") instanceof ByteUnsafeGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "s") instanceof ShortUnsafeGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "c") instanceof CharUnsafeGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "f") instanceof FloatUnsafeGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "d") instanceof DoubleUnsafeGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "aBoolean") instanceof BooleanUnsafeGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "string") instanceof ObjectUnsafeGetterSetter); }
public FieldReflection create(Field field, boolean setAccessible) { if (setAccessible) field.setAccessible(true); return create(field); }
private void testReflectionTypes() throws NoSuchFieldException { FieldReflectionFactory factory = new FieldReflectionFactory(); Assert.assertTrue(factory.create(TestClass.class, "i") instanceof IntegerReflectionGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "l") instanceof LongReflectionGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "b") instanceof ByteReflectionGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "s") instanceof ShortReflectionGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "c") instanceof CharReflectionGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "f") instanceof FloatReflectionGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "d") instanceof DoubleReflectionGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "aBoolean") instanceof BooleanReflectionGetterSetter); Assert.assertTrue(factory.create(TestClass.class, "string") instanceof ObjectReflectionGetterSetter); }
public FieldReflection create(Class clazz, String name) throws NoSuchFieldException { return create(clazz.getDeclaredField(name), false); }
@Test public void test_parameter_has_name() throws IllegalAccessException, InvocationTargetException, InstantiationException, NoSuchFieldException { Constructor<java.lang.reflect.Parameter> parameterConstructor = (Constructor<java.lang.reflect.Parameter>) java.lang.reflect.Parameter.class.getDeclaredConstructors()[0]; parameterConstructor.setAccessible(true); Method method = (Method) UnsafeTools.getUnsafe().allocateInstance(Method.class); java.lang.reflect.Parameter parameter = parameterConstructor.newInstance("fieldName", 0, method, 0); new FieldReflectionFactory().create(Executable.class, "hasRealParameterData", true).setBoolean(method, true); new FieldReflectionFactory().create(Executable.class, "parameters", true).setObject(method, Array.newInstance(java.lang.reflect.Parameter.class, 1)); Assert.assertEquals("fieldName", ParametersHelper.getParameterName(parameter)); }
public FieldReflection create(Class clazz, String name, boolean setAccessible) throws NoSuchFieldException { return create(clazz.getDeclaredField(name), setAccessible); }
private void doTestGet() throws NoSuchFieldException { Object test = new TestClass(); FieldReflectionFactory factory = new FieldReflectionFactory(); Assert.assertEquals(1, factory.create(TestClass.class, "i").getInteger(test)); Assert.assertEquals(2l, factory.create(TestClass.class, "l").getLong(test)); Assert.assertEquals((byte) 3, factory.create(TestClass.class, "b").getByte(test)); Assert.assertEquals((short) 4, factory.create(TestClass.class, "s").getShort(test)); Assert.assertEquals((char) 5, factory.create(TestClass.class, "c").getChar(test)); Assert.assertEquals(6f, factory.create(TestClass.class, "f").getFloat(test), 0); Assert.assertEquals(7d, factory.create(TestClass.class, "d").getDouble(test), 0); Assert.assertEquals(true, factory.create(TestClass.class, "aBoolean").getBoolean(test)); Assert.assertEquals("foo", factory.create(TestClass.class, "string").getObject(test)); }
public FieldReflection create(Class clazz, String name) throws NoSuchFieldException { return create(clazz.getDeclaredField(name), false); }
private void doTestSet() throws NoSuchFieldException { TestClass test = new TestClass(); FieldReflectionFactory factory = new FieldReflectionFactory(); factory.create(TestClass.class, "i").setInteger(test, 2); factory.create(TestClass.class, "l").setLong(test, 3l); factory.create(TestClass.class, "b").setByte(test, (byte) 4); factory.create(TestClass.class, "s").setShort(test, (short) 5); factory.create(TestClass.class, "c").setChar(test, (char) 6); factory.create(TestClass.class, "f").setFloat(test, 7f); factory.create(TestClass.class, "d").setDouble(test, 8d); factory.create(TestClass.class, "aBoolean").setBoolean(test, false); factory.create(TestClass.class, "string").setObject(test, "bar"); Assert.assertEquals(2, test.i); Assert.assertEquals(3l, test.l); Assert.assertEquals((byte) 4, test.b); Assert.assertEquals((short) 5, test.s); Assert.assertEquals((char) 6, test.c); Assert.assertEquals(7f, test.f, 0); Assert.assertEquals(8d, test.d, 0); Assert.assertEquals(false, test.aBoolean); Assert.assertEquals("bar", test.string); }
public FieldReflection create(Class clazz, String name, boolean setAccessible) throws NoSuchFieldException { return create(clazz.getDeclaredField(name), setAccessible); }
@Override public FieldInfo<FieldReflection, Generic> map(Field field, Generic generic) { return new FieldInfo<FieldReflection, Generic>(field, FIELD_REFLECTION_FACTORY.create(field), generic.types); } };