diff options
author | Danny van Bruggen <lol@meuk.info> | 2016-10-16 21:56:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-16 21:56:09 +0200 |
commit | 515a9392928c14a60dc9dfa42a98198a4d877534 (patch) | |
tree | 766d85c38eea6f560b55ebfee1d816ae7bdd6cec /javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java | |
parent | cb168d96d0518a9ebd23ce00c668ccf70045c508 (diff) | |
download | platform_external_javaparser-515a9392928c14a60dc9dfa42a98198a4d877534.tar.gz platform_external_javaparser-515a9392928c14a60dc9dfa42a98198a4d877534.tar.bz2 platform_external_javaparser-515a9392928c14a60dc9dfa42a98198a4d877534.zip |
Issue 421 parenting of collections (#501)
* Migrate from List to NodeList
* Disallow usage of null in the AST
* Use Optional where fields are optional (previously nullable)
Diffstat (limited to 'javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java')
-rw-r--r-- | javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java | 102 |
1 files changed, 63 insertions, 39 deletions
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 5bb0f6299..2e5deb40a 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 @@ -21,22 +21,23 @@ package com.github.javaparser.ast.expr; -import static com.github.javaparser.utils.Utils.ensureNotNull; -import static java.util.Collections.*; +import static com.github.javaparser.ast.NodeList.nodeList; +import static com.github.javaparser.utils.Utils.assertNotNull; import java.util.Arrays; import java.util.EnumSet; -import java.util.List; import java.util.stream.Collectors; import com.github.javaparser.Range; import com.github.javaparser.ast.ArrayBracketPair; import com.github.javaparser.ast.Modifier; +import com.github.javaparser.ast.NodeList; import com.github.javaparser.ast.body.VariableDeclarator; import com.github.javaparser.ast.nodeTypes.NodeWithAnnotations; import com.github.javaparser.ast.nodeTypes.NodeWithElementType; import com.github.javaparser.ast.nodeTypes.NodeWithModifiers; import com.github.javaparser.ast.nodeTypes.NodeWithVariables; +import com.github.javaparser.ast.type.ClassOrInterfaceType; import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; @@ -52,58 +53,84 @@ public final class VariableDeclarationExpr extends Expression implements private EnumSet<Modifier> modifiers = EnumSet.noneOf(Modifier.class); - private List<AnnotationExpr> annotations; + private NodeList<AnnotationExpr> annotations = new NodeList<>(); private Type elementType; - private List<VariableDeclarator> variables; + private NodeList<VariableDeclarator> variables; - private List<ArrayBracketPair> arrayBracketPairsAfterType; + private NodeList<ArrayBracketPair> arrayBracketPairsAfterType; public VariableDeclarationExpr() { + this(Range.UNKNOWN, + EnumSet.noneOf(Modifier.class), + new NodeList<>(), + new ClassOrInterfaceType(), + new NodeList<>(), + new NodeList<>()); } public VariableDeclarationExpr(final Type elementType, String variableName) { - setElementType(elementType); - setVariables(singletonList(new VariableDeclarator(variableName))); + this(Range.UNKNOWN, + EnumSet.noneOf(Modifier.class), + new NodeList<>(), + elementType, + nodeList(new VariableDeclarator(variableName)), + new NodeList<>()); } public VariableDeclarationExpr(final Type elementType, VariableDeclarator var) { - setElementType(elementType); - setVariables(singletonList(var)); + this(Range.UNKNOWN, + EnumSet.noneOf(Modifier.class), + new NodeList<>(), + elementType, + nodeList(var), + new NodeList<>()); } public VariableDeclarationExpr(final Type elementType, String variableName, Modifier... modifiers) { - setElementType(elementType); - setVariables(singletonList(new VariableDeclarator(variableName))); - setModifiers(Arrays.stream(modifiers) - .collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)))); + this(Range.UNKNOWN, + Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))), + new NodeList<>(), + elementType, + nodeList(new VariableDeclarator(variableName)), + new NodeList<>()); } public VariableDeclarationExpr(final Type elementType, VariableDeclarator var, Modifier... modifiers) { - setElementType(elementType); - setVariables(singletonList(var)); - setModifiers(Arrays.stream(modifiers) - .collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class)))); + this(Range.UNKNOWN, + Arrays.stream(modifiers).collect(Collectors.toCollection(() -> EnumSet.noneOf(Modifier.class))), + new NodeList<>(), + elementType, + nodeList(var), + new NodeList<>()); } - public VariableDeclarationExpr(final Type elementType, final List<VariableDeclarator> variables) { - setElementType(elementType); - setVariables(variables); + public VariableDeclarationExpr(final Type elementType, final NodeList<VariableDeclarator> variables) { + this(Range.UNKNOWN, + EnumSet.noneOf(Modifier.class), + new NodeList<>(), + elementType, + variables, + new NodeList<>()); } public VariableDeclarationExpr(final EnumSet<Modifier> modifiers, final Type elementType, - final List<VariableDeclarator> variables) { - setModifiers(modifiers); - setElementType(elementType); - setVariables(variables); + final NodeList<VariableDeclarator> variables) { + this(Range.UNKNOWN, + modifiers, + new NodeList<>(), + elementType, + variables, + new NodeList<>()); } public VariableDeclarationExpr(final Range range, - final EnumSet<Modifier> modifiers, final List<AnnotationExpr> annotations, + final EnumSet<Modifier> modifiers, + final NodeList<AnnotationExpr> annotations, final Type elementType, - final List<VariableDeclarator> variables, - final List<ArrayBracketPair> arrayBracketPairsAfterType) { + final NodeList<VariableDeclarator> variables, + final NodeList<ArrayBracketPair> arrayBracketPairsAfterType) { super(range); setModifiers(modifiers); setAnnotations(annotations); @@ -132,8 +159,7 @@ public final class VariableDeclarationExpr extends Expression implements } @Override - public List<AnnotationExpr> getAnnotations() { - annotations = ensureNotNull(annotations); + public NodeList<AnnotationExpr> getAnnotations() { return annotations; } @@ -154,14 +180,13 @@ public final class VariableDeclarationExpr extends Expression implements } @Override - public List<VariableDeclarator> getVariables() { - variables = ensureNotNull(variables); + public NodeList<VariableDeclarator> getVariables() { return variables; } @Override - public VariableDeclarationExpr setAnnotations(final List<AnnotationExpr> annotations) { - this.annotations = annotations; + public VariableDeclarationExpr setAnnotations(final NodeList<AnnotationExpr> annotations) { + this.annotations = assertNotNull(annotations); setAsParentNodeOf(this.annotations); return this; } @@ -180,20 +205,19 @@ public final class VariableDeclarationExpr extends Expression implements } @Override - public VariableDeclarationExpr setVariables(final List<VariableDeclarator> variables) { + public VariableDeclarationExpr setVariables(final NodeList<VariableDeclarator> variables) { this.variables = variables; setAsParentNodeOf(this.variables); return this; } - public List<ArrayBracketPair> getArrayBracketPairsAfterElementType() { - arrayBracketPairsAfterType = ensureNotNull(arrayBracketPairsAfterType); + public NodeList<ArrayBracketPair> getArrayBracketPairsAfterElementType() { return arrayBracketPairsAfterType; } @Override - public VariableDeclarationExpr setArrayBracketPairsAfterElementType(List<ArrayBracketPair> arrayBracketPairsAfterType) { - this.arrayBracketPairsAfterType = arrayBracketPairsAfterType; + public VariableDeclarationExpr setArrayBracketPairsAfterElementType(NodeList<ArrayBracketPair> arrayBracketPairsAfterType) { + this.arrayBracketPairsAfterType = assertNotNull(arrayBracketPairsAfterType); setAsParentNodeOf(arrayBracketPairsAfterType); return this; } |