E
- The type that represents the super type of all elements in the ASTC
- The type that represents a class in the ASTM
- The type that represents a method in the ASTF
- The type that represents a field in the ASTpublic interface ElementFactory<E,C extends E,M extends E,F extends E>
Modifier and Type | Method and Description |
---|---|
ClassElement |
newClassElement(C type,
AnnotationMetadata annotationMetadata)
Builds a new class element for the given type.
|
ClassElement |
newClassElement(C type,
AnnotationMetadata annotationMetadata,
Map<String,ClassElement> resolvedGenerics)
Builds a new class element for the given type.
|
ConstructorElement |
newConstructorElement(ClassElement declaringClass,
M constructor,
AnnotationMetadata annotationMetadata)
Builds a new constructor element for the given type.
|
EnumConstantElement |
newEnumConstantElement(ClassElement declaringClass,
F enumConstant,
AnnotationMetadata annotationMetadata)
Builds a new enum constant element for the given type.
|
FieldElement |
newFieldElement(ClassElement declaringClass,
F field,
AnnotationMetadata annotationMetadata)
Builds a new field element for the given type.
|
FieldElement |
newFieldElement(F field,
AnnotationMetadata annotationMetadata)
Builds a new field element for the given field.
|
MethodElement |
newMethodElement(ClassElement declaringClass,
M method,
AnnotationMetadata annotationMetadata)
Builds a new method element for the given type.
|
ClassElement |
newSourceClassElement(C type,
AnnotationMetadata annotationMetadata)
Builds a new source class element for the given type.
|
MethodElement |
newSourceMethodElement(ClassElement declaringClass,
M method,
AnnotationMetadata annotationMetadata)
Builds a new source method element for the given method.
|
@NonNull ClassElement newClassElement(@NonNull C type, @NonNull AnnotationMetadata annotationMetadata)
type
- The typeannotationMetadata
- The resolved annotation metadata@NonNull ClassElement newClassElement(@NonNull C type, @NonNull AnnotationMetadata annotationMetadata, @NonNull Map<String,ClassElement> resolvedGenerics)
type
- The typeannotationMetadata
- The resolved annotation metadataresolvedGenerics
- The resolved generics@NonNull ClassElement newSourceClassElement(@NonNull C type, @NonNull AnnotationMetadata annotationMetadata)
newClassElement(Object, AnnotationMetadata)
in that
it should only be called from elements that are known to originate from source code.type
- The typeannotationMetadata
- The resolved annotation metadata@NonNull MethodElement newSourceMethodElement(ClassElement declaringClass, @NonNull M method, @NonNull AnnotationMetadata annotationMetadata)
newMethodElement(ClassElement, Object, AnnotationMetadata)
in that
it should only be called from elements that are known to originate from source code.declaringClass
- The declaring classmethod
- The methodannotationMetadata
- The resolved annotation metadata@NonNull MethodElement newMethodElement(ClassElement declaringClass, @NonNull M method, @NonNull AnnotationMetadata annotationMetadata)
declaringClass
- The declaring classmethod
- The methodannotationMetadata
- The resolved annotation metadata@NonNull ConstructorElement newConstructorElement(ClassElement declaringClass, @NonNull M constructor, @NonNull AnnotationMetadata annotationMetadata)
declaringClass
- The declaring classconstructor
- The constructorannotationMetadata
- The resolved annotation metadata@NonNull EnumConstantElement newEnumConstantElement(ClassElement declaringClass, @NonNull F enumConstant, @NonNull AnnotationMetadata annotationMetadata)
declaringClass
- The declaring classenumConstant
- The enum constantannotationMetadata
- The resolved annotation metadata@NonNull FieldElement newFieldElement(ClassElement declaringClass, @NonNull F field, @NonNull AnnotationMetadata annotationMetadata)
declaringClass
- The declaring classfield
- The fieldannotationMetadata
- The resolved annotation metadata@NonNull FieldElement newFieldElement(@NonNull F field, @NonNull AnnotationMetadata annotationMetadata)
field
- The fieldannotationMetadata
- The resolved annotation metadata