Package com.github.javaparser.ast.body
Class ClassOrInterfaceDeclaration
java.lang.Object
com.github.javaparser.ast.Node
com.github.javaparser.ast.body.BodyDeclaration<ClassOrInterfaceDeclaration>
com.github.javaparser.ast.body.TypeDeclaration<ClassOrInterfaceDeclaration>
com.github.javaparser.ast.body.ClassOrInterfaceDeclaration
- All Implemented Interfaces:
NodeWithAbstractModifier<ClassOrInterfaceDeclaration>,NodeWithAccessModifiers<ClassOrInterfaceDeclaration>,NodeWithFinalModifier<ClassOrInterfaceDeclaration>,NodeWithPrivateModifier<ClassOrInterfaceDeclaration>,NodeWithProtectedModifier<ClassOrInterfaceDeclaration>,NodeWithPublicModifier<ClassOrInterfaceDeclaration>,NodeWithStaticModifier<ClassOrInterfaceDeclaration>,NodeWithStrictfpModifier<ClassOrInterfaceDeclaration>,NodeWithAnnotations<ClassOrInterfaceDeclaration>,NodeWithExtends<ClassOrInterfaceDeclaration>,NodeWithImplements<ClassOrInterfaceDeclaration>,NodeWithJavadoc<ClassOrInterfaceDeclaration>,NodeWithMembers<ClassOrInterfaceDeclaration>,NodeWithModifiers<ClassOrInterfaceDeclaration>,NodeWithRange<Node>,NodeWithSimpleName<ClassOrInterfaceDeclaration>,NodeWithTokenRange<Node>,NodeWithTypeParameters<ClassOrInterfaceDeclaration>,Observable,Visitable,HasParentNode<Node>,Resolvable<ResolvedReferenceTypeDeclaration>,Cloneable
public class ClassOrInterfaceDeclaration
extends TypeDeclaration<ClassOrInterfaceDeclaration>
implements NodeWithImplements<ClassOrInterfaceDeclaration>, NodeWithExtends<ClassOrInterfaceDeclaration>, NodeWithTypeParameters<ClassOrInterfaceDeclaration>, NodeWithAbstractModifier<ClassOrInterfaceDeclaration>, NodeWithFinalModifier<ClassOrInterfaceDeclaration>, Resolvable<ResolvedReferenceTypeDeclaration>
A definition of a class or interface.
class X { ... }interface X { ... }-
Nested Class Summary
Nested classes/interfaces inherited from class com.github.javaparser.ast.Node
Node.BreadthFirstIterator, Node.DirectChildrenIterator, Node.ObserverRegistrationMode, Node.ParentsVisitor, Node.Parsedness, Node.PostOrderIterator, Node.PreOrderIterator, Node.TreeTraversal -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate NodeList<ClassOrInterfaceType> private NodeList<ClassOrInterfaceType> private booleanprivate booleanprivate NodeList<ClassOrInterfaceType> private NodeList<TypeParameter> Fields inherited from class com.github.javaparser.ast.Node
ABSOLUTE_BEGIN_LINE, ABSOLUTE_END_LINE, LINE_SEPARATOR_KEY, NODE_BY_BEGIN_POSITION, PHANTOM_KEY, prettyPrinterNoCommentsConfiguration, PRINTER_KEY, SYMBOL_RESOLVER_KEY -
Constructor Summary
ConstructorsConstructorDescriptionClassOrInterfaceDeclaration(NodeList<Modifier> modifiers, boolean isInterface, String name) ClassOrInterfaceDeclaration(NodeList<Modifier> modifiers, NodeList<AnnotationExpr> annotations, boolean isInterface, SimpleName name, NodeList<TypeParameter> typeParameters, NodeList<ClassOrInterfaceType> extendedTypes, NodeList<ClassOrInterfaceType> implementedTypes, NodeList<ClassOrInterfaceType> permittedTypes, NodeList<BodyDeclaration<?>> members) ClassOrInterfaceDeclaration(NodeList<Modifier> modifiers, NodeList<AnnotationExpr> annotations, boolean isInterface, SimpleName name, NodeList<TypeParameter> typeParameters, NodeList<ClassOrInterfaceType> extendedTypes, NodeList<ClassOrInterfaceType> implementedTypes, NodeList<ClassOrInterfaceType> permittedTypes, NodeList<BodyDeclaration<?>> members, boolean isCompact) ClassOrInterfaceDeclaration(TokenRange tokenRange, NodeList<Modifier> modifiers, NodeList<AnnotationExpr> annotations, boolean isInterface, SimpleName name, NodeList<TypeParameter> typeParameters, NodeList<ClassOrInterfaceType> extendedTypes, NodeList<ClassOrInterfaceType> implementedTypes, NodeList<ClassOrInterfaceType> permittedTypes, NodeList<BodyDeclaration<?>> members) ClassOrInterfaceDeclaration(TokenRange tokenRange, NodeList<Modifier> modifiers, NodeList<AnnotationExpr> annotations, boolean isInterface, SimpleName name, NodeList<TypeParameter> typeParameters, NodeList<ClassOrInterfaceType> extendedTypes, NodeList<ClassOrInterfaceType> implementedTypes, NodeList<ClassOrInterfaceType> permittedTypes, NodeList<BodyDeclaration<?>> members, boolean isCompact) This constructor is used by the parser and is considered private. -
Method Summary
Modifier and TypeMethodDescription<R,A> R accept(GenericVisitor<R, A> v, A arg) Accept method for visitor support.<A> voidaccept(VoidVisitor<A> v, A arg) Accept method for visitor support.clone()voidCalled in every constructor for node specific code.Returns the fully qualified name of this type, derived only from information available in this compilation unit.voidbooleanbooleanbooleanbooleanbooleanprivate voidprocessIsCompactChange(boolean newIsCompact) For LPP support, the name and modifiers of a compact class must be marked as phantom nodes.booleanbooleanresolve()setCompact(boolean isCompact) setExtendedTypes(NodeList<ClassOrInterfaceType> extendedTypes) setImplementedTypes(NodeList<ClassOrInterfaceType> implementedTypes) setInterface(boolean isInterface) setPermittedTypes(NodeList<ClassOrInterfaceType> permittedTypes) setTypeParameters(NodeList<TypeParameter> typeParameters) Methods inherited from class com.github.javaparser.ast.body.TypeDeclaration
addMember, asTypeDeclaration, getCallablesWithSignature, getMembers, getModifiers, getName, ifTypeDeclaration, isNestedType, isTopLevelType, isTypeDeclaration, setMembers, setModifiers, setName, toTypeDeclarationMethods inherited from class com.github.javaparser.ast.body.BodyDeclaration
asAnnotationDeclaration, asAnnotationMemberDeclaration, asCallableDeclaration, asCompactConstructorDeclaration, asConstructorDeclaration, asEnumConstantDeclaration, asEnumDeclaration, asFieldDeclaration, asInitializerDeclaration, asMethodDeclaration, asRecordDeclaration, getAnnotations, ifAnnotationDeclaration, ifAnnotationMemberDeclaration, ifCallableDeclaration, ifCompactConstructorDeclaration, ifConstructorDeclaration, ifEnumConstantDeclaration, ifEnumDeclaration, ifFieldDeclaration, ifInitializerDeclaration, ifMethodDeclaration, ifRecordDeclaration, isAnnotationDeclaration, isAnnotationMemberDeclaration, isCallableDeclaration, isCompactConstructorDeclaration, isConstructorDeclaration, isEnumConstantDeclaration, isEnumDeclaration, isFieldDeclaration, isInitializerDeclaration, isMethodDeclaration, isRecordDeclaration, setAnnotations, toAnnotationDeclaration, toAnnotationMemberDeclaration, toCallableDeclaration, toCompactConstructorDeclaration, toConstructorDeclaration, toEnumConstantDeclaration, toEnumDeclaration, toFieldDeclaration, toInitializerDeclaration, toMethodDeclaration, toRecordDeclarationMethods inherited from class com.github.javaparser.ast.Node
addOrphanComment, containsData, createDefaultPrinter, createDefaultPrinter, equals, findAll, findAll, findAll, findByRange, findCompilationUnit, findData, findFirst, findFirst, findFirst, findRootNode, getAllContainedComments, getChildNodes, getChildNodesByType, getComment, getData, getDataKeys, getDefaultPrinterConfiguration, getLineEndingStyle, getLineEndingStyleOrDefault, getNodesByType, getOrphanComments, getParentNode, getParentNodeForChildren, getParsed, getPrinter, getPrinter, getRange, getSymbolResolver, getTokenRange, hashCode, hasScope, isAncestorOf, isPhantom, isRegistered, notifyPropertyChange, register, register, registerForSubtree, remove, removeComment, removeData, removeForced, removeOrphanComment, replace, setAsParentNodeOf, setAsParentNodeOf, setBlockComment, setComment, setData, setLineComment, setParentNode, setParsed, setRange, setTokenRange, stream, stream, toString, toString, tryAddImportToParentCompilationUnit, unregister, walk, walk, walkMethods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface com.github.javaparser.HasParentNode
findAncestor, findAncestor, findAncestor, hasParentNode, isDescendantOfMethods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier
isAbstract, setAbstractMethods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithAnnotations
addAndGetAnnotation, addAndGetAnnotation, addAnnotation, addAnnotation, addAnnotation, addMarkerAnnotation, addMarkerAnnotation, addSingleMemberAnnotation, addSingleMemberAnnotation, addSingleMemberAnnotation, addSingleMemberAnnotation, getAnnotation, getAnnotationByClass, getAnnotationByName, isAnnotationPresent, isAnnotationPresent, setAnnotation, tryAddImportToParentCompilationUnitMethods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithExtends
addExtendedType, addExtendedType, addExtendedType, addExtends, addExtends, getExtendedTypes, setExtendedType, tryAddImportToParentCompilationUnitMethods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier
isFinal, setFinalMethods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithImplements
addImplementedType, addImplementedType, addImplementedType, addImplements, addImplements, getImplementedTypes, setImplementedType, tryAddImportToParentCompilationUnitMethods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithJavadoc
getComment, getJavadoc, getJavadocComment, hasJavaDocComment, removeJavaDocComment, setComment, setJavadocComment, setJavadocComment, setJavadocComment, setJavadocComment, setJavadocCommentMethods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithMembers
addConstructor, addField, addField, addField, addFieldWithInitializer, addFieldWithInitializer, addFieldWithInitializer, addInitializer, addMethod, addPrivateField, addPrivateField, addPrivateField, addProtectedField, addProtectedField, addProtectedField, addPublicField, addPublicField, addPublicField, addStaticInitializer, getConstructorByParameterTypes, getConstructorByParameterTypes, getConstructors, getDefaultConstructor, getFieldByName, getFields, getMember, getMethods, getMethodsByName, getMethodsByParameterTypes, getMethodsByParameterTypes, getMethodsBySignature, isEmpty, setMember, tryAddImportToParentCompilationUnitMethods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithModifiers
addModifier, getAccessSpecifier, getModifiers, hasModifier, removeModifier, setModifier, setModifiers, setModifiersMethods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier
isPrivate, setPrivateMethods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier
isProtected, setProtectedMethods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier
isPublic, setPublicMethods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithRange
containsWithin, containsWithinRange, getBegin, getEnd, hasRangeMethods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithSimpleName
getNameAsExpression, getNameAsString, setNameMethods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier
isStatic, setStaticMethods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier
isStrictfp, setStrictfpMethods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters
addTypeParameter, addTypeParameter, getTypeParameter, isGeneric, setTypeParameter
-
Field Details
-
isInterface
private boolean isInterface -
isCompact
private boolean isCompact -
typeParameters
-
extendedTypes
-
implementedTypes
-
permittedTypes
-
-
Constructor Details
-
ClassOrInterfaceDeclaration
public ClassOrInterfaceDeclaration() -
ClassOrInterfaceDeclaration
-
ClassOrInterfaceDeclaration
public ClassOrInterfaceDeclaration(NodeList<Modifier> modifiers, NodeList<AnnotationExpr> annotations, boolean isInterface, SimpleName name, NodeList<TypeParameter> typeParameters, NodeList<ClassOrInterfaceType> extendedTypes, NodeList<ClassOrInterfaceType> implementedTypes, NodeList<ClassOrInterfaceType> permittedTypes, NodeList<BodyDeclaration<?>> members, boolean isCompact) -
ClassOrInterfaceDeclaration
public ClassOrInterfaceDeclaration(NodeList<Modifier> modifiers, NodeList<AnnotationExpr> annotations, boolean isInterface, SimpleName name, NodeList<TypeParameter> typeParameters, NodeList<ClassOrInterfaceType> extendedTypes, NodeList<ClassOrInterfaceType> implementedTypes, NodeList<ClassOrInterfaceType> permittedTypes, NodeList<BodyDeclaration<?>> members) -
ClassOrInterfaceDeclaration
public ClassOrInterfaceDeclaration(TokenRange tokenRange, NodeList<Modifier> modifiers, NodeList<AnnotationExpr> annotations, boolean isInterface, SimpleName name, NodeList<TypeParameter> typeParameters, NodeList<ClassOrInterfaceType> extendedTypes, NodeList<ClassOrInterfaceType> implementedTypes, NodeList<ClassOrInterfaceType> permittedTypes, NodeList<BodyDeclaration<?>> members, boolean isCompact) This constructor is used by the parser and is considered private. -
ClassOrInterfaceDeclaration
public ClassOrInterfaceDeclaration(TokenRange tokenRange, NodeList<Modifier> modifiers, NodeList<AnnotationExpr> annotations, boolean isInterface, SimpleName name, NodeList<TypeParameter> typeParameters, NodeList<ClassOrInterfaceType> extendedTypes, NodeList<ClassOrInterfaceType> implementedTypes, NodeList<ClassOrInterfaceType> permittedTypes, NodeList<BodyDeclaration<?>> members)
-
-
Method Details
-
processIsCompactChange
private void processIsCompactChange(boolean newIsCompact) For LPP support, the name and modifiers of a compact class must be marked as phantom nodes. This is a convenience method that updates the PHANTOM_KEY for all relevant nodes when isCompact is changed.- Parameters:
newIsCompact- the new value of isCompact. Needed because observers are notified of the change before the value of the field is changed.
-
customInitialization
public void customInitialization()Description copied from class:NodeCalled in every constructor for node specific code. It can't be written in the constructor itself because it will be overwritten during code generation.- Overrides:
customInitializationin classNode
-
accept
Description copied from interface:VisitableAccept method for visitor support.- Specified by:
acceptin interfaceVisitable- Type Parameters:
R- the type of the return value of the visitorA- the type the user argument passed to the visitor- Parameters:
v- the visitor implementationarg- the argument passed to the visitor (of type A)- Returns:
- the result of the visit (of type R)
-
accept
Description copied from interface:VisitableAccept method for visitor support. -
getExtendedTypes
- Specified by:
getExtendedTypesin interfaceNodeWithExtends<ClassOrInterfaceDeclaration>- Returns:
- All extended types that have been explicitly added (thus exist within the AST).
Note that this can contain more than one item if this is an interface.
Note that this will not include
java.lang.Objectunless it is explicitly added (e.g.class X extends Object {}) If you want the implicitly extended types, you will need a resolved reference.
-
getImplementedTypes
- Specified by:
getImplementedTypesin interfaceNodeWithImplements<ClassOrInterfaceDeclaration>
-
getPermittedTypes
-
getTypeParameters
- Specified by:
getTypeParametersin interfaceNodeWithTypeParameters<ClassOrInterfaceDeclaration>
-
isInterface
public boolean isInterface() -
setExtendedTypes
- Specified by:
setExtendedTypesin interfaceNodeWithExtends<ClassOrInterfaceDeclaration>
-
setImplementedTypes
public ClassOrInterfaceDeclaration setImplementedTypes(NodeList<ClassOrInterfaceType> implementedTypes) - Specified by:
setImplementedTypesin interfaceNodeWithImplements<ClassOrInterfaceDeclaration>
-
setPermittedTypes
-
setInterface
-
setTypeParameters
- Specified by:
setTypeParametersin interfaceNodeWithTypeParameters<ClassOrInterfaceDeclaration>
-
remove
- Overrides:
removein classTypeDeclaration<ClassOrInterfaceDeclaration>
-
isLocalClassDeclaration
public boolean isLocalClassDeclaration()- Returns:
- is this class's parent a LocalClassDeclarationStmt ?
-
getFullyQualifiedName
Description copied from class:TypeDeclarationReturns the fully qualified name of this type, derived only from information available in this compilation unit. (So no symbol solving happens.) If the declared type is a local class declaration, it will return Optional.empty(). If the declared type is a local record declaration, it will return Optional.empty(). If the declared type is not contained in a compilation unit, it will return Optional.empty().- Overrides:
getFullyQualifiedNamein classTypeDeclaration<ClassOrInterfaceDeclaration>- See Also:
-
isInnerClass
public boolean isInnerClass()- Returns:
- is this an inner class? NOTE: many people are confused over terminology. Refer to https://docs.oracle.com/javase/tutorial/java/javaOO/nested.html .
-
clone
- Overrides:
clonein classTypeDeclaration<ClassOrInterfaceDeclaration>
-
getMetaModel
- Overrides:
getMetaModelin classTypeDeclaration<ClassOrInterfaceDeclaration>- Returns:
- get JavaParser specific node introspection information.
-
replace
- Overrides:
replacein classTypeDeclaration<ClassOrInterfaceDeclaration>
-
isClassOrInterfaceDeclaration
public boolean isClassOrInterfaceDeclaration()- Overrides:
isClassOrInterfaceDeclarationin classBodyDeclaration<ClassOrInterfaceDeclaration>
-
asClassOrInterfaceDeclaration
- Overrides:
asClassOrInterfaceDeclarationin classBodyDeclaration<ClassOrInterfaceDeclaration>
-
ifClassOrInterfaceDeclaration
- Overrides:
ifClassOrInterfaceDeclarationin classBodyDeclaration<ClassOrInterfaceDeclaration>
-
resolve
- Specified by:
resolvein interfaceResolvable<ResolvedReferenceTypeDeclaration>- Specified by:
resolvein classTypeDeclaration<ClassOrInterfaceDeclaration>
-
toClassOrInterfaceDeclaration
- Overrides:
toClassOrInterfaceDeclarationin classBodyDeclaration<ClassOrInterfaceDeclaration>
-
isCompact
public boolean isCompact() -
setCompact
-