Set<Field> references = new TreeSet<>();
while (typeElement != null) {
List<? extends Element> enclosedElements = typeElement.getEnclosedElements();
for (Element enclosedElement : enclosedElements) {
if (enclosedElement instanceof VariableElement) {
VariableElement field = (VariableElement) enclosedElement;
if (!field.getModifiers().contains(Modifier.STATIC)) {
if (validField(field)) {
fields.add(new Field(field.asType().toString(), field.getSimpleName().toString()));
} else if (embedded(field)) {
System.out.println("embedded");
System.out.println("field = " + field);
embeds.add(new Field(encodeEmbedName(field), field.getSimpleName().toString()));
} else if (reference(field)) {
references.add(new Field(field.asType().toString(), field.getSimpleName().toString()));
}
}
}
}
typeElement = (TypeElement) processingEnv.getTypeUtils().asElement(typeElement.getSuperclass());