aboutsummaryrefslogtreecommitdiffstats
path: root/javaparser-core/src/main/java/com/github/javaparser/ast/expr
diff options
context:
space:
mode:
Diffstat (limited to 'javaparser-core/src/main/java/com/github/javaparser/ast/expr')
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java17
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java199
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java175
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);
+ }
}