Package com.github.javaparser.ast.body
Class ClassOrInterfaceDeclaration
- java.lang.Object
-
- com.github.javaparser.ast.Node
-
- com.github.javaparser.ast.body.BodyDeclaration<T>
-
- 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 { ... }
- Author:
- Julio Vilmar Gesser
-
-
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
-
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
Constructors Constructor Description ClassOrInterfaceDeclaration()
ClassOrInterfaceDeclaration(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(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)
This constructor is used by the parser and is considered private.
-
Method Summary
-
Methods inherited from class com.github.javaparser.ast.body.TypeDeclaration
addMember, asTypeDeclaration, getCallablesWithSignature, getMembers, getModifiers, getName, ifTypeDeclaration, isNestedType, isTopLevelType, isTypeDeclaration, setMembers, setModifiers, setName, toTypeDeclaration
-
Methods 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, toRecordDeclaration
-
Methods inherited from class com.github.javaparser.ast.Node
addOrphanComment, containsData, createDefaultPrinter, createDefaultPrinter, customInitialization, 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, walk
-
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.github.javaparser.HasParentNode
findAncestor, findAncestor, findAncestor, hasParentNode, isDescendantOf
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithAbstractModifier
isAbstract, setAbstract
-
Methods 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, tryAddImportToParentCompilationUnit
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithExtends
addExtendedType, addExtendedType, addExtendedType, addExtends, addExtends, getExtendedTypes, setExtendedType, tryAddImportToParentCompilationUnit
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithFinalModifier
isFinal, setFinal
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithImplements
addImplementedType, addImplementedType, addImplementedType, addImplements, addImplements, getImplementedTypes, setImplementedType, tryAddImportToParentCompilationUnit
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithJavadoc
getComment, getJavadoc, getJavadocComment, hasJavaDocComment, removeJavaDocComment, setComment, setJavadocComment, setJavadocComment, setJavadocComment, setJavadocComment
-
Methods 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, tryAddImportToParentCompilationUnit
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithModifiers
addModifier, getAccessSpecifier, getModifiers, hasModifier, removeModifier, setModifier, setModifiers, setModifiers
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPrivateModifier
isPrivate, setPrivate
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithProtectedModifier
isProtected, setProtected
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithPublicModifier
isPublic, setPublic
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithRange
containsWithin, containsWithinRange, getBegin, getEnd, hasRange
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithSimpleName
getNameAsExpression, getNameAsString, setName
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStaticModifier
isStatic, setStatic
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.modifiers.NodeWithStrictfpModifier
isStrictfp, setStrictfp
-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters
addTypeParameter, addTypeParameter, getTypeParameter, isGeneric, setTypeParameter
-
-
-
-
Constructor Detail
-
ClassOrInterfaceDeclaration
public ClassOrInterfaceDeclaration()
-
ClassOrInterfaceDeclaration
public ClassOrInterfaceDeclaration(NodeList<Modifier> modifiers, boolean isInterface, String name)
-
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)
This constructor is used by the parser and is considered private.
-
-
Method Detail
-
accept
public <R,A> R accept(GenericVisitor<R,A> v, A arg)
Description copied from interface:Visitable
Accept method for visitor support.- Specified by:
accept
in 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
public <A> void accept(VoidVisitor<A> v, A arg)
Description copied from interface:Visitable
Accept method for visitor support.
-
getExtendedTypes
public NodeList<ClassOrInterfaceType> getExtendedTypes()
- Specified by:
getExtendedTypes
in 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.Object
unless it is explicitly added (e.g.class X extends Object {}
) If you want the implicitly extended types, you will need a resolved reference.
-
getImplementedTypes
public NodeList<ClassOrInterfaceType> getImplementedTypes()
- Specified by:
getImplementedTypes
in interfaceNodeWithImplements<ClassOrInterfaceDeclaration>
-
getPermittedTypes
public NodeList<ClassOrInterfaceType> getPermittedTypes()
-
getTypeParameters
public NodeList<TypeParameter> getTypeParameters()
- Specified by:
getTypeParameters
in interfaceNodeWithTypeParameters<ClassOrInterfaceDeclaration>
-
isInterface
public boolean isInterface()
-
setExtendedTypes
public ClassOrInterfaceDeclaration setExtendedTypes(NodeList<ClassOrInterfaceType> extendedTypes)
- Specified by:
setExtendedTypes
in interfaceNodeWithExtends<ClassOrInterfaceDeclaration>
-
setImplementedTypes
public ClassOrInterfaceDeclaration setImplementedTypes(NodeList<ClassOrInterfaceType> implementedTypes)
- Specified by:
setImplementedTypes
in interfaceNodeWithImplements<ClassOrInterfaceDeclaration>
-
setPermittedTypes
public ClassOrInterfaceDeclaration setPermittedTypes(NodeList<ClassOrInterfaceType> permittedTypes)
-
setInterface
public ClassOrInterfaceDeclaration setInterface(boolean isInterface)
-
setTypeParameters
public ClassOrInterfaceDeclaration setTypeParameters(NodeList<TypeParameter> typeParameters)
- Specified by:
setTypeParameters
in interfaceNodeWithTypeParameters<ClassOrInterfaceDeclaration>
-
remove
public boolean remove(Node node)
- Overrides:
remove
in classTypeDeclaration<ClassOrInterfaceDeclaration>
-
isLocalClassDeclaration
public boolean isLocalClassDeclaration()
- Returns:
- is this class's parent a LocalClassDeclarationStmt ?
-
getFullyQualifiedName
public Optional<String> getFullyQualifiedName()
Description copied from class:TypeDeclaration
Returns 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:
getFullyQualifiedName
in classTypeDeclaration<ClassOrInterfaceDeclaration>
- See Also:
LocalClassDeclarationStmt
,LocalRecordDeclarationStmt
-
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
public ClassOrInterfaceDeclaration clone()
- Overrides:
clone
in classTypeDeclaration<ClassOrInterfaceDeclaration>
-
getMetaModel
public ClassOrInterfaceDeclarationMetaModel getMetaModel()
- Overrides:
getMetaModel
in classTypeDeclaration<ClassOrInterfaceDeclaration>
- Returns:
- get JavaParser specific node introspection information.
-
replace
public boolean replace(Node node, Node replacementNode)
- Overrides:
replace
in classTypeDeclaration<ClassOrInterfaceDeclaration>
-
isClassOrInterfaceDeclaration
public boolean isClassOrInterfaceDeclaration()
- Overrides:
isClassOrInterfaceDeclaration
in classBodyDeclaration<ClassOrInterfaceDeclaration>
-
asClassOrInterfaceDeclaration
public ClassOrInterfaceDeclaration asClassOrInterfaceDeclaration()
- Overrides:
asClassOrInterfaceDeclaration
in classBodyDeclaration<ClassOrInterfaceDeclaration>
-
ifClassOrInterfaceDeclaration
public void ifClassOrInterfaceDeclaration(Consumer<ClassOrInterfaceDeclaration> action)
- Overrides:
ifClassOrInterfaceDeclaration
in classBodyDeclaration<ClassOrInterfaceDeclaration>
-
resolve
public ResolvedReferenceTypeDeclaration resolve()
- Specified by:
resolve
in interfaceResolvable<ResolvedReferenceTypeDeclaration>
- Specified by:
resolve
in classTypeDeclaration<ClassOrInterfaceDeclaration>
-
toClassOrInterfaceDeclaration
public Optional<ClassOrInterfaceDeclaration> toClassOrInterfaceDeclaration()
- Overrides:
toClassOrInterfaceDeclaration
in classBodyDeclaration<ClassOrInterfaceDeclaration>
-
-