private void addPersistentMembers( List<? extends Element> membersOfClass, AccessType membersKind) { for (Element memberOfClass : membersOfClass) { AccessType forcedAccessType = TypeUtils.determineAnnotationSpecifiedAccessType(memberOfClass); if (entityAccessTypeInfo.getAccessType() != membersKind && forcedAccessType == null) { continue; } if (TypeUtils.containsAnnotation(memberOfClass, Constants.TRANSIENT) || memberOfClass.getModifiers().contains(Modifier.TRANSIENT) || memberOfClass.getModifiers().contains(Modifier.STATIC)) { continue; } MetaAttributeGenerationVisitor visitor = new MetaAttributeGenerationVisitor(this, context); AnnotationMetaAttribute result = memberOfClass.asType().accept(visitor, memberOfClass); if (result != null) { members.put(result.getPropertyName(), result); } } }
protected final void init() { getContext().logMessage(Diagnostic.Kind.OTHER, "Initializing type " + getQualifiedName() + "."); TypeUtils.determineAccessTypeForHierarchy(element, context); entityAccessTypeInfo = context.getAccessTypeInfo(getQualifiedName()); List<? extends Element> fieldsOfClass = ElementFilter.fieldsIn(element.getEnclosedElements()); addPersistentMembers(fieldsOfClass, AccessType.FIELD); List<? extends Element> methodsOfClass = ElementFilter.methodsIn(element.getEnclosedElements()); addPersistentMembers(methodsOfClass, AccessType.PROPERTY); initialized = true; }