Reduce warnings
diff --git a/javaparser-core/bnd.bnd b/javaparser-core/bnd.bnd
index 55833db..b09e6e2 100644
--- a/javaparser-core/bnd.bnd
+++ b/javaparser-core/bnd.bnd
@@ -4,8 +4,11 @@
# Export all packages except impl
-exportcontents: \
com.github.javaparser, \
+ com.github.javaparser.printer, \
+ com.github.javaparser.utils, \
com.github.javaparser.ast, \
com.github.javaparser.ast.body, \
+ com.github.javaparser.ast.imports, \
com.github.javaparser.ast.comments, \
com.github.javaparser.ast.nodeTypes, \
com.github.javaparser.ast.expr, \
diff --git a/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java b/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java
index 0cce4d7..ccd1ced 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/JavaParser.java
@@ -321,6 +321,7 @@
* @return Expression representing the Java expression
* @throws ParseProblemException if the source code has parser errors
*/
+ @SuppressWarnings("unchecked")
public static <T extends Expression> T parseExpression(final String expression) {
return (T) simplifiedParse(EXPRESSION, provider(expression));
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/Node.java b/javaparser-core/src/main/java/com/github/javaparser/ast/Node.java
index 26ba8aa..72c1b44 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/Node.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/Node.java
@@ -373,6 +373,7 @@
* @return The data or null of no data was found for the given key
* @see DataKey
*/
+ @SuppressWarnings("unchecked")
public <M> M getData(final DataKey<M> key) {
if (data == null) {
return null;
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/NodeList.java b/javaparser-core/src/main/java/com/github/javaparser/ast/NodeList.java
index 79f0580..2f3a8db 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/NodeList.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/NodeList.java
@@ -15,6 +15,10 @@
/**
* A list of nodes.
+ * It usually has a parent node.
+ * Different from normal Nodes, this does not mean that it is a child of that parent.
+ * Instead, this list will make every node it contains a child of its parent.
+ * This way, a NodeList does not create an extra level inside the AST.
*
* @param <N> the type of nodes contained.
*/
@@ -53,15 +57,13 @@
notifyElementRemoved(index, node);
node.setParentNode(null);
}
- boolean remove = innerList.remove(node);
- return remove;
+ return innerList.remove(node);
}
+ @SafeVarargs
public static <X extends Node> NodeList<X> nodeList(X... nodes) {
final NodeList<X> nodeList = new NodeList<>();
- for (X node : nodes) {
- nodeList.add(node);
- }
+ Collections.addAll(nodeList, nodes);
return nodeList;
}
@@ -75,9 +77,7 @@
public static <X extends Node> NodeList<X> nodeList(NodeList<X> nodes) {
final NodeList<X> nodeList = new NodeList<>();
- for (X node : nodes) {
- nodeList.add(node);
- }
+ nodeList.addAll(nodes);
return nodeList;
}
@@ -180,7 +180,6 @@
}
/**
- * @param action
* @see java.lang.Iterable#forEach(java.util.function.Consumer)
*/
@Override
@@ -189,8 +188,6 @@
}
/**
- * @param o
- * @return
* @see java.util.List#contains(java.lang.Object)
*/
@Override
@@ -199,7 +196,6 @@
}
/**
- * @return
* @see java.util.List#toArray()
*/
@Override
@@ -208,8 +204,6 @@
}
/**
- * @param a
- * @return
* @see java.util.List#toArray(java.lang.Object[])
*/
@Override
@@ -218,8 +212,6 @@
}
/**
- * @param o
- * @return
* @see java.util.List#remove(java.lang.Object)
*/
@Override
@@ -232,8 +224,6 @@
}
/**
- * @param c
- * @return
* @see java.util.List#containsAll(java.util.Collection)
*/
@Override
@@ -242,20 +232,15 @@
}
/**
- * @param c
- * @return
* @see java.util.List#addAll(java.util.Collection)
*/
@Override
public boolean addAll(Collection<? extends N> c) {
- c.forEach(e -> add(e));
+ c.forEach(this::add);
return !c.isEmpty();
}
/**
- * @param index
- * @param c
- * @return
* @see java.util.List#addAll(int, java.util.Collection)
*/
@Override
@@ -267,8 +252,6 @@
}
/**
- * @param c
- * @return
* @see java.util.List#removeAll(java.util.Collection)
*/
@Override
@@ -281,8 +264,6 @@
}
/**
- * @param c
- * @return
* @see java.util.List#retainAll(java.util.Collection)
*/
@Override
@@ -297,7 +278,6 @@
}
/**
- * @param operator
* @see java.util.List#replaceAll(java.util.function.UnaryOperator)
*/
@Override
@@ -308,8 +288,6 @@
}
/**
- * @param filter
- * @return
* @see java.util.Collection#removeIf(java.util.function.Predicate)
*/
@Override
@@ -332,8 +310,6 @@
}
/**
- * @param o
- * @return
* @see java.util.List#equals(java.lang.Object)
*/
@Override
@@ -342,7 +318,6 @@
}
/**
- * @return
* @see java.util.List#hashCode()
*/
@Override
@@ -351,8 +326,6 @@
}
/**
- * @param o
- * @return
* @see java.util.List#indexOf(java.lang.Object)
*/
@Override
@@ -361,8 +334,6 @@
}
/**
- * @param o
- * @return
* @see java.util.List#lastIndexOf(java.lang.Object)
*/
@Override
@@ -371,7 +342,6 @@
}
/**
- * @return
* @see java.util.List#listIterator()
*/
@Override
@@ -380,8 +350,6 @@
}
/**
- * @param index
- * @return
* @see java.util.List#listIterator(int)
*/
@Override
@@ -390,7 +358,6 @@
}
/**
- * @return
* @see java.util.Collection#parallelStream()
*/
@Override
@@ -399,9 +366,6 @@
}
/**
- * @param fromIndex
- * @param toIndex
- * @return
* @see java.util.List#subList(int, int)
*/
@Override
@@ -410,7 +374,6 @@
}
/**
- * @return
* @see java.util.List#spliterator()
*/
@Override
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java
index cb7912c..871a128 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java
@@ -135,6 +135,7 @@
return (T) this;
}
+ @SuppressWarnings("unchecked")
@Override
public T setName(SimpleName name) {
notifyPropertyChange(ObservableProperty.NAME, this.name, name);
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 58eb511..5ad1808 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
@@ -26,7 +26,7 @@
import com.github.javaparser.ast.body.Parameter;
import com.github.javaparser.ast.nodeTypes.NodeWithParameters;
import com.github.javaparser.ast.observer.ObservableProperty;
-import com.github.javaparser.ast.stmt.EmptyStmt;
+import com.github.javaparser.ast.stmt.ReturnStmt;
import com.github.javaparser.ast.stmt.Statement;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
@@ -50,7 +50,7 @@
public LambdaExpr() {
this(null,
new NodeList<>(),
- new EmptyStmt(),
+ new ReturnStmt(),
false);
}
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 3331920..5c59073 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
@@ -63,10 +63,12 @@
v.visit(this, arg);
}
+ @Override
public final SimpleName getName() {
return name;
}
+ @Override
public NameExpr setName(final SimpleName name) {
notifyPropertyChange(ObservableProperty.NAME, this.name, name);
this.name = assertNotNull(name);
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithArguments.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithArguments.java
index 9ec380a..3154009 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithArguments.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithArguments.java
@@ -14,11 +14,13 @@
return getArguments().get(i);
}
+ @SuppressWarnings("unchecked")
default N addArgument(String arg) {
addArgument(new NameExpr(arg));
return (N) this;
}
+ @SuppressWarnings("unchecked")
default N addArgument(Expression arg) {
getArguments().add(arg);
return (N) this;
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithName.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithName.java
index 9a7f21c..2d8190f 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithName.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithName.java
@@ -38,6 +38,7 @@
N setName(Name name);
+ @SuppressWarnings("unchecked")
default N setName(String name) {
setName(parse(name));
return (N) this;
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithType.java
index 382786f..b938ce2 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithType.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/nodeTypes/NodeWithType.java
@@ -56,11 +56,13 @@
* @param typeClass the type
* @return this
*/
+ @SuppressWarnings("unchecked")
default N setType(Class<?> typeClass) {
((Node) this).tryAddImportToParentCompilationUnit(typeClass);
return setType((T) new ClassOrInterfaceType(typeClass.getSimpleName()));
}
+ @SuppressWarnings("unchecked")
default N setType(final String type) {
ClassOrInterfaceType classOrInterfaceType = new ClassOrInterfaceType(type);
return setType((T) classOrInterfaceType);
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 49769cb..8b64bc9 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
@@ -39,7 +39,7 @@
private Expression condition;
public DoStmt() {
- this(null, new EmptyStmt(), new BooleanLiteralExpr());
+ this(null, new ReturnStmt(), new BooleanLiteralExpr());
}
public DoStmt(final Statement body, final Expression condition) {
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 1b734b7..ff44699 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
@@ -52,7 +52,7 @@
new NodeList<>(),
new BooleanLiteralExpr(),
new NodeList<>(),
- new EmptyStmt());
+ new ReturnStmt());
}
public ForStmt(final NodeList<Expression> initialization, final Expression compare,
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 bea1aa8..404fc86 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
@@ -47,7 +47,7 @@
this(null,
new VariableDeclarationExpr(),
new NameExpr(),
- new EmptyStmt());
+ new ReturnStmt());
}
public ForeachStmt(final VariableDeclarationExpr variable,
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 379d0a1..d75f442 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
@@ -46,7 +46,7 @@
public IfStmt() {
this(null,
new BooleanLiteralExpr(),
- new EmptyStmt(),
+ new ReturnStmt(),
null);
}
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 126c39a..28f0e42 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.expr.SimpleName;
import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
@@ -29,23 +30,24 @@
import static com.github.javaparser.utils.Utils.assertNotNull;
/**
+ * A statement that is labeled, like <code>label123: println("continuing");</code>
* @author Julio Vilmar Gesser
*/
public final class LabeledStmt extends Statement {
- private String label;
+ private SimpleName label;
private Statement statement;
public LabeledStmt() {
- this(null, "empty", new EmptyStmt());
+ this(null, new SimpleName(), new ReturnStmt());
}
public LabeledStmt(final String label, final Statement statement) {
- this(null, label, statement);
+ this(null, new SimpleName(label), statement);
}
- public LabeledStmt(Range range, final String label, final Statement statement) {
+ public LabeledStmt(Range range, final SimpleName label, final Statement statement) {
super(range);
setLabel(label);
setStatement(statement);
@@ -61,24 +63,25 @@
v.visit(this, arg);
}
- public String getLabel() {
- return label;
- }
-
public Statement getStatement() {
return statement;
}
- public LabeledStmt setLabel(final String label) {
- notifyPropertyChange(ObservableProperty.LABEL, this.label, label);
- this.label = assertNotNull(label);
- return this;
- }
-
public LabeledStmt setStatement(final Statement statement) {
notifyPropertyChange(ObservableProperty.STATEMENT, this.statement, statement);
this.statement = assertNotNull(statement);
setAsParentNodeOf(this.statement);
return this;
}
+
+ public final SimpleName getLabel() {
+ return label;
+ }
+
+ public LabeledStmt setLabel(final SimpleName label) {
+ notifyPropertyChange(ObservableProperty.LABEL, this.label, label);
+ this.label = assertNotNull(label);
+ setAsParentNodeOf(label);
+ return this;
+ }
}
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 0a022d3..7d65770 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
@@ -39,7 +39,7 @@
private Statement body;
public WhileStmt() {
- this(null, new BooleanLiteralExpr(), new EmptyStmt());
+ this(null, new BooleanLiteralExpr(), new ReturnStmt());
}
public WhileStmt(final Expression condition, final Statement body) {
diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java
index f3170a1..11706ab 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java
@@ -860,7 +860,7 @@
@Override
public void visit(final LabeledStmt n, final Void arg) {
printJavaComment(n.getComment(), arg);
- printer.print(n.getLabel());
+ n.getLabel().accept(this, arg);
printer.print(": ");
n.getStatement().accept(this, arg);
}
diff --git a/javaparser-core/src/main/javacc/java_1_8.jj b/javaparser-core/src/main/javacc/java_1_8.jj
index c4e43d1..04c6ebf 100644
--- a/javaparser-core/src/main/javacc/java_1_8.jj
+++ b/javaparser-core/src/main/javacc/java_1_8.jj
@@ -2807,18 +2807,18 @@
}
{
"assert" {begin=tokenBegin();} check = Expression() [ ":" msg = Expression() ] ";"
- { return new AssertStmt(range(begin, tokenEnd()),check, msg); }
+ { return new AssertStmt(range(begin, tokenEnd()), check, msg); }
}
LabeledStmt LabeledStatement():
{
- String label;
+ SimpleName label;
Statement stmt;
Position begin;
}
{
- <IDENTIFIER> {begin=tokenBegin();} { label = token.image; } ":" stmt = Statement()
- { return new LabeledStmt(range(begin, tokenEnd()),label, stmt); }
+ label = SimpleName() {begin=tokenBegin();} ":" stmt = Statement()
+ { return new LabeledStmt(range(begin, tokenEnd()), label, stmt); }
}
BlockStmt Block():