Interface NodeWithMembers<N extends Node>
- All Superinterfaces:
NodeWithSimpleName<N>
- All Known Implementing Classes:
AnnotationDeclaration
,ClassOrInterfaceDeclaration
,EnumDeclaration
,RecordDeclaration
,TypeDeclaration
A node having members.
The main reason for this interface is to permit users to manipulate homogeneously all nodes with a getMembers method.
-
Method Summary
Modifier and TypeMethodDescriptiondefault ConstructorDeclaration
addConstructor(Modifier.Keyword... modifiers)
Adds a constructor to this node with members.default FieldDeclaration
addField(Type type, String name, Modifier.Keyword... modifiers)
Add a field to this.default FieldDeclaration
addField(Class<?> typeClass, String name, Modifier.Keyword... modifiers)
Add a field to this and automatically add the import of the type if neededdefault FieldDeclaration
addField(String type, String name, Modifier.Keyword... modifiers)
Add a field to this.default FieldDeclaration
addFieldWithInitializer(Type type, String name, Expression initializer, Modifier.Keyword... modifiers)
Add a field to this.default FieldDeclaration
addFieldWithInitializer(Class<?> typeClass, String name, Expression initializer, Modifier.Keyword... modifiers)
Add a field to this and automatically add the import of the type if neededdefault FieldDeclaration
addFieldWithInitializer(String type, String name, Expression initializer, Modifier.Keyword... modifiers)
Add a field to this.default BlockStmt
Add an initializer block (InitializerDeclaration
) to this.default N
addMember(BodyDeclaration<?> member)
default MethodDeclaration
addMethod(String methodName, Modifier.Keyword... modifiers)
Adds a methods with void return by default to this.default FieldDeclaration
addPrivateField(Type type, String name)
Add a private field to this.default FieldDeclaration
addPrivateField(Class<?> typeClass, String name)
Add a private field to this.default FieldDeclaration
addPrivateField(String type, String name)
Add a private field to this and automatically add the import of the type if needed.default FieldDeclaration
addProtectedField(Type type, String name)
Add a protected field to this.default FieldDeclaration
addProtectedField(Class<?> typeClass, String name)
Add a protected field to this.default FieldDeclaration
addProtectedField(String type, String name)
Add a protected field to this and automatically add the import of the type if needed.default FieldDeclaration
addPublicField(Type type, String name)
Add a public field to this.default FieldDeclaration
addPublicField(Class<?> typeClass, String name)
Add a public field to this.default FieldDeclaration
addPublicField(String type, String name)
Add a public field to this and automatically add the import of the type if needed.default BlockStmt
Add a static initializer block (InitializerDeclaration
) to this.default Optional<ConstructorDeclaration>
getConstructorByParameterTypes(Class<?>... paramTypes)
Try to find aConstructorDeclaration
by its parameter types.default Optional<ConstructorDeclaration>
getConstructorByParameterTypes(String... paramTypes)
Try to find aConstructorDeclaration
by its parameter types.default List<ConstructorDeclaration>
Find all constructors in the members of this node.default Optional<ConstructorDeclaration>
Try to find aConstructorDeclaration
with no parameters.default Optional<FieldDeclaration>
getFieldByName(String name)
Try to find aFieldDeclaration
by its namedefault List<FieldDeclaration>
Find all fields in the members of this node.default BodyDeclaration<?>
getMember(int i)
default List<MethodDeclaration>
Find all methods in the members of this node.default List<MethodDeclaration>
getMethodsByName(String name)
Try to find aMethodDeclaration
by its namedefault List<MethodDeclaration>
getMethodsByParameterTypes(Class<?>... paramTypes)
Try to find aMethodDeclaration
by its parameter types.default List<MethodDeclaration>
getMethodsByParameterTypes(String... paramTypes)
Try to find aMethodDeclaration
by its parameter types.default List<MethodDeclaration>
getMethodsBySignature(String name, String... paramTypes)
Try to findMethodDeclaration
s by their name and parameter types.default boolean
isEmpty()
default N
setMember(int i, BodyDeclaration<?> member)
setMembers(NodeList<BodyDeclaration<?>> members)
void
tryAddImportToParentCompilationUnit(Class<?> clazz)
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithSimpleName
getName, getNameAsExpression, getNameAsString, setName, setName
-
Method Details
-
getMembers
NodeList<BodyDeclaration<?>> getMembers()- Returns:
- all members inside the braces of this node, like fields, methods, nested types, etc.
-
tryAddImportToParentCompilationUnit
-
getMember
-
setMember
-
addMember
-
setMembers
-
addField
Add a field to this and automatically add the import of the type if needed- Parameters:
typeClass
- the type of the fieldname
- the name of the fieldmodifiers
- the modifiers likeModifier.Keyword.PUBLIC
- Returns:
- the
FieldDeclaration
created
-
addField
Add a field to this.- Parameters:
type
- the type of the fieldname
- the name of the fieldmodifiers
- the modifiers likeModifier.Keyword.PUBLIC
- Returns:
- the
FieldDeclaration
created
-
addField
Add a field to this.- Parameters:
type
- the type of the fieldname
- the name of the fieldmodifiers
- the modifiers likeModifier.Keyword.PUBLIC
- Returns:
- the
FieldDeclaration
created
-
addFieldWithInitializer
default FieldDeclaration addFieldWithInitializer(Class<?> typeClass, String name, Expression initializer, Modifier.Keyword... modifiers)Add a field to this and automatically add the import of the type if needed- Parameters:
typeClass
- the type of the fieldname
- the name of the fieldinitializer
- the initializer of the fieldmodifiers
- the modifiers likeModifier.Keyword.PUBLIC
- Returns:
- the
FieldDeclaration
created
-
addFieldWithInitializer
default FieldDeclaration addFieldWithInitializer(String type, String name, Expression initializer, Modifier.Keyword... modifiers)Add a field to this.- Parameters:
type
- the type of the fieldname
- the name of the fieldinitializer
- the initializer of the fieldmodifiers
- the modifiers likeModifier.Keyword.PUBLIC
- Returns:
- the
FieldDeclaration
created
-
addFieldWithInitializer
default FieldDeclaration addFieldWithInitializer(Type type, String name, Expression initializer, Modifier.Keyword... modifiers)Add a field to this.- Parameters:
type
- the type of the fieldname
- the name of the fieldinitializer
- the initializer of the fieldmodifiers
- the modifiers likeModifier.Keyword.PUBLIC
- Returns:
- the
FieldDeclaration
created
-
addPrivateField
Add a private field to this.- Parameters:
typeClass
- the type of the fieldname
- the name of the field- Returns:
- the
FieldDeclaration
created
-
addPrivateField
Add a private field to this and automatically add the import of the type if needed.- Parameters:
type
- the type of the fieldname
- the name of the field- Returns:
- the
FieldDeclaration
created
-
addPrivateField
Add a private field to this.- Parameters:
type
- the type of the fieldname
- the name of the field- Returns:
- the
FieldDeclaration
created
-
addPublicField
Add a public field to this.- Parameters:
typeClass
- the type of the fieldname
- the name of the field- Returns:
- the
FieldDeclaration
created
-
addPublicField
Add a public field to this and automatically add the import of the type if needed.- Parameters:
type
- the type of the fieldname
- the name of the field- Returns:
- the
FieldDeclaration
created
-
addPublicField
Add a public field to this.- Parameters:
type
- the type of the fieldname
- the name of the field- Returns:
- the
FieldDeclaration
created
-
addProtectedField
Add a protected field to this.- Parameters:
typeClass
- the type of the fieldname
- the name of the field- Returns:
- the
FieldDeclaration
created
-
addProtectedField
Add a protected field to this and automatically add the import of the type if needed.- Parameters:
type
- the type of the fieldname
- the name of the field- Returns:
- the
FieldDeclaration
created
-
addProtectedField
Add a protected field to this.- Parameters:
type
- the type of the fieldname
- the name of the field- Returns:
- the
FieldDeclaration
created
-
addMethod
Adds a methods with void return by default to this.- Parameters:
methodName
- the method namemodifiers
- the modifiers likeModifier.Keyword.PUBLIC
- Returns:
- the
MethodDeclaration
created
-
addConstructor
Adds a constructor to this node with members.- Parameters:
modifiers
- the modifiers likeModifier.Keyword.PUBLIC
- Returns:
- the created constructor
-
addInitializer
Add an initializer block (InitializerDeclaration
) to this. -
addStaticInitializer
Add a static initializer block (InitializerDeclaration
) to this. -
getMethodsByName
Try to find aMethodDeclaration
by its name- Parameters:
name
- the name of the method- Returns:
- the methods found (multiple in case of overloading)
-
getMethods
Find all methods in the members of this node.- Returns:
- the methods found. This list is immutable.
-
getMethodsByParameterTypes
Try to find aMethodDeclaration
by its parameter types. The given parameter types must literally match the declared types of this node's parameters, so passing the string"List"
to this method will find all methods that have exactly one parameter whose type is declared asList
, but not methods with exactly one parameter whose type is declared asjava.util.List
orjava.awt.List
. Conversely, passing the string"java.util.List"
to this method will find all methods that have exactly one parameter whose type is declared asjava.util.List
, but not if the parameter type is declared asList
. Similarly, note that generics are matched as well: If there is a method that has a parameter declared asList<String>
, then it will be considered as a match only if the given string is"List<String>"
, but not if the given string is only"List"
.- Parameters:
paramTypes
- the types of parameters like"Map<Integer, String>", "int"
to matchvoid foo(Map<Integer,String> myMap, int number)
- Returns:
- the methods found
-
getMethodsBySignature
Try to findMethodDeclaration
s by their name and parameter types. Parameter types are matched exactly as in the case ofgetMethodsByParameterTypes(String...)
.- Parameters:
paramTypes
- the types of parameters like"Map<Integer, String>", "int"
to matchvoid foo(Map<Integer,String> myMap, int number)
- Returns:
- the methods found
-
getMethodsByParameterTypes
Try to find aMethodDeclaration
by its parameter types. Note that this is a match in SimpleName, sojava.awt.List
andjava.util.List
are identical to this algorithm. In addition, note that it is the erasure of each type which is considered, so passingList.class
to this method will return all methods that have exactly one parameter whose type is namedList
, regardless of whether the parameter type is declared without generics asList
, or with generics asList<String>
, orList<Integer>
, etc.- Parameters:
paramTypes
- the types of parameters likeMap.class, int.class
to matchvoid foo(Map<Integer,String> myMap, int number)
- Returns:
- the methods found
-
getConstructors
Find all constructors in the members of this node. Note that only "normal" constructors, not the "compact" constructors", withinRecordDeclaration
are included in the output of this method.- Returns:
- the constructors found. This list is immutable.
-
getDefaultConstructor
Try to find aConstructorDeclaration
with no parameters.- Returns:
- the constructor found, if any.
-
getConstructorByParameterTypes
Try to find aConstructorDeclaration
by its parameter types. The given parameter types must literally match the declared types of the desired constructor, so passing the string"List"
to this method will search for a constructor that has exactly one parameter whose type is declared asList
, but not for a constructor with exactly one parameter whose type is declared asjava.util.List
orjava.awt.List
. Conversely, passing the string"java.util.List"
to this method will search for a constructor that has exactly one parameter whose type is declared asjava.util.List
, but not for a constructor whose type is declared asList
. Similarly, note that generics are matched as well: If there is a constructor that has a parameter declared asList<String>
, then it will be considered as a match only if the given string is"List<String>"
, but not if the given string is only"List"
.- Parameters:
paramTypes
- the types of parameters like"Map<Integer, String>", "int"
to matchFoo(Map<Integer,String> myMap, int number)
- Returns:
- the constructor found, if any.
-
getConstructorByParameterTypes
Try to find aConstructorDeclaration
by its parameter types. Note that this is a match in SimpleName, sojava.awt.List
andjava.util.List
are identical to this algorithm. In addition, note that it is the erasure of each type which is considered, so passingList.class
to this method will search for a constructor that has exactly one parameter whose type is namedList
, regardless of whether the parameter type is declared without generics asList
, or with generics asList<String>
, orList<Integer>
, etc.- Parameters:
paramTypes
- the types of parameters likeMap.class, int.class
to matchFoo(Map<Integer,String> myMap, int number)
- Returns:
- the constructor found, if any.
-
getFieldByName
Try to find aFieldDeclaration
by its name- Parameters:
name
- the name of the field- Returns:
- null if not found, the FieldDeclaration otherwise
-
getFields
Find all fields in the members of this node.- Returns:
- the fields found. This list is immutable.
-
isEmpty
default boolean isEmpty()- Returns:
- true if there are no members contained in this node.
-