@Override public MetaField[] getFields() { if (_fieldsCache == null) { _fieldsCache = fields.stream().filter(field -> field.isPublic()).toArray(size -> new MetaField[size]); if (superClass != null) { _fieldsCache = ObjectArrays.concat(_fieldsCache, superClass.getFields(), MetaField.class); } } return _fieldsCache; }
@Override public MetaField[] getFields() { if (_fieldsCache == null) { _fieldsCache = fields.stream().filter(field -> field.isPublic()).toArray(size -> new MetaField[size]); if (superClass != null) { _fieldsCache = ObjectArrays.concat(_fieldsCache, superClass.getFields(), MetaField.class); } } return _fieldsCache; }
@Test public void testGetFields() { final List<String> expectedFields = Lists.newLinkedList(); expectedFields.add(Child.class.getCanonicalName() + "." + "childPublic"); expectedFields.add(Parent.class.getCanonicalName() + "." + "parentPublic"); final ArrayList<String> actualFields = new ArrayList<>(); for (final MetaField field : getMetaClass(Child.class).getFields()) { actualFields.add(field.getDeclaringClass().getCanonicalName() + "." + field.getName()); } Collections.sort(expectedFields); Collections.sort(actualFields); assertEquals(expectedFields.toString(), actualFields.toString()); }
@Test public void testGetFields() { final ClassStructureBuilder<?> classBuilder = ClassBuilder .define("Child", Parent.class) .publicScope() .body() .privateField("childPrivate", int.class).finish() .packageField("childPackage", int.class).finish() .protectedField("childProtected", int.class).finish() .publicField("childPublic", int.class).finish(); final MetaClass child = classBuilder.getClassDefinition(); final ArrayList<String> fields = new ArrayList<String>(); for (MetaField field : child.getFields()) { fields.add(field.getDeclaringClass().getCanonicalName() + "." + field.getName()); } final List<String> expectedFields = Lists.newLinkedList(); expectedFields.add(child.getCanonicalName() + "." + "childPublic"); expectedFields.add(Parent.class.getCanonicalName() + "." + "parentPublic"); Collections.sort(fields); Collections.sort(expectedFields); assertEquals(expectedFields.toString(), fields.toString()); }
for (final MetaField field : enclosingType.getFields()) { if (field.isAnnotationPresent(AutoBound.class)) { assertTypeIsDataBinder(field.getType());
for (final MetaField field : enclosingType.getFields()) { if (field.isAnnotationPresent(AutoBound.class)) { assertTypeIsDataBinder(field.getType());