@Override public String createString(char[] chars, int hash) { String s = new String(); value.setObject(s, chars); count.setInteger(s, chars.length); if (hash != 0) this.hash.setInteger(s, hash); return s; } }
private static void setNumber(FieldReflection setter, Object object, long l, double d, boolean floatValue) { switch (setter.getType()) { case INTEGER: { setter.setInteger(object, (int) l); break; setter.setLong(object, l); break; setter.setByte(object, (byte) l); break; setter.setShort(object, (short) l); break; setter.setChar(object, (char) l); break; setter.setFloat(object, (float) d); else setter.setFloat(object, (float) l); break; setter.setDouble(object, d); else setter.setDouble(object, (double) l); break; setter.setBoolean(object, l != 0); break;
@Override public char[] chars(String s) { return (char[]) value.getObject(s); }
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)); }
@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)); }
@Override public String createString(char[] chars) { String s = new String(); value.setObject(s, chars); return s; }
FieldReflection f = i.next(); try { f.setObject(ob, DependencyFactory.get(f.getField())); } catch (InjectionFailedException e) { throw Unchecked.rethrow(e); } catch (Exception e) { if (hasAnnotation(f.getField().getType(), Injectable.class)) throw new InjectionFailedException(e); f = iterator.next(); try { f.setObject(ob, DependencyFactory.get(f.getField())); } catch (Exception ex) { if (hasAnnotation(f.getField().getType(), Injectable.class)) throw new InjectionFailedException(ex);
@Override public String createString(char[] chars) { String s = new String(); value.setObject(s, chars); return s; }
switch (reflection.getType()) { case BOOLEAN: reflection.setBoolean(t, get(name, Boolean.FALSE)); break; case BYTE: reflection.setByte(t, isConfig ? (byte) 0 : ((Number) value).byteValue()); break; case CHAR: reflection.setChar(t, get(name, (char) 0)); break; case DOUBLE: reflection.setDouble(t, isConfig ? 0.0 : ((Number) value).doubleValue()); break; case FLOAT: reflection.setFloat(t, isConfig ? 0.0f : ((Number) value).floatValue()); break; case INTEGER: reflection.setInteger(t, isConfig ? 0 : ((Number) value).intValue()); break; case LONG: reflection.setLong(t, isConfig ? 0l : ((Number) value).longValue()); break; case SHORT: reflection.setShort(t, isConfig ? (short) 0 : ((Number) value).shortValue()); break; case OBJECT: { if (fieldInfo.generic.clazz.isAssignableFrom(value.getClass())) { reflection.setObject(t, value); break;
@Override public String createString(char[] chars, int hash) { String s = new String(); value.setObject(s, chars); if (hash != 0) this.hash.setInteger(s, hash); return s; } }
@Override protected void init() { contextField.setObject(this, initContext); initEnd(); }
@Override public char[] chars(String s) { return (char[]) value.getObject(s); }
switch (reflection.getType()) { case BOOLEAN: reflection.setBoolean(t, get(name, Boolean.FALSE)); break; case BYTE: reflection.setByte(t, isConfig ? (byte) 0 : ((Number) value).byteValue()); break; case CHAR: reflection.setChar(t, get(name, (char) 0)); break; case DOUBLE: reflection.setDouble(t, isConfig ? 0.0 : ((Number) value).doubleValue()); break; case FLOAT: reflection.setFloat(t, isConfig ? 0.0f : ((Number) value).floatValue()); break; case INTEGER: reflection.setInteger(t, isConfig ? 0 : ((Number) value).intValue()); break; case LONG: reflection.setLong(t, isConfig ? 0l : ((Number) value).longValue()); break; case SHORT: reflection.setShort(t, isConfig ? (short) 0 : ((Number) value).shortValue()); break; case OBJECT: { if (fieldInfo.generic.clazz.isAssignableFrom(value.getClass())) { reflection.setObject(t, value); break;
@Override public String createString(char[] chars, int hash) { String s = new String(); value.setObject(s, chars); count.setInteger(s, chars.length); if (hash != 0) this.hash.setInteger(s, hash); return s; } }
@Override public char[] chars(String s) { return (char[]) value.getObject(s); }
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); }
@Override public String createString(char[] chars, int hash) { String s = new String(); value.setObject(s, chars); if (hash != 0) this.hash.setInteger(s, hash); return s; } }
@Override public char[] chars(String s) { return (char[]) value.getObject(s); }
@Override public String createString(char[] chars) { String s = new String(); value.setObject(s, chars); count.setInteger(s, chars.length); return s; }
abstract public void serialize(Object object, Appender appender, JsonGeneric generic, SerializationContext context); }