diff options
89 files changed, 341 insertions, 46 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/AllFieldsConstructor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/AllFieldsConstructor.java new file mode 100644 index 000000000..33d58e49a --- /dev/null +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/AllFieldsConstructor.java @@ -0,0 +1,14 @@ +package com.github.javaparser.ast; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * Tells tools that this is the constructor which directly initializes all fields (except "range" and "comment") + */ +@Target(ElementType.CONSTRUCTOR) +@Retention(RetentionPolicy.RUNTIME) +public @interface AllFieldsConstructor { +} diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/ArrayCreationLevel.java b/javaparser-core/src/main/java/com/github/javaparser/ast/ArrayCreationLevel.java index 5ffa803e0..b85de867a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/ArrayCreationLevel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/ArrayCreationLevel.java @@ -57,6 +57,7 @@ public class ArrayCreationLevel extends Node implements NodeWithAnnotations<Arra this(null, dimension, new NodeList<>()); } + @AllFieldsConstructor public ArrayCreationLevel(Expression dimension, NodeList<AnnotationExpr> annotations) { this(null, dimension, annotations); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java b/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java index 62322cce8..3267901af 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java @@ -73,6 +73,7 @@ public final class CompilationUnit extends Node { this(null, new PackageDeclaration(new Name(packageDeclaration)), new NodeList<>(), new NodeList<>()); } + @AllFieldsConstructor public CompilationUnit(PackageDeclaration packageDeclaration, NodeList<ImportDeclaration> imports, NodeList<TypeDeclaration<?>> types) { this(null, packageDeclaration, imports, types); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/ImportDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/ImportDeclaration.java index e154c0245..ac778b8ef 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/ImportDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/ImportDeclaration.java @@ -50,6 +50,7 @@ public final class ImportDeclaration extends Node implements this(null, new Name(), false, false); } + @AllFieldsConstructor public ImportDeclaration(Name name, boolean isStatic, boolean isAsterisk) { this(null, name, isStatic, isAsterisk); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/PackageDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/PackageDeclaration.java index 48811adb2..c369cbdb5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/PackageDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/PackageDeclaration.java @@ -58,6 +58,7 @@ public final class PackageDeclaration extends Node implements this(null, new NodeList<>(), name); } + @AllFieldsConstructor public PackageDeclaration(NodeList<AnnotationExpr> annotations, Name name) { this(null, annotations, name); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java index ca684e043..284150977 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; @@ -54,6 +55,7 @@ public final class AnnotationDeclaration extends TypeDeclaration<AnnotationDecla new NodeList<>()); } + @AllFieldsConstructor public AnnotationDeclaration(EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, SimpleName name, NodeList<BodyDeclaration<?>> members) { this(null, diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java index 5b8d7ef6a..342e8d23c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.comments.JavadocComment; @@ -80,6 +81,7 @@ public final class AnnotationMemberDeclaration extends BodyDeclaration<Annotatio defaultValue); } + @AllFieldsConstructor public AnnotationMemberDeclaration(EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, Type type, SimpleName name, Expression defaultValue) { this(null, diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java index 9a922399d..3ff18daf2 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; @@ -86,6 +87,7 @@ public final class ClassOrInterfaceDeclaration extends TypeDeclaration<ClassOrIn new NodeList<>()); } + @AllFieldsConstructor public ClassOrInterfaceDeclaration(final EnumSet<Modifier> modifiers, final NodeList<AnnotationExpr> annotations, final boolean isInterface, final SimpleName name, diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java index e6f8efa14..1e3b97e09 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java @@ -23,6 +23,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; import com.github.javaparser.ast.AccessSpecifier; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.comments.JavadocComment; @@ -91,10 +92,11 @@ public final class ConstructorDeclaration extends BodyDeclaration<ConstructorDec new BlockStmt()); } + @AllFieldsConstructor public ConstructorDeclaration(EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, SimpleName name, NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions, - BlockStmt block) { + BlockStmt body) { this(null, modifiers, annotations, @@ -102,19 +104,19 @@ public final class ConstructorDeclaration extends BodyDeclaration<ConstructorDec name, parameters, thrownExceptions, - block); + body); } public ConstructorDeclaration(Range range, EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, SimpleName name, - NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions, BlockStmt block) { + NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions, BlockStmt body) { super(range, annotations); setModifiers(modifiers); setTypeParameters(typeParameters); setName(name); setParameters(parameters); setThrownExceptions(thrownExceptions); - setBody(block); + setBody(body); } @Override diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EmptyMemberDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EmptyMemberDeclaration.java index b742fd6f9..b5a98bafd 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EmptyMemberDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EmptyMemberDeclaration.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.comments.JavadocComment; import com.github.javaparser.ast.nodeTypes.NodeWithJavadoc; @@ -38,6 +39,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor; public final class EmptyMemberDeclaration extends BodyDeclaration<EmptyMemberDeclaration> implements NodeWithJavadoc<EmptyMemberDeclaration> { + @AllFieldsConstructor public EmptyMemberDeclaration() { this(null); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java index 2b141c3bd..60b9173d6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.comments.JavadocComment; import com.github.javaparser.ast.expr.AnnotationExpr; @@ -71,6 +72,7 @@ public final class EnumConstantDeclaration extends BodyDeclaration<EnumConstantD new NodeList<>()); } + @AllFieldsConstructor public EnumConstantDeclaration(NodeList<AnnotationExpr> annotations, SimpleName name, NodeList<Expression> arguments, NodeList<BodyDeclaration<?>> classBody) { this(null, annotations, name, arguments, classBody); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java index ede14d929..6e98b8fa5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; @@ -71,6 +72,7 @@ public final class EnumDeclaration extends TypeDeclaration<EnumDeclaration> impl new NodeList<>()); } + @AllFieldsConstructor public EnumDeclaration(EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, SimpleName name, NodeList<ClassOrInterfaceType> implementedTypes, NodeList<EnumConstantDeclaration> entries, NodeList<BodyDeclaration<?>> members) { diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java index 92ddf5375..4ceb269a5 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.comments.JavadocComment; @@ -85,6 +86,7 @@ public final class FieldDeclaration extends BodyDeclaration<FieldDeclaration> im variables); } + @AllFieldsConstructor public FieldDeclaration(EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<VariableDeclarator> variables) { this(null, diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java index 26a029b3f..90692ddab 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.comments.JavadocComment; import com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt; @@ -52,6 +53,7 @@ public final class InitializerDeclaration extends BodyDeclaration<InitializerDec this(null, false, new BlockStmt()); } + @AllFieldsConstructor public InitializerDeclaration(boolean isStatic, BlockStmt body) { this(null, isStatic, body); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java index ee184e856..bbbae6375 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java @@ -23,6 +23,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; import com.github.javaparser.ast.AccessSpecifier; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.comments.JavadocComment; @@ -118,6 +119,7 @@ public final class MethodDeclaration extends BodyDeclaration<MethodDeclaration> new BlockStmt()); } + @AllFieldsConstructor public MethodDeclaration(final EnumSet<Modifier> modifiers, final NodeList<AnnotationExpr> annotations, final NodeList<TypeParameter> typeParameters, diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/Parameter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/Parameter.java index 7013a747a..5ac003099 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/Parameter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/Parameter.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; @@ -109,6 +110,7 @@ public final class Parameter extends Node implements name); } + @AllFieldsConstructor public Parameter(final Range range, EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/VariableDeclarator.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/VariableDeclarator.java index 312dc0d4c..18c1dc21b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/VariableDeclarator.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/VariableDeclarator.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.body; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.expr.NameExpr; @@ -57,14 +58,18 @@ public final class VariableDeclarator extends Node implements this(null, new SimpleName(), null); } - public VariableDeclarator(Type type, SimpleName name) { - this(null, type, name, null); - } - public VariableDeclarator(Type type, String variableName) { this(null, type, new SimpleName(variableName), null); } + public VariableDeclarator(Type type, SimpleName name) { + this(null, type, name, null); + } + + public VariableDeclarator(Type type, String variableName, Expression initializer) { + this(null, type, new SimpleName(variableName), initializer); + } + /** * Defines the declaration of a variable. * @@ -72,14 +77,11 @@ public final class VariableDeclarator extends Node implements * @param initializer What this variable should be initialized to. An {@link com.github.javaparser.ast.expr.AssignExpr} * is unnecessary as the <code>=</code> operator is already added. */ + @AllFieldsConstructor public VariableDeclarator(Type type, SimpleName name, Expression initializer) { this(null, type, name, initializer); } - public VariableDeclarator(Type type, String variableName, Expression initializer) { - this(null, type, new SimpleName(variableName), initializer); - } - public VariableDeclarator(Range range, Type type, SimpleName name, Expression initializer) { super(range); setName(name); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java index 7bec3e9f4..8934288e6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.comments; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -40,6 +41,7 @@ public final class BlockComment extends Comment { this(null, "empty"); } + @AllFieldsConstructor public BlockComment(String content) { this(null, content); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java index febb4d460..b23236782 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java @@ -23,6 +23,7 @@ package com.github.javaparser.ast.comments; import com.github.javaparser.JavaParser; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; import com.github.javaparser.javadoc.Javadoc; @@ -38,6 +39,7 @@ public final class JavadocComment extends Comment { this(null, "empty"); } + @AllFieldsConstructor public JavadocComment(String content) { this(null, content); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java index b9b69e121..3a3fd8e9f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.comments; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -39,6 +40,7 @@ public final class LineComment extends Comment { this(null, "empty"); } + @AllFieldsConstructor public LineComment(String content) { this(null, content); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java index 01a5abc48..6b8c6e29a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -44,6 +45,7 @@ public final class ArrayAccessExpr extends Expression { this(null, new NameExpr(), new IntegerLiteralExpr()); } + @AllFieldsConstructor public ArrayAccessExpr(Expression name, Expression index) { this(null, name, index); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java index b289e3315..0e635af03 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.ArrayCreationLevel; import com.github.javaparser.ast.CompilationUnit; import com.github.javaparser.ast.NodeList; @@ -59,6 +60,7 @@ public final class ArrayCreationExpr extends Expression { new ArrayInitializerExpr()); } + @AllFieldsConstructor public ArrayCreationExpr(Type elementType, NodeList<ArrayCreationLevel> levels, ArrayInitializerExpr initializer) { this(null, elementType, diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java index 0f22a0d15..618df0b09 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; @@ -45,6 +46,7 @@ public final class ArrayInitializerExpr extends Expression { this(null, new NodeList<>()); } + @AllFieldsConstructor public ArrayInitializerExpr(NodeList<Expression> values) { this(null, values); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java index 17697fa02..97fd99ec0 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -70,6 +71,7 @@ public final class AssignExpr extends Expression { this(null, new NameExpr(), new StringLiteralExpr(), Operator.ASSIGN); } + @AllFieldsConstructor public AssignExpr(Expression target, Expression value, Operator operator) { this(null, target, value, operator); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java index 994243ffd..c42f59470 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -78,6 +79,7 @@ public final class BinaryExpr extends Expression { this(null, new BooleanLiteralExpr(), new BooleanLiteralExpr(), Operator.EQUALS); } + @AllFieldsConstructor public BinaryExpr(Expression left, Expression right, Operator operator) { this(null, left, right, operator); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java index 8d3b0c9bf..3378511e3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -41,6 +42,7 @@ public final class BooleanLiteralExpr extends LiteralExpr { this(null, false); } + @AllFieldsConstructor public BooleanLiteralExpr(boolean value) { this(null, value); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java index 339e17b6b..a03729495 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.nodeTypes.NodeWithExpression; import com.github.javaparser.ast.nodeTypes.NodeWithType; import com.github.javaparser.ast.observer.ObservableProperty; @@ -49,6 +50,7 @@ public final class CastExpr extends Expression implements this(null, new ClassOrInterfaceType(), new NameExpr()); } + @AllFieldsConstructor public CastExpr(Type type, Expression expression) { this(null, type, expression); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java index 5cce2a75f..4668068ae 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; import com.github.javaparser.utils.Utils; @@ -42,6 +43,7 @@ public final class CharLiteralExpr extends StringLiteralExpr { this(null, "?"); } + @AllFieldsConstructor public CharLiteralExpr(String value) { this(null, value); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java index 716f03646..a266312fa 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.nodeTypes.NodeWithType; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.type.ClassOrInterfaceType; @@ -43,6 +44,7 @@ public final class ClassExpr extends Expression implements NodeWithType<ClassExp this(null, new ClassOrInterfaceType()); } + @AllFieldsConstructor public ClassExpr(Type type) { this(null, type); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java index 45a64ec40..b73065f6f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -46,6 +47,7 @@ public final class ConditionalExpr extends Expression { this(null, new BooleanLiteralExpr(), new StringLiteralExpr(), new StringLiteralExpr()); } + @AllFieldsConstructor public ConditionalExpr(Expression condition, Expression thenExpr, Expression elseExpr) { this(null, condition, thenExpr, elseExpr); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java index 0d0fadf55..898bd8724 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -39,6 +40,7 @@ public final class DoubleLiteralExpr extends StringLiteralExpr { this(null, "0"); } + @AllFieldsConstructor public DoubleLiteralExpr(final String value) { this(null, value); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java index 73b17a44d..0150bd172 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -42,6 +43,7 @@ public final class EnclosedExpr extends Expression { this(null, new StringLiteralExpr()); } + @AllFieldsConstructor public EnclosedExpr(final Expression inner) { this(null, inner); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java index 470063fd5..529057ce8 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.nodeTypes.NodeWithOptionalScope; import com.github.javaparser.ast.nodeTypes.NodeWithSimpleName; @@ -56,6 +57,7 @@ public final class FieldAccessExpr extends Expression implements this(null, new ThisExpr(), new NodeList<>(), new SimpleName()); } + @AllFieldsConstructor public FieldAccessExpr(final Expression scope, final String name) { this(null, scope, new NodeList<>(), new SimpleName(name)); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java index fcb7417af..b288f79dd 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.nodeTypes.NodeWithExpression; import com.github.javaparser.ast.nodeTypes.NodeWithType; import com.github.javaparser.ast.observer.ObservableProperty; @@ -50,6 +51,7 @@ public final class InstanceOfExpr extends Expression implements this(null, new NameExpr(), new ClassOrInterfaceType()); } + @AllFieldsConstructor public InstanceOfExpr(final Expression expression, final ReferenceType type) { this(null, expression, type); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java index 4ab2e51fa..7c995e346 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -39,9 +40,9 @@ public class IntegerLiteralExpr extends StringLiteralExpr { public IntegerLiteralExpr() { this(null, "0"); - int i = 0x00; } + @AllFieldsConstructor public IntegerLiteralExpr(final String value) { this(null, value); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java index 7e40d33a8..050633389 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.body.Parameter; import com.github.javaparser.ast.nodeTypes.NodeWithParameters; @@ -60,6 +61,12 @@ public class LambdaExpr extends Expression implements false); } + @AllFieldsConstructor + public LambdaExpr(NodeList<Parameter> parameters, Statement body, + boolean isEnclosingParameters) { + this(null, parameters, body, isEnclosingParameters); + } + public LambdaExpr(Range range, NodeList<Parameter> parameters, Statement body, boolean isEnclosingParameters) { super(range); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java index c02539d68..32970cf15 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -41,6 +42,7 @@ public class LongLiteralExpr extends StringLiteralExpr { this(null, "0"); } + @AllFieldsConstructor public LongLiteralExpr(final String value) { super(value); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java index 4d33fd69c..c6f34f62a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -37,6 +38,7 @@ public final class MarkerAnnotationExpr extends AnnotationExpr { this(null, new Name()); } + @AllFieldsConstructor public MarkerAnnotationExpr(final Name name) { this(null, name); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MemberValuePair.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MemberValuePair.java index 93e915967..f4e74ca49 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MemberValuePair.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MemberValuePair.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.nodeTypes.NodeWithSimpleName; import com.github.javaparser.ast.observer.ObservableProperty; @@ -50,6 +51,7 @@ public final class MemberValuePair extends Node implements NodeWithSimpleName<Me this(null, new SimpleName(name), value); } + @AllFieldsConstructor public MemberValuePair(final SimpleName name, final Expression value) { this(null, name, value); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java index 86c8a10e7..fff0954ba 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.nodeTypes.NodeWithArguments; import com.github.javaparser.ast.nodeTypes.NodeWithOptionalScope; @@ -72,6 +73,7 @@ public final class MethodCallExpr extends Expression implements new NodeList<>()); } + @AllFieldsConstructor public MethodCallExpr(final Expression scope, final SimpleName name, final NodeList<Expression> arguments) { this(null, scope, diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java index 153fa0268..20ca20c26 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.nodeTypes.NodeWithIdentifier; import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments; @@ -62,6 +63,12 @@ public class MethodReferenceExpr extends Expression implements "empty"); } + @AllFieldsConstructor + public MethodReferenceExpr(Expression scope, + NodeList<Type> typeArguments, String identifier) { + this(null, scope, typeArguments, identifier); + } + public MethodReferenceExpr(Range range, Expression scope, NodeList<Type> typeArguments, String identifier) { super(range); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Name.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Name.java index be273771d..5665733ec 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Name.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Name.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.nodeTypes.NodeWithIdentifier; import com.github.javaparser.ast.observer.ObservableProperty; @@ -56,6 +57,7 @@ public class Name extends Node implements NodeWithIdentifier<Name> { this(null, null, identifier); } + @AllFieldsConstructor public Name(Name qualifier, final String identifier) { this(null, qualifier, identifier); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java index 82b4dcc67..b3d7d5edc 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.nodeTypes.NodeWithSimpleName; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; @@ -47,6 +48,7 @@ public class NameExpr extends Expression implements NodeWithSimpleName<NameExpr> this(null, new SimpleName(name)); } + @AllFieldsConstructor public NameExpr(final SimpleName name) { this(name.getRange().orElse(null), name); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java index dceed0d36..b0fe702fa 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; @@ -41,6 +42,7 @@ public final class NormalAnnotationExpr extends AnnotationExpr { this(null, new Name(), new NodeList<>()); } + @AllFieldsConstructor public NormalAnnotationExpr(final Name name, final NodeList<MemberValuePair> pairs) { this(null, name, pairs); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java index 132995284..7415444a6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -33,6 +34,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor; */ public final class NullLiteralExpr extends LiteralExpr { + @AllFieldsConstructor public NullLiteralExpr() { this(null); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java index 39b5cf370..c25e29877 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.body.BodyDeclaration; import com.github.javaparser.ast.nodeTypes.NodeWithArguments; @@ -34,8 +35,6 @@ import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; -import java.util.HashMap; -import java.util.Map; import java.util.Optional; import static com.github.javaparser.utils.Utils.assertNotNull; @@ -89,16 +88,24 @@ public final class ObjectCreationExpr extends Expression implements null); } + @AllFieldsConstructor + public ObjectCreationExpr( + final Expression scope, final ClassOrInterfaceType type, + final NodeList<Type> typeArguments, + final NodeList<Expression> arguments, final NodeList<BodyDeclaration<?>> anonymousClassBody) { + this(null, scope, type, typeArguments, arguments, anonymousClassBody); + } + public ObjectCreationExpr(final Range range, final Expression scope, final ClassOrInterfaceType type, final NodeList<Type> typeArguments, - final NodeList<Expression> arguments, final NodeList<BodyDeclaration<?>> anonymousBody) { + final NodeList<Expression> arguments, final NodeList<BodyDeclaration<?>> anonymousClassBody) { super(range); setScope(scope); setType(type); setTypeArguments(typeArguments); setArguments(arguments); - setAnonymousClassBody(anonymousBody); + setAnonymousClassBody(anonymousClassBody); } @Override diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SimpleName.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SimpleName.java index 5fbdd23d8..e07c59fbb 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SimpleName.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SimpleName.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.nodeTypes.NodeWithIdentifier; import com.github.javaparser.ast.observer.ObservableProperty; @@ -43,6 +44,7 @@ public class SimpleName extends Node implements NodeWithIdentifier<SimpleName> { this(null, "empty"); } + @AllFieldsConstructor public SimpleName(final String identifier) { this(null, identifier); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java index 905767120..61114fa82 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -39,6 +40,7 @@ public final class SingleMemberAnnotationExpr extends AnnotationExpr { this(null, new Name(), new StringLiteralExpr()); } + @AllFieldsConstructor public SingleMemberAnnotationExpr(final Name name, final Expression memberValue) { this(null, name, memberValue); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java index ea7cf28a9..61528c11e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -46,6 +47,7 @@ public class StringLiteralExpr extends LiteralExpr { this(null, "empty"); } + @AllFieldsConstructor public StringLiteralExpr(final String value) { this(null, value); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java index 9e4a068ce..9a24ad6da 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -45,6 +46,7 @@ public final class SuperExpr extends Expression { this(null, null); } + @AllFieldsConstructor public SuperExpr(final Expression classExpr) { this(null, classExpr); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java index c5c4acc46..a6cef7bfc 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -45,6 +46,7 @@ public final class ThisExpr extends Expression { this(null, null); } + @AllFieldsConstructor public ThisExpr(final Expression classExpr) { this(null, classExpr); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java index a093260ce..092954c6a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.nodeTypes.NodeWithType; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.type.ClassOrInterfaceType; @@ -46,6 +47,11 @@ public class TypeExpr extends Expression implements NodeWithType<TypeExpr, Type> this(null, new ClassOrInterfaceType()); } + @AllFieldsConstructor + public TypeExpr(Type type) { + this(null, type); + } + public TypeExpr(Range range, Type type) { super(range); setType(type); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java index e37d05b95..3347ff454 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.nodeTypes.NodeWithExpression; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; @@ -79,6 +80,7 @@ public final class UnaryExpr extends Expression implements this(null, new IntegerLiteralExpr(), Operator.POSTFIX_INCREMENT); } + @AllFieldsConstructor public UnaryExpr(final Expression expression, final Operator operator) { this(null, expression, operator); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java index a024154ff..1e35b9e3c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.expr; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.body.VariableDeclarator; @@ -108,6 +109,13 @@ public final class VariableDeclarationExpr extends Expression implements variables); } + @AllFieldsConstructor + public VariableDeclarationExpr(final EnumSet<Modifier> modifiers, + final NodeList<AnnotationExpr> annotations, + final NodeList<VariableDeclarator> variables) { + this(null, modifiers, annotations, variables); + } + public VariableDeclarationExpr(final Range range, final EnumSet<Modifier> modifiers, final NodeList<AnnotationExpr> annotations, diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/imports/TypeImportOnDemandDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/imports/TypeImportOnDemandDeclaration.java deleted file mode 100644 index e69de29bb..000000000 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/imports/TypeImportOnDemandDeclaration.java +++ /dev/null diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java index 228a969f3..ea651a145 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.BooleanLiteralExpr; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.observer.ObservableProperty; @@ -51,6 +52,7 @@ public final class AssertStmt extends Statement { this(null, check, null); } + @AllFieldsConstructor public AssertStmt(final Expression check, final Expression message) { this(null, check, message); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java index bec7a11eb..7d7c70b9d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.nodeTypes.NodeWithStatements; import com.github.javaparser.ast.observer.ObservableProperty; @@ -46,6 +47,7 @@ public final class BlockStmt extends Statement implements NodeWithStatements<Blo this(null, new NodeList<>()); } + @AllFieldsConstructor public BlockStmt(final NodeList<Statement> statements) { this(null, statements); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java index 5ac2f5c0c..7e322b3a4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.SimpleName; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; @@ -49,6 +50,7 @@ public final class BreakStmt extends Statement { this(null, new SimpleName(label)); } + @AllFieldsConstructor public BreakStmt(final SimpleName label) { this(null, label); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/CatchClause.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/CatchClause.java index f8db12eb8..d31bbfa34 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/CatchClause.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/CatchClause.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.Modifier; import com.github.javaparser.ast.Node; import com.github.javaparser.ast.NodeList; @@ -48,6 +49,7 @@ public final class CatchClause extends Node implements NodeWithBlockStmt<CatchCl private BlockStmt body; + @AllFieldsConstructor public CatchClause() { this(null, new Parameter(), new BlockStmt()); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java index 8d7ecae21..e3ae26f83 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.SimpleName; import com.github.javaparser.ast.nodeTypes.NodeWithOptionalLabel; import com.github.javaparser.ast.observer.ObservableProperty; @@ -52,6 +53,7 @@ public final class ContinueStmt extends Statement implements this(null, new SimpleName(label)); } + @AllFieldsConstructor public ContinueStmt(final SimpleName label) { this(null, label); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java index d6badfb12..8e8e37c5d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.BooleanLiteralExpr; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.nodeTypes.NodeWithBody; @@ -45,6 +46,7 @@ public final class DoStmt extends Statement implements NodeWithBody<DoStmt> { this(null, new ReturnStmt(), new BooleanLiteralExpr()); } + @AllFieldsConstructor public DoStmt(final Statement body, final Expression condition) { this(null, body, condition); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java index 3301e4f73..979de3220 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -32,6 +33,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor; @Deprecated public final class EmptyStmt extends Statement { + @AllFieldsConstructor public EmptyStmt() { this(null); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java index bcde185b1..50a0ea462 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.nodeTypes.NodeWithTypeArguments; @@ -57,6 +58,7 @@ public final class ExplicitConstructorInvocationStmt extends Statement implement this(null, new NodeList<>(), true, null, new NodeList<>()); } + @AllFieldsConstructor public ExplicitConstructorInvocationStmt(final boolean isThis, final Expression expression, final NodeList<Expression> arguments) { this(null, new NodeList<>(), isThis, expression, arguments); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java index 989ddb3ff..f6e8890d9 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.BooleanLiteralExpr; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.nodeTypes.NodeWithExpression; @@ -45,6 +46,7 @@ public final class ExpressionStmt extends Statement implements this(null, new BooleanLiteralExpr()); } + @AllFieldsConstructor public ExpressionStmt(final Expression expression) { this(null, expression); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java index f9837a4e3..16436743c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.BooleanLiteralExpr; import com.github.javaparser.ast.expr.Expression; @@ -59,6 +60,7 @@ public final class ForStmt extends Statement implements NodeWithBody<ForStmt> { new ReturnStmt()); } + @AllFieldsConstructor public ForStmt(final NodeList<Expression> initialization, final Expression compare, final NodeList<Expression> update, final Statement body) { this(null, initialization, compare, update, body); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForeachStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForeachStmt.java index 994342b3a..de1b0012e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForeachStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForeachStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.expr.NameExpr; import com.github.javaparser.ast.expr.VariableDeclarationExpr; @@ -53,6 +54,7 @@ public final class ForeachStmt extends Statement implements NodeWithBody<Foreach new ReturnStmt()); } + @AllFieldsConstructor public ForeachStmt(final VariableDeclarationExpr variable, final Expression iterable, final Statement body) { this(null, variable, iterable, body); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java index 88752e14d..619436942 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.BooleanLiteralExpr; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.observer.ObservableProperty; @@ -54,6 +55,7 @@ public final class IfStmt extends Statement { null); } + @AllFieldsConstructor public IfStmt(final Expression condition, final Statement thenStmt, final Statement elseStmt) { this(null, condition, thenStmt, elseStmt); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java index 44bcaf2e1..1785e362c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.SimpleName; import com.github.javaparser.ast.observer.ObservableProperty; import com.github.javaparser.ast.visitor.GenericVisitor; @@ -48,6 +49,7 @@ public final class LabeledStmt extends Statement { this(null, new SimpleName(label), statement); } + @AllFieldsConstructor public LabeledStmt(Range range, final SimpleName label, final Statement statement) { super(range); setLabel(label); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java index 5bb77c981..63a8be08a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; import com.github.javaparser.ast.body.TypeDeclaration; import com.github.javaparser.ast.observer.ObservableProperty; @@ -46,6 +47,7 @@ public final class LocalClassDeclarationStmt extends Statement { this(null, new ClassOrInterfaceDeclaration()); } + @AllFieldsConstructor public LocalClassDeclarationStmt(final ClassOrInterfaceDeclaration classDeclaration) { this(null, classDeclaration); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java index a25b5c459..e038f5cf3 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.expr.NameExpr; import com.github.javaparser.ast.observer.ObservableProperty; @@ -43,6 +44,7 @@ public final class ReturnStmt extends Statement { this(null, null); } + @AllFieldsConstructor public ReturnStmt(final Expression expression) { this(null, expression); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntryStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntryStmt.java index 18b59f3d3..f936a6b91 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntryStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntryStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.nodeTypes.NodeWithStatements; @@ -63,6 +64,7 @@ public final class SwitchEntryStmt extends Statement implements NodeWithStatemen this(null, null, new NodeList<>()); } + @AllFieldsConstructor public SwitchEntryStmt(final Expression label, final NodeList<Statement> statements) { this(null, label, statements); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java index 0232d0fbe..875c1b853 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.expr.NameExpr; @@ -49,6 +50,7 @@ public final class SwitchStmt extends Statement { this(null, new NameExpr(), new NodeList<>()); } + @AllFieldsConstructor public SwitchStmt(final Expression selector, final NodeList<SwitchEntryStmt> entries) { this(null, selector, entries); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java index 7bd0f54af..115150d58 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.expr.NameExpr; import com.github.javaparser.ast.nodeTypes.NodeWithBlockStmt; @@ -50,6 +51,7 @@ public final class SynchronizedStmt extends Statement implements this(null, new NameExpr(), new BlockStmt()); } + @AllFieldsConstructor public SynchronizedStmt(final Expression expression, final BlockStmt body) { this(null, expression, body); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java index 25581f59c..8e0765923 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.expr.NameExpr; import com.github.javaparser.ast.nodeTypes.NodeWithExpression; @@ -44,6 +45,7 @@ public final class ThrowStmt extends Statement implements this(null, new NameExpr()); } + @AllFieldsConstructor public ThrowStmt(final Expression expression) { this(null, expression); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java index 3e91f21ed..428b6df0d 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.VariableDeclarationExpr; import com.github.javaparser.ast.observer.ObservableProperty; @@ -68,6 +69,7 @@ public final class TryStmt extends Statement { null); } + @AllFieldsConstructor public TryStmt(final BlockStmt tryBlock, final NodeList<CatchClause> catchClauses, final BlockStmt finallyBlock) { this(null, diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java index 9e067fdd3..a261d03e7 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.stmt; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.expr.BooleanLiteralExpr; import com.github.javaparser.ast.expr.Expression; import com.github.javaparser.ast.nodeTypes.NodeWithBody; @@ -45,6 +46,7 @@ public final class WhileStmt extends Statement implements NodeWithBody<WhileStmt this(null, new BooleanLiteralExpr(), new ReturnStmt()); } + @AllFieldsConstructor public WhileStmt(final Expression condition, final Statement body) { this(null, condition, body); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java index 0e43866f8..165823011 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; @@ -44,6 +45,7 @@ import static com.github.javaparser.utils.Utils.assertNotNull; public class ArrayType extends ReferenceType implements NodeWithAnnotations<ArrayType> { private Type componentType; + @AllFieldsConstructor public ArrayType(Type componentType, NodeList<AnnotationExpr> annotations) { this(null, componentType, annotations); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java index f0754bb0f..fb4ca2807 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.expr.SimpleName; @@ -80,6 +81,12 @@ public final class ClassOrInterfaceType extends ReferenceType implements null); } + @AllFieldsConstructor + public ClassOrInterfaceType(final ClassOrInterfaceType scope, final SimpleName name, + final NodeList<Type> typeArguments) { + this(null, scope, name, typeArguments); + } + public ClassOrInterfaceType(final Range range, final ClassOrInterfaceType scope, final SimpleName name, final NodeList<Type> typeArguments) { super(range); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java index fb2c5a5e0..1a1f9a83f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; @@ -47,6 +48,7 @@ public class IntersectionType extends Type implements NodeWithAnnotations<Inters private NodeList<ReferenceType> elements; + @AllFieldsConstructor public IntersectionType(NodeList<ReferenceType> elements) { this(null, elements); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java index 42c17f282..303ba81ea 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; @@ -113,6 +114,7 @@ public final class PrimitiveType extends Type implements NodeWithAnnotations<Pri this(null, Primitive.INT); } + @AllFieldsConstructor public PrimitiveType(final Primitive type) { this(null, type); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java index 5a2766a69..c443cbb53 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.expr.SimpleName; @@ -45,8 +46,8 @@ import static com.github.javaparser.utils.Utils.assertNotNull; * @author Julio Vilmar Gesser * @see com.github.javaparser.ast.nodeTypes.NodeWithTypeParameters */ -public final class TypeParameter extends ReferenceType<TypeParameter> implements - NodeWithSimpleName<TypeParameter>, +public final class TypeParameter extends ReferenceType<TypeParameter> implements + NodeWithSimpleName<TypeParameter>, NodeWithAnnotations<TypeParameter> { private SimpleName name; @@ -81,6 +82,11 @@ public final class TypeParameter extends ReferenceType<TypeParameter> implements new NodeList<>()); } + @AllFieldsConstructor + public TypeParameter(SimpleName name, NodeList<ClassOrInterfaceType> typeBound, NodeList<AnnotationExpr> annotations) { + this(null, name, typeBound, annotations); + } + public TypeParameter(Range range, SimpleName name, NodeList<ClassOrInterfaceType> typeBound, NodeList<AnnotationExpr> annotations) { super(range); setName(name); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java index 4d9333db8..6c58cd597 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; @@ -42,11 +43,16 @@ public class UnionType extends Type implements NodeWithAnnotations<UnionType> { private NodeList<ReferenceType> elements; + public UnionType() { + this(null, new NodeList<>()); + } + public UnionType(Range range, NodeList<ReferenceType> elements) { super(range, new NodeList<>()); setElements(elements); } + @AllFieldsConstructor public UnionType(NodeList<ReferenceType> elements) { this(null, elements); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java index 7c1e18e09..ee1f86bec 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java @@ -21,6 +21,7 @@ package com.github.javaparser.ast.type; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.visitor.GenericVisitor; @@ -37,6 +38,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor; */ public final class UnknownType extends Type { + @AllFieldsConstructor public UnknownType() { super(null, new NodeList<>()); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java index 34c02716c..c4974b75f 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; @@ -36,6 +37,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor; * @author Julio Vilmar Gesser */ public final class VoidType extends Type implements NodeWithAnnotations<VoidType> { + @AllFieldsConstructor public VoidType() { this(null); } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java index da75017bb..282aee90e 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java @@ -22,6 +22,7 @@ package com.github.javaparser.ast.type; import com.github.javaparser.Range; +import com.github.javaparser.ast.AllFieldsConstructor; import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; @@ -53,6 +54,7 @@ public final class WildcardType extends Type implements NodeWithAnnotations<Wild this(null, extendedTypes, null); } + @AllFieldsConstructor public WildcardType(final ReferenceType extendedTypes, final ReferenceType superTypes) { this(null, extendedTypes, superTypes); } diff --git a/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/InitializeConstructorParametersStatementsGenerator.java b/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/InitializeConstructorParametersStatementsGenerator.java new file mode 100644 index 000000000..adc83d414 --- /dev/null +++ b/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/InitializeConstructorParametersStatementsGenerator.java @@ -0,0 +1,78 @@ +package com.github.javaparser.generator.metamodel; + +import com.github.javaparser.ast.AllFieldsConstructor; +import com.github.javaparser.ast.Node; +import com.github.javaparser.ast.NodeList; +import com.github.javaparser.ast.body.ClassOrInterfaceDeclaration; +import com.github.javaparser.ast.stmt.Statement; + +import java.lang.annotation.Annotation; +import java.lang.reflect.Constructor; +import java.lang.reflect.Field; + +import static com.github.javaparser.JavaParser.parseStatement; +import static com.github.javaparser.ast.Modifier.PUBLIC; +import static com.github.javaparser.generator.metamodel.MetaModelGenerator.isNode; +import static com.github.javaparser.generator.metamodel.MetaModelGenerator.metaModelName; +import static com.github.javaparser.generator.utils.GeneratorUtils.*; + +public class InitializeConstructorParametersStatementsGenerator { + public void generate2(Class<?> nodeClass, Field field, ClassOrInterfaceDeclaration nodeMetaModelClass, String nodeMetaModelFieldName, NodeList<Statement> initializePropertyMetaModelsStatements) throws NoSuchMethodException { + + AstTypeAnalysis fieldAnalysis = new AstTypeAnalysis(nodeClass.getMethod(getter(field)).getGenericReturnType()); + + Class<?> fieldType = fieldAnalysis.innerType; + String typeName = fieldType.getTypeName().replace('$', '.'); + String propertyMetaModelFieldName = field.getName() + "PropertyMetaModel"; + nodeMetaModelClass.addField("PropertyMetaModel", propertyMetaModelFieldName, PUBLIC); + String propertyInitializer = f("new PropertyMetaModel(%s, \"%s\", %s.class, %s, %s, %s, %s, %s)", + nodeMetaModelFieldName, + field.getName(), + typeName, + optionalOf(decapitalize(metaModelName(fieldType)), isNode(fieldType)), + fieldAnalysis.isOptional, + fieldAnalysis.isNodeList, + fieldAnalysis.isEnumSet, + fieldAnalysis.isSelfType); + String fieldSetting = f("%s.%s=%s;", nodeMetaModelFieldName, propertyMetaModelFieldName, propertyInitializer); + String fieldAddition = f("%s.getDeclaredPropertyMetaModels().add(%s.%s);", nodeMetaModelFieldName, nodeMetaModelFieldName, propertyMetaModelFieldName); + + initializePropertyMetaModelsStatements.add(parseStatement(fieldSetting)); + initializePropertyMetaModelsStatements.add(parseStatement(fieldAddition)); + } + + private String getter(Field field) { + return getterName(field.getType(), field.getName()); + } + + public void generate(Class<? extends Node> nodeClass, NodeList<Statement> initializeConstructorParametersStatements) { + Constructor<?> constructor = findAllFieldsConstructor(nodeClass); + for (java.lang.reflect.Parameter parameter : constructor.getParameters()) { + Field field = findFieldInClass(nodeClass, parameter.getName()); + + } + } + + private Field findFieldInClass(Class<?> nodeClass, String name) { + do { + for (Field field : nodeClass.getDeclaredFields()) { + if (field.getName().equals(name)) { + return field; + } + } + nodeClass = nodeClass.getSuperclass(); + } while (nodeClass != null); + throw new AssertionError(f("Couldn't find constructor parameter %s as a field", name)); + } + + private Constructor<?> findAllFieldsConstructor(Class<? extends Node> nodeClass) { + for (Constructor<?> constructor : nodeClass.getDeclaredConstructors()) { + for (Annotation annotation : constructor.getAnnotations()) { + if (annotation.annotationType() == AllFieldsConstructor.class) { + return constructor; + } + } + } + throw new AssertionError(f("Node class %s has no constructor annotated with @AllFieldsConstructor", nodeClass.getSimpleName())); + } +} diff --git a/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/PropertyMetaModelGenerator.java b/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/InitializePropertyMetaModelsStatementsGenerator.java index 596eda3aa..745a043f3 100644 --- a/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/PropertyMetaModelGenerator.java +++ b/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/InitializePropertyMetaModelsStatementsGenerator.java @@ -12,17 +12,17 @@ import static com.github.javaparser.generator.metamodel.MetaModelGenerator.isNod import static com.github.javaparser.generator.metamodel.MetaModelGenerator.metaModelName; import static com.github.javaparser.generator.utils.GeneratorUtils.*; -public class PropertyMetaModelGenerator { - public void generate(Class<?> c, Field field, ClassOrInterfaceDeclaration nodeMetaModelClass, String classMetaModelFieldName, NodeList<Statement> initializeFieldMetaModelsStatements, NodeList<Statement> initializeConstructorParametersStatements) throws NoSuchMethodException { +public class InitializePropertyMetaModelsStatementsGenerator { + public void generate(Class<?> nodeClass, Field field, ClassOrInterfaceDeclaration nodeMetaModelClass, String nodeMetaModelFieldName, NodeList<Statement> initializePropertyMetaModelsStatements) throws NoSuchMethodException { - AstTypeAnalysis fieldAnalysis = new AstTypeAnalysis(c.getMethod(getter(field)).getGenericReturnType()); + AstTypeAnalysis fieldAnalysis = new AstTypeAnalysis(nodeClass.getMethod(getter(field)).getGenericReturnType()); Class<?> fieldType = fieldAnalysis.innerType; String typeName = fieldType.getTypeName().replace('$', '.'); String propertyMetaModelFieldName = field.getName() + "PropertyMetaModel"; nodeMetaModelClass.addField("PropertyMetaModel", propertyMetaModelFieldName, PUBLIC); String propertyInitializer = f("new PropertyMetaModel(%s, \"%s\", %s.class, %s, %s, %s, %s, %s)", - classMetaModelFieldName, + nodeMetaModelFieldName, field.getName(), typeName, optionalOf(decapitalize(metaModelName(fieldType)), isNode(fieldType)), @@ -30,11 +30,11 @@ public class PropertyMetaModelGenerator { fieldAnalysis.isNodeList, fieldAnalysis.isEnumSet, fieldAnalysis.isSelfType); - String fieldSetting = f("%s.%s=%s;", classMetaModelFieldName, propertyMetaModelFieldName, propertyInitializer); - String fieldAddition = f("%s.getDeclaredPropertyMetaModels().add(%s.%s);", classMetaModelFieldName, classMetaModelFieldName, propertyMetaModelFieldName); + String fieldSetting = f("%s.%s=%s;", nodeMetaModelFieldName, propertyMetaModelFieldName, propertyInitializer); + String fieldAddition = f("%s.getDeclaredPropertyMetaModels().add(%s.%s);", nodeMetaModelFieldName, nodeMetaModelFieldName, propertyMetaModelFieldName); - initializeFieldMetaModelsStatements.add(parseStatement(fieldSetting)); - initializeFieldMetaModelsStatements.add(parseStatement(fieldAddition)); + initializePropertyMetaModelsStatements.add(parseStatement(fieldSetting)); + initializePropertyMetaModelsStatements.add(parseStatement(fieldAddition)); } private String getter(Field field) { diff --git a/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/MetaModelGenerator.java b/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/MetaModelGenerator.java index b9e34b611..7c6c271f4 100644 --- a/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/MetaModelGenerator.java +++ b/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/MetaModelGenerator.java @@ -23,7 +23,7 @@ import static com.github.javaparser.generator.utils.GeneratorUtils.getJavaParser public class MetaModelGenerator { static final String NODE_META_MODEL = "BaseNodeMetaModel"; - private static List<Class<? extends Node>> ALL_MODEL_CLASSES = new ArrayList<Class<? extends Node>>() {{ + private static List<Class<? extends Node>> ALL_NODE_CLASSES = new ArrayList<Class<? extends Node>>() {{ /* Base classes go first, so we don't have to do any sorting to make sure generated classes can refer to their base generated classes without being afraid those are not initialized yet. */ @@ -153,17 +153,17 @@ public class MetaModelGenerator { } private void generateNodeMetaModels(CompilationUnit javaParserMetaModelCu, SourceRoot sourceRoot) throws NoSuchMethodException { - ClassOrInterfaceDeclaration mmClass = javaParserMetaModelCu.getClassByName("JavaParserMetaModel").get(); - NodeList<Statement> initializeNodeMetaModelsStatements = mmClass.getMethodsByName("initializeNodeMetaModels").get(0).getBody().get().getStatements(); - NodeList<Statement> initializePropertyMetaModelsStatements = mmClass.getMethodsByName("initializePropertyMetaModels").get(0).getBody().get().getStatements(); - NodeList<Statement> initializeConstructorParametersStatements = mmClass.getMethodsByName("initializeConstructorParameters").get(0).getBody().get().getStatements(); + ClassOrInterfaceDeclaration metaModelCoid = javaParserMetaModelCu.getClassByName("JavaParserMetaModel").get(); + NodeList<Statement> initializeNodeMetaModelsStatements = metaModelCoid.getMethodsByName("initializeNodeMetaModels").get(0).getBody().get().getStatements(); + NodeList<Statement> initializePropertyMetaModelsStatements = metaModelCoid.getMethodsByName("initializePropertyMetaModels").get(0).getBody().get().getStatements(); + NodeList<Statement> initializeConstructorParametersStatements = metaModelCoid.getMethodsByName("initializeConstructorParameters").get(0).getBody().get().getStatements(); initializeNodeMetaModelsStatements.clear(); initializePropertyMetaModelsStatements.clear(); initializeConstructorParametersStatements.clear(); final NodeMetaModelGenerator nodeMetaModelGenerator = new NodeMetaModelGenerator(); - for (Class<? extends Node> c : ALL_MODEL_CLASSES) { - nodeMetaModelGenerator.generate(c, mmClass, initializeNodeMetaModelsStatements, initializePropertyMetaModelsStatements, initializeConstructorParametersStatements, sourceRoot); + for (Class<? extends Node> nodeClass : ALL_NODE_CLASSES) { + nodeMetaModelGenerator.generate(nodeClass, metaModelCoid, initializeNodeMetaModelsStatements, initializePropertyMetaModelsStatements, initializeConstructorParametersStatements, sourceRoot); } initializeNodeMetaModelsStatements.sort(Comparator.comparing(Node::toString)); diff --git a/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/NodeMetaModelGenerator.java b/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/NodeMetaModelGenerator.java index 1fc5cf3e1..80943869b 100644 --- a/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/NodeMetaModelGenerator.java +++ b/javaparser-metamodel-generator/src/main/java/com/github/javaparser/generator/metamodel/NodeMetaModelGenerator.java @@ -23,15 +23,16 @@ import static com.github.javaparser.generator.metamodel.MetaModelGenerator.*; import static com.github.javaparser.generator.utils.GeneratorUtils.*; public class NodeMetaModelGenerator { - private final PropertyMetaModelGenerator propertyMetaModelGenerator = new PropertyMetaModelGenerator(); + private final InitializePropertyMetaModelsStatementsGenerator initializePropertyMetaModelsStatementsGenerator = new InitializePropertyMetaModelsStatementsGenerator(); + private final InitializeConstructorParametersStatementsGenerator initializeConstructorParametersStatementsGenerator = new InitializeConstructorParametersStatementsGenerator(); - public void generate(Class<? extends Node> c, ClassOrInterfaceDeclaration mmClass, NodeList<Statement> initializeNodeMetaModelsStatements, NodeList<Statement> initializePropertyMetaModelsStatements, NodeList<Statement> initializeConstructorParametersStatements, SourceRoot sourceRoot) throws NoSuchMethodException { - String className = metaModelName(c); + public void generate(Class<? extends Node> nodeClass, ClassOrInterfaceDeclaration metaModelCoid, NodeList<Statement> initializeNodeMetaModelsStatements, NodeList<Statement> initializePropertyMetaModelsStatements, NodeList<Statement> initializeConstructorParametersStatements, SourceRoot sourceRoot) throws NoSuchMethodException { + String className = metaModelName(nodeClass); String fieldName = decapitalize(className); - mmClass.getFieldByName(fieldName).ifPresent(Node::remove); - FieldDeclaration f = mmClass.addField(className, fieldName, PUBLIC, FINAL); + metaModelCoid.getFieldByName(fieldName).ifPresent(Node::remove); + FieldDeclaration f = metaModelCoid.addField(className, fieldName, PUBLIC, FINAL); - Class<?> superclass = c.getSuperclass(); + Class<?> superclass = nodeClass.getSuperclass(); final String superClassMetaModel = optionalOf(decapitalize(metaModelName(superclass)), isNode(superclass)); f.getVariable(0).setInitializer(parseExpression(f("new %s(this, %s)", className, superClassMetaModel))); @@ -43,7 +44,7 @@ public class NodeMetaModelGenerator { ClassOrInterfaceDeclaration classMetaModelClass = classMetaModelJavaFile.addClass(className, PUBLIC); classMetaModelClass.addExtendedType(new ClassOrInterfaceType(NODE_META_MODEL)); - AstTypeAnalysis typeAnalysis = new AstTypeAnalysis(c); + AstTypeAnalysis typeAnalysis = new AstTypeAnalysis(nodeClass); ConstructorDeclaration classMMConstructor = classMetaModelClass .addConstructor() @@ -53,20 +54,23 @@ public class NodeMetaModelGenerator { .getBody() .addStatement(parseExplicitConstructorInvocationStmt(f("super(super%s, parent, %s.class, \"%s\", \"%s\", %s, %s);", NODE_META_MODEL, - c.getName(), - c.getSimpleName(), - c.getPackage().getName(), + nodeClass.getName(), + nodeClass.getSimpleName(), + nodeClass.getPackage().getName(), typeAnalysis.isAbstract, typeAnalysis.isSelfType))); - List<Field> fields = new ArrayList<>(Arrays.asList(c.getDeclaredFields())); + List<Field> fields = new ArrayList<>(Arrays.asList(nodeClass.getDeclaredFields())); fields.sort(Comparator.comparing(Field::getName)); for (Field field : fields) { if (fieldShouldBeIgnored(field)) { continue; } - propertyMetaModelGenerator.generate(c, field, classMetaModelClass, fieldName, initializePropertyMetaModelsStatements, initializeConstructorParametersStatements); + initializePropertyMetaModelsStatementsGenerator.generate(nodeClass, field, classMetaModelClass, fieldName, initializePropertyMetaModelsStatements); + } + if (!typeAnalysis.isAbstract) { + initializeConstructorParametersStatementsGenerator.generate(nodeClass, initializeConstructorParametersStatements); } } |