public F getFields() { if (fields != null) return fields; fields = (F) new Fields(this); return fields; }
public static Fields<FieldInfo> getFields(Class clazz) { return getFields(clazz, DEFAULT_MAPPER); }
public <G extends Generic> Fields(G g, FieldMapper<T, G> mapper) { Map<String, T> fields = readFields(g, new LinkedHashMap<String, T>(), mapper); this.map = new LinkedHashMap<String, T>(fields.size(), 1); this.map.putAll(fields); array = fill(map.values(), createArray(map.size())); }
public Fields(Map<String, T> map) { this.map = new HashMap<String, T>(map.size(), 1); this.map.putAll(map); array = fill(map.values(), createArray(map.size())); }
@Test public void wildcardTypeTest() { Fields<FieldInfo> fields = new Fields<FieldInfo>(WildcardTypeTestPojo.class); Assert.assertEquals(2,fields.size()); FieldInfo fieldInfo; fieldInfo = fields.get("superNumbers"); Assert.assertEquals(List.class, fieldInfo.generic.clazz); Assert.assertEquals(1, fieldInfo.generic.typesCount()); Assert.assertEquals(Number.class, fieldInfo.generic.type(0).clazz); Assert.assertEquals(0, fieldInfo.generic.type(0).typesCount()); fieldInfo = fields.get("extendsNumbers"); Assert.assertEquals(List.class, fieldInfo.generic.clazz); Assert.assertEquals(1, fieldInfo.generic.typesCount()); Assert.assertEquals(Number.class, fieldInfo.generic.type(0).clazz); Assert.assertEquals(0, fieldInfo.generic.type(0).typesCount()); } }
protected static Mapper<Request, Object> createPojoMapper(Class type, String parameterName, Map<Class, ParameterMapper<?>> customMappers) { Fields<FieldInfo> fields = Fields.getFields(type); List<Pair<FieldInfo, Mapper<Request, Object>>> mappers = new ArrayList<>(fields.size()); for (FieldInfo field : fields) { if (field.field.getType().equals(type))
@Test public void fieldsTest() throws NoSuchFieldException { Generic generic = new Generic(ArrayHolder.class); Fields map = generic.getFields(); Assert.assertEquals(2, map.size()); Assert.assertTrue(map.containsKey("array")); Assert.assertTrue(map.containsKey("list")); Assert.assertTrue(map == generic.getFields()); }
protected <T extends FieldInfo, G extends Generic> Map<String, T> readFields(G generic, Map<String, T> fields, FieldMapper<T, G> mapper) { if (generic == null) return fields; readFields((G) generic.parent, fields, mapper); Field[] ff = generic.clazz.getDeclaredFields(); for (Field field : ff) { if (!Modifier.isTransient(field.getModifiers()) && !Modifier.isStatic(field.getModifiers()) && (field.getModifiers() & SYNTHETIC) == 0 // && !Modifier.isFinal(field.getModifiers()) // && !Modifier.isPrivate(field.getModifiers()) // && !Modifier.isProtected(field.getModifiers()) ) { field.setAccessible(true); fields.put(field.getName(), mapper.map(field, generic)); } } return fields; } }
public Fields(Map<String, T> map) { this.map = new HashMap<String, T>(map.size(), 1); this.map.putAll(map); array = fill(map.values(), createArray(map.size())); }
protected <T extends FieldInfo, G extends Generic> Map<String, T> readFields(G generic, Map<String, T> fields, FieldMapper<T, G> mapper) { if (generic == null) return fields; readFields((G) generic.parent, fields, mapper); Field[] ff = generic.clazz.getDeclaredFields(); for (Field field : ff) { if (!Modifier.isTransient(field.getModifiers()) && !Modifier.isStatic(field.getModifiers()) && (field.getModifiers() & SYNTHETIC) == 0 // && !Modifier.isFinal(field.getModifiers()) // && !Modifier.isPrivate(field.getModifiers()) // && !Modifier.isProtected(field.getModifiers()) ) { field.setAccessible(true); T t = mapper.map(field, generic); if (t != null) fields.put(field.getName(), t); } } return fields; } }
public F getFields() { if (fields != null) return fields; fields = (F) new Fields(this); return fields; }
public <G extends Generic> Fields(G g, FieldMapper<T, G> mapper) { Map<String, T> fields = readFields(g, new LinkedHashMap<String, T>(), mapper); this.map = new LinkedHashMap<String, T>(fields.size(), 1); this.map.putAll(fields); array = fill(map.values(), createArray(map.size())); }
public static Fields<FieldInfo> of(Class clazz) { return getFields(clazz, DEFAULT_MAPPER); }
public static <T extends FieldInfo> Fields<T> getFields(Class clazz, FieldMapper<T, Generic> mapper) { return new Fields<T>(clazz, mapper); }
public static Fields<FieldInfo> getFields(Class clazz) { return getFields(clazz, DEFAULT_MAPPER); }
public static <T extends FieldInfo> Fields<T> getFields(Class clazz, FieldMapper<T, Generic> mapper) { return new Fields<T>(clazz, mapper); }
public static Fields<FieldInfo> of(Class clazz) { return getFields(clazz, DEFAULT_MAPPER); }
public <T> T bind(T t) { Fields<FieldInfo> fields = new Fields<FieldInfo>(t.getClass()); for (FieldInfo fieldInfo : fields) { FieldReflection reflection = fieldInfo.reflection;
public <T> T bind(T t) { Fields<FieldInfo> fields = new Fields<FieldInfo>(t.getClass()); for (FieldInfo fieldInfo : fields) { FieldReflection reflection = fieldInfo.reflection;