Interface NodeWithMembers<N extends Node>
-
- All Superinterfaces:
NodeWithSimpleName<N>
- All Known Implementing Classes:
AnnotationDeclaration,ClassOrInterfaceDeclaration,EnumDeclaration,RecordDeclaration,TypeDeclaration
public interface NodeWithMembers<N extends Node> extends NodeWithSimpleName<N>
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
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default ConstructorDeclarationaddConstructor(Modifier.Keyword... modifiers)Adds a constructor to this node with members.default FieldDeclarationaddField(Type type, String name, Modifier.Keyword... modifiers)Add a field to this.default FieldDeclarationaddField(Class<?> typeClass, String name, Modifier.Keyword... modifiers)Add a field to this and automatically add the import of the type if neededdefault FieldDeclarationaddField(String type, String name, Modifier.Keyword... modifiers)Add a field to this.default FieldDeclarationaddFieldWithInitializer(Type type, String name, Expression initializer, Modifier.Keyword... modifiers)Add a field to this.default FieldDeclarationaddFieldWithInitializer(Class<?> typeClass, String name, Expression initializer, Modifier.Keyword... modifiers)Add a field to this and automatically add the import of the type if neededdefault FieldDeclarationaddFieldWithInitializer(String type, String name, Expression initializer, Modifier.Keyword... modifiers)Add a field to this.default BlockStmtaddInitializer()Add an initializer block (InitializerDeclaration) to this.default NaddMember(BodyDeclaration<?> member)default MethodDeclarationaddMethod(String methodName, Modifier.Keyword... modifiers)Adds a methods with void return by default to this.default FieldDeclarationaddPrivateField(Type type, String name)Add a private field to this.default FieldDeclarationaddPrivateField(Class<?> typeClass, String name)Add a private field to this.default FieldDeclarationaddPrivateField(String type, String name)Add a private field to this and automatically add the import of the type if needed.default FieldDeclarationaddProtectedField(Type type, String name)Add a protected field to this.default FieldDeclarationaddProtectedField(Class<?> typeClass, String name)Add a protected field to this.default FieldDeclarationaddProtectedField(String type, String name)Add a protected field to this and automatically add the import of the type if needed.default FieldDeclarationaddPublicField(Type type, String name)Add a public field to this.default FieldDeclarationaddPublicField(Class<?> typeClass, String name)Add a public field to this.default FieldDeclarationaddPublicField(String type, String name)Add a public field to this and automatically add the import of the type if needed.default BlockStmtaddStaticInitializer()Add a static initializer block (InitializerDeclaration) to this.default Optional<ConstructorDeclaration>getConstructorByParameterTypes(Class<?>... paramTypes)Try to find aConstructorDeclarationby its parameter types.default Optional<ConstructorDeclaration>getConstructorByParameterTypes(String... paramTypes)Try to find aConstructorDeclarationby its parameter types.default List<ConstructorDeclaration>getConstructors()Find all constructors in the members of this node.default Optional<ConstructorDeclaration>getDefaultConstructor()Try to find aConstructorDeclarationwith no parameters.default Optional<FieldDeclaration>getFieldByName(String name)Try to find aFieldDeclarationby its namedefault List<FieldDeclaration>getFields()Find all fields in the members of this node.default BodyDeclaration<?>getMember(int i)NodeList<BodyDeclaration<?>>getMembers()default List<MethodDeclaration>getMethods()Find all methods in the members of this node.default List<MethodDeclaration>getMethodsByName(String name)Try to find aMethodDeclarationby its namedefault List<MethodDeclaration>getMethodsByParameterTypes(Class<?>... paramTypes)Try to find aMethodDeclarationby its parameter types.default List<MethodDeclaration>getMethodsByParameterTypes(String... paramTypes)Try to find aMethodDeclarationby its parameter types.default List<MethodDeclaration>getMethodsBySignature(String name, String... paramTypes)Try to findMethodDeclarations by their name and parameter types.default booleanisEmpty()default NsetMember(int i, BodyDeclaration<?> member)NsetMembers(NodeList<BodyDeclaration<?>> members)voidtryAddImportToParentCompilationUnit(Class<?> clazz)-
Methods inherited from interface com.github.javaparser.ast.nodeTypes.NodeWithSimpleName
getName, getNameAsExpression, getNameAsString, setName, setName
-
-
-
-
Method Detail
-
getMembers
NodeList<BodyDeclaration<?>> getMembers()
- Returns:
- all members inside the braces of this node, like fields, methods, nested types, etc.
-
tryAddImportToParentCompilationUnit
void tryAddImportToParentCompilationUnit(Class<?> clazz)
-
getMember
default BodyDeclaration<?> getMember(int i)
-
setMember
default N setMember(int i, BodyDeclaration<?> member)
-
addMember
default N addMember(BodyDeclaration<?> member)
-
setMembers
N setMembers(NodeList<BodyDeclaration<?>> members)
-
addField
default FieldDeclaration addField(Class<?> typeClass, String name, 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 fieldmodifiers- the modifiers likeModifier.Keyword.PUBLIC- Returns:
- the
FieldDeclarationcreated
-
addField
default FieldDeclaration addField(String type, String name, Modifier.Keyword... modifiers)
Add a field to this.- Parameters:
type- the type of the fieldname- the name of the fieldmodifiers- the modifiers likeModifier.Keyword.PUBLIC- Returns:
- the
FieldDeclarationcreated
-
addField
default FieldDeclaration addField(Type type, String name, Modifier.Keyword... modifiers)
Add a field to this.- Parameters:
type- the type of the fieldname- the name of the fieldmodifiers- the modifiers likeModifier.Keyword.PUBLIC- Returns:
- the
FieldDeclarationcreated
-
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
FieldDeclarationcreated
-
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
FieldDeclarationcreated
-
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
FieldDeclarationcreated
-
addPrivateField
default FieldDeclaration addPrivateField(Class<?> typeClass, String name)
Add a private field to this.- Parameters:
typeClass- the type of the fieldname- the name of the field- Returns:
- the
FieldDeclarationcreated
-
addPrivateField
default FieldDeclaration addPrivateField(String type, String name)
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
FieldDeclarationcreated
-
addPrivateField
default FieldDeclaration addPrivateField(Type type, String name)
Add a private field to this.- Parameters:
type- the type of the fieldname- the name of the field- Returns:
- the
FieldDeclarationcreated
-
addPublicField
default FieldDeclaration addPublicField(Class<?> typeClass, String name)
Add a public field to this.- Parameters:
typeClass- the type of the fieldname- the name of the field- Returns:
- the
FieldDeclarationcreated
-
addPublicField
default FieldDeclaration addPublicField(String type, String name)
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
FieldDeclarationcreated
-
addPublicField
default FieldDeclaration addPublicField(Type type, String name)
Add a public field to this.- Parameters:
type- the type of the fieldname- the name of the field- Returns:
- the
FieldDeclarationcreated
-
addProtectedField
default FieldDeclaration addProtectedField(Class<?> typeClass, String name)
Add a protected field to this.- Parameters:
typeClass- the type of the fieldname- the name of the field- Returns:
- the
FieldDeclarationcreated
-
addProtectedField
default FieldDeclaration addProtectedField(String type, String name)
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
FieldDeclarationcreated
-
addProtectedField
default FieldDeclaration addProtectedField(Type type, String name)
Add a protected field to this.- Parameters:
type- the type of the fieldname- the name of the field- Returns:
- the
FieldDeclarationcreated
-
addMethod
default MethodDeclaration addMethod(String methodName, Modifier.Keyword... modifiers)
Adds a methods with void return by default to this.- Parameters:
methodName- the method namemodifiers- the modifiers likeModifier.Keyword.PUBLIC- Returns:
- the
MethodDeclarationcreated
-
addConstructor
default ConstructorDeclaration addConstructor(Modifier.Keyword... modifiers)
Adds a constructor to this node with members.- Parameters:
modifiers- the modifiers likeModifier.Keyword.PUBLIC- Returns:
- the created constructor
-
addInitializer
default BlockStmt addInitializer()
Add an initializer block (InitializerDeclaration) to this.
-
addStaticInitializer
default BlockStmt addStaticInitializer()
Add a static initializer block (InitializerDeclaration) to this.
-
getMethodsByName
default List<MethodDeclaration> getMethodsByName(String name)
Try to find aMethodDeclarationby its name- Parameters:
name- the name of the method- Returns:
- the methods found (multiple in case of overloading)
-
getMethods
default List<MethodDeclaration> getMethods()
Find all methods in the members of this node.- Returns:
- the methods found. This list is immutable.
-
getMethodsByParameterTypes
default List<MethodDeclaration> getMethodsByParameterTypes(String... paramTypes)
Try to find aMethodDeclarationby 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.Listorjava.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
default List<MethodDeclaration> getMethodsBySignature(String name, String... paramTypes)
Try to findMethodDeclarations 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
default List<MethodDeclaration> getMethodsByParameterTypes(Class<?>... paramTypes)
Try to find aMethodDeclarationby its parameter types. Note that this is a match in SimpleName, sojava.awt.Listandjava.util.Listare identical to this algorithm. In addition, note that it is the erasure of each type which is considered, so passingList.classto 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.classto matchvoid foo(Map<Integer,String> myMap, int number)- Returns:
- the methods found
-
getConstructors
default List<ConstructorDeclaration> getConstructors()
Find all constructors in the members of this node. Note that only "normal" constructors, not the "compact" constructors", withinRecordDeclarationare included in the output of this method.- Returns:
- the constructors found. This list is immutable.
-
getDefaultConstructor
default Optional<ConstructorDeclaration> getDefaultConstructor()
Try to find aConstructorDeclarationwith no parameters.- Returns:
- the constructor found, if any.
-
getConstructorByParameterTypes
default Optional<ConstructorDeclaration> getConstructorByParameterTypes(String... paramTypes)
Try to find aConstructorDeclarationby 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.Listorjava.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
default Optional<ConstructorDeclaration> getConstructorByParameterTypes(Class<?>... paramTypes)
Try to find aConstructorDeclarationby its parameter types. Note that this is a match in SimpleName, sojava.awt.Listandjava.util.Listare identical to this algorithm. In addition, note that it is the erasure of each type which is considered, so passingList.classto 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.classto matchFoo(Map<Integer,String> myMap, int number)- Returns:
- the constructor found, if any.
-
getFieldByName
default Optional<FieldDeclaration> getFieldByName(String name)
Try to find aFieldDeclarationby its name- Parameters:
name- the name of the field- Returns:
- null if not found, the FieldDeclaration otherwise
-
getFields
default List<FieldDeclaration> 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.
-
-