diff options
Diffstat (limited to 'javaparser-core/src/main/java/com/github/javaparser/ast/expr')
3 files changed, 204 insertions, 187 deletions
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 61f1cf682..280a92882 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 @@ -21,15 +21,15 @@ package com.github.javaparser.ast.expr; +import static com.github.javaparser.utils.Utils.ensureNotNull; + +import java.util.List; + import com.github.javaparser.Range; import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; -import java.util.List; - -import static com.github.javaparser.utils.Utils.*; - /** * @author Julio Vilmar Gesser */ @@ -37,7 +37,7 @@ public final class FieldAccessExpr extends Expression { private Expression scope; - private List<Type> typeArgs; + private List<Type<?>> typeArgs; private NameExpr field; @@ -49,7 +49,8 @@ public final class FieldAccessExpr extends Expression { setField(field); } - public FieldAccessExpr(final Range range, final Expression scope, final List<Type> typeArgs, final String field) { + public FieldAccessExpr(final Range range, final Expression scope, final List<Type<?>> typeArgs, + final String field) { super(range); setScope(scope); setTypeArgs(typeArgs); @@ -76,7 +77,7 @@ public final class FieldAccessExpr extends Expression { return scope; } - public List<Type> getTypeArgs() { + public List<Type<?>> getTypeArgs() { typeArgs = ensureNotNull(typeArgs); return typeArgs; } @@ -95,7 +96,7 @@ public final class FieldAccessExpr extends Expression { setAsParentNodeOf(this.scope); } - public void setTypeArgs(final List<Type> typeArgs) { + public void setTypeArgs(final List<Type<?>> typeArgs) { this.typeArgs = typeArgs; setAsParentNodeOf(this.typeArgs); } 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 c28065ed1..30bab9d78 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 @@ -18,124 +18,123 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - + package com.github.javaparser.ast.expr; +import static com.github.javaparser.utils.Utils.ensureNotNull; + +import java.util.List; + import com.github.javaparser.Range; import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; -import java.util.ArrayList; -import java.util.List; - -import static com.github.javaparser.utils.Utils.*; - /** * @author Julio Vilmar Gesser */ public final class MethodCallExpr extends Expression { - private Expression scope; - - private List<Type> typeArgs; - - private NameExpr name; - - private List<Expression> args; - - public MethodCallExpr() { - } - - public MethodCallExpr(final Expression scope, final String name) { - setScope(scope); - setName(name); - } - - public MethodCallExpr(final Expression scope, final String name, final List<Expression> args) { - setScope(scope); - setName(name); - setArgs(args); - } - - public MethodCallExpr(final Range range, final Expression scope, final List<Type> typeArgs, final String name, final List<Expression> args) { - super(range); - setScope(scope); - setTypeArgs(typeArgs); - setName(name); - setArgs(args); - } - - - /** - * Adds the given argument to the method call. The list of arguments will be - * initialized if it is <code>null</code>. - * - * @param arg - * argument value - */ - public MethodCallExpr addArgument(Expression arg) { - List<Expression> args = getArgs(); - if (isNullOrEmpty(args)) { - args = new ArrayList<>(); - setArgs(args); - } - args.add(arg); - arg.setParentNode(this); - return this; - } - - @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) { - return v.visit(this, arg); - } - - @Override public <A> void accept(final VoidVisitor<A> v, final A arg) { - v.visit(this, arg); - } - - public List<Expression> getArgs() { + private Expression scope; + + private List<Type<?>> typeArgs; + + private NameExpr name; + + private List<Expression> args; + + public MethodCallExpr() { + } + + public MethodCallExpr(final Expression scope, final String name) { + setScope(scope); + setName(name); + } + + public MethodCallExpr(final Expression scope, final String name, final List<Expression> args) { + setScope(scope); + setName(name); + setArgs(args); + } + + public MethodCallExpr(final Range range, final Expression scope, final List<Type<?>> typeArgs, final String name, + final List<Expression> args) { + super(range); + setScope(scope); + setTypeArgs(typeArgs); + setName(name); + setArgs(args); + } + + /** + * Adds the given argument to the method call. + * + * @param arg + * argument value + */ + public MethodCallExpr addArgument(Expression arg) { + getArgs().add(arg); + arg.setParentNode(this); + return this; + } + + public void addArgument(String arg) { + addArgument(new NameExpr(arg)); + } + + @Override + public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) { + return v.visit(this, arg); + } + + @Override + public <A> void accept(final VoidVisitor<A> v, final A arg) { + v.visit(this, arg); + } + + public List<Expression> getArgs() { args = ensureNotNull(args); return args; - } + } - public String getName() { - return name.getName(); - } + public String getName() { + return name.getName(); + } - public NameExpr getNameExpr() { - return name; - } + public NameExpr getNameExpr() { + return name; + } - public Expression getScope() { - return scope; - } + public Expression getScope() { + return scope; + } - public List<Type> getTypeArgs() { + public List<Type<?>> getTypeArgs() { typeArgs = ensureNotNull(typeArgs); return typeArgs; - } - - public void setArgs(final List<Expression> args) { - this.args = args; - setAsParentNodeOf(this.args); - } - - public void setName(final String name) { - setNameExpr(new NameExpr(name)); - } - - public void setNameExpr(NameExpr name) { - this.name = name; - setAsParentNodeOf(this.name); - } - - public void setScope(final Expression scope) { - this.scope = scope; - setAsParentNodeOf(this.scope); - } - - public void setTypeArgs(final List<Type> typeArgs) { - this.typeArgs = typeArgs; - setAsParentNodeOf(this.typeArgs); - } + } + + public void setArgs(final List<Expression> args) { + this.args = args; + setAsParentNodeOf(this.args); + } + + public void setName(final String name) { + setNameExpr(new NameExpr(name)); + } + + public void setNameExpr(NameExpr name) { + this.name = name; + setAsParentNodeOf(this.name); + } + + public void setScope(final Expression scope) { + this.scope = scope; + setAsParentNodeOf(this.scope); + } + + public void setTypeArgs(final List<Type<?>> typeArgs) { + this.typeArgs = typeArgs; + setAsParentNodeOf(this.typeArgs); + } } 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 edc41cae5..82ee7f3e6 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 @@ -18,15 +18,17 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - + package com.github.javaparser.ast.expr; import static com.github.javaparser.utils.Utils.ensureNotNull; +import java.util.ArrayList; import java.util.List; import com.github.javaparser.Range; import com.github.javaparser.ast.body.BodyDeclaration; +import com.github.javaparser.ast.nodeTypes.NodeWithType; import com.github.javaparser.ast.type.ClassOrInterfaceType; import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.visitor.GenericVisitor; @@ -41,100 +43,115 @@ import com.github.javaparser.ast.visitor.VoidVisitor; * * @author Julio Vilmar Gesser */ -public final class ObjectCreationExpr extends Expression { +public final class ObjectCreationExpr extends Expression implements NodeWithType<ObjectCreationExpr> { - private Expression scope; + private Expression scope; - private ClassOrInterfaceType type; + private ClassOrInterfaceType type; - private List<Type> typeArgs; + private List<Type<?>> typeArgs; - private List<Expression> args; + private List<Expression> args; // This can be null, to indicate there is no body private List<BodyDeclaration<?>> anonymousClassBody; - public ObjectCreationExpr() { - } - - /** - * Defines a call to a constructor. - * @param scope may be null - * @param type this is the class that the constructor is being called for. - * @param args Any arguments to pass to the constructor - */ - public ObjectCreationExpr(final Expression scope, final ClassOrInterfaceType type, final List<Expression> args) { - setScope(scope); - setType(type); - setArgs(args); - } - - public ObjectCreationExpr(final Range range, - final Expression scope, final ClassOrInterfaceType type, final List<Type> typeArgs, + public ObjectCreationExpr() { + } + + /** + * Defines a call to a constructor. + * + * @param scope may be null + * @param type this is the class that the constructor is being called for. + * @param args Any arguments to pass to the constructor + */ + public ObjectCreationExpr(final Expression scope, final ClassOrInterfaceType type, final List<Expression> args) { + setScope(scope); + setType(type); + setArgs(args); + } + + public ObjectCreationExpr(final Range range, + final Expression scope, final ClassOrInterfaceType type, final List<Type<?>> typeArgs, final List<Expression> args, final List<BodyDeclaration<?>> anonymousBody) { - super(range); - setScope(scope); - setType(type); - setTypeArgs(typeArgs); - setArgs(args); - setAnonymousClassBody(anonymousBody); - } - - @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) { - return v.visit(this, arg); - } - - @Override public <A> void accept(final VoidVisitor<A> v, final A arg) { - v.visit(this, arg); - } + super(range); + setScope(scope); + setType(type); + setTypeArgs(typeArgs); + setArgs(args); + setAnonymousClassBody(anonymousBody); + } + + @Override + public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) { + return v.visit(this, arg); + } + + @Override + public <A> void accept(final VoidVisitor<A> v, final A arg) { + v.visit(this, arg); + } /** * This can be null, to indicate there is no body */ public List<BodyDeclaration<?>> getAnonymousClassBody() { - return anonymousClassBody; - } - - public List<Expression> getArgs() { - args = ensureNotNull(args); - return args; - } - - public Expression getScope() { - return scope; - } - - public ClassOrInterfaceType getType() { - return type; - } - - public List<Type> getTypeArgs() { - typeArgs = ensureNotNull(typeArgs); + return anonymousClassBody; + } + + public void addAnonymousClassBody(BodyDeclaration<?> body) { + if (anonymousClassBody == null) + anonymousClassBody = new ArrayList<>(); + anonymousClassBody.add(body); + body.setParentNode(this); + } + + public List<Expression> getArgs() { + args = ensureNotNull(args); + return args; + } + + public Expression getScope() { + return scope; + } + + @Override + public ClassOrInterfaceType getType() { + return type; + } + + public List<Type<?>> getTypeArgs() { + typeArgs = ensureNotNull(typeArgs); return typeArgs; - } + } public void setAnonymousClassBody(final List<BodyDeclaration<?>> anonymousClassBody) { - this.anonymousClassBody = anonymousClassBody; + this.anonymousClassBody = anonymousClassBody; setAsParentNodeOf(this.anonymousClassBody); - } - - public void setArgs(final List<Expression> args) { - this.args = args; - setAsParentNodeOf(this.args); - } - - public void setScope(final Expression scope) { - this.scope = scope; - setAsParentNodeOf(this.scope); - } - - public void setType(final ClassOrInterfaceType type) { - this.type = type; - setAsParentNodeOf(this.type); - } - - public void setTypeArgs(final List<Type> typeArgs) { - this.typeArgs = typeArgs; - setAsParentNodeOf(this.typeArgs); - } + } + + public void setArgs(final List<Expression> args) { + this.args = args; + setAsParentNodeOf(this.args); + } + + public void setScope(final Expression scope) { + this.scope = scope; + setAsParentNodeOf(this.scope); + } + + @Override + public ObjectCreationExpr setType(final Type<?> type) { + if (!(type instanceof ClassOrInterfaceType))// needed so we can use NodeWithType + throw new RuntimeException("You can only add ClassOrInterfaceType to an ObjectCreationExpr"); + this.type = (ClassOrInterfaceType) type; + setAsParentNodeOf(this.type); + return this; + } + + public void setTypeArgs(final List<Type<?>> typeArgs) { + this.typeArgs = typeArgs; + setAsParentNodeOf(this.typeArgs); + } } |