aboutsummaryrefslogtreecommitdiff
path: root/javaparser-core/src/main/java/com/github/javaparser
diff options
context:
space:
mode:
authorDanny van Bruggen <danny.van.bruggen@kvk.nl>2017-02-07 16:33:56 +0100
committerDanny van Bruggen <danny.van.bruggen@kvk.nl>2017-02-07 16:33:56 +0100
commit01f005bd3ceb47427476490d7ee5ad0d19248ff3 (patch)
treede80fc607b80f0b1e32b56e0271ccd85c6d4c227 /javaparser-core/src/main/java/com/github/javaparser
parent252055a55567f8fc250b81df4e1af1a54af8ca94 (diff)
downloadjavaparser-01f005bd3ceb47427476490d7ee5ad0d19248ff3.tar.gz
The result of running the replace(Node) method generator
Diffstat (limited to 'javaparser-core/src/main/java/com/github/javaparser')
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/ArrayCreationLevel.java20
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/CompilationUnit.java26
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/ImportDeclaration.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/Node.java60
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/PackageDeclaration.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationDeclaration.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/AnnotationMemberDeclaration.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java13
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/ClassOrInterfaceDeclaration.java26
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/ConstructorDeclaration.java26
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/EmptyMemberDeclaration.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumConstantDeclaration.java20
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/EnumDeclaration.java20
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/FieldDeclaration.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/InitializerDeclaration.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java32
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/Parameter.java13
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/TypeDeclaration.java13
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/body/VariableDeclarator.java13
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/comments/BlockComment.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java7
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/comments/JavadocComment.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/comments/LineComment.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayAccessExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayCreationExpr.java20
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/ArrayInitializerExpr.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/AssignExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/BinaryExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/BooleanLiteralExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/CastExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/CharLiteralExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/ClassExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/ConditionalExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/DoubleLiteralExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/EnclosedExpr.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java7
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/FieldAccessExpr.java22
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/InstanceOfExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/IntegerLiteralExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/LambdaExpr.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/LongLiteralExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/MarkerAnnotationExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/MemberValuePair.java7
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodCallExpr.java28
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/MethodReferenceExpr.java16
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/Name.java13
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/NameExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/NormalAnnotationExpr.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/NullLiteralExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/ObjectCreationExpr.java36
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/SimpleName.java7
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/SingleMemberAnnotationExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/StringLiteralExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/SuperExpr.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/ThisExpr.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/TypeExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/UnaryExpr.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/expr/VariableDeclarationExpr.java20
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/AssertStmt.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BlockStmt.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/BreakStmt.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/CatchClause.java7
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ContinueStmt.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/DoStmt.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/EmptyStmt.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExplicitConstructorInvocationStmt.java28
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ExpressionStmt.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForStmt.java26
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ForeachStmt.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/IfStmt.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LabeledStmt.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/LocalClassDeclarationStmt.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ReturnStmt.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java7
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchEntryStmt.java20
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SwitchStmt.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/SynchronizedStmt.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/ThrowStmt.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/TryStmt.java32
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/stmt/WhileStmt.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/ArrayType.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/ClassOrInterfaceType.java22
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/IntersectionType.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/PrimitiveType.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java13
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/TypeParameter.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/UnionType.java14
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/UnknownType.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/VoidType.java8
-rw-r--r--javaparser-core/src/main/java/com/github/javaparser/ast/type/WildcardType.java20
93 files changed, 1196 insertions, 46 deletions
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 ae707a858..0e96e29c0 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
@@ -32,6 +32,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* In <code>new int[1][2];</code> there are two ArrayCreationLevel objects,
@@ -120,5 +121,24 @@ public class ArrayCreationLevel extends Node implements NodeWithAnnotations<Arra
public void removeDimension() {
setDimension(null);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < annotations.size(); i++) {
+ if (annotations.get(i) == node) {
+ annotations.remove(i);
+ return true;
+ }
+ }
+ if (dimension != null) {
+ if (node == dimension) {
+ setDimension((Expression) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 bab441a2a..abd5ef58c 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
@@ -39,6 +39,7 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* <p>
@@ -421,5 +422,30 @@ public final class CompilationUnit extends Node {
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getImports(), getTypes());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < imports.size(); i++) {
+ if (imports.get(i) == node) {
+ imports.remove(i);
+ return true;
+ }
+ }
+ if (packageDeclaration != null) {
+ if (node == packageDeclaration) {
+ setPackageDeclaration((PackageDeclaration) null);
+ return true;
+ }
+ }
+ for (int i = 0; i < types.size(); i++) {
+ if (types.get(i) == node) {
+ types.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 6dec91245..aa60184f6 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
@@ -27,6 +27,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* An import declaration.
@@ -112,5 +113,12 @@ public final class ImportDeclaration extends Node implements NodeWithName<Import
this.isStatic = isStatic;
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 8374d06b3..7a32fff4a 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
@@ -41,6 +41,7 @@ import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
import java.util.*;
import static java.util.Collections.unmodifiableList;
+import com.github.javaparser.ast.Node;
/**
* Base class for all nodes of the abstract syntax tree.
@@ -440,55 +441,10 @@ public abstract class Node implements Cloneable, HasParentNode<Node>, Visitable
* @throws RuntimeException if it fails in an unexpected way
*/
public boolean remove() {
- Node parentNode = this.parentNode;
if (parentNode == null) {
return false;
}
- boolean removed = false;
- Class<?> parentClass = parentNode.getClass();
- for (Method method : parentClass.getMethods()) {
- if (!removed && !java.lang.reflect.Modifier.isStatic(method.getModifiers())) {
- // looking for methods returning a NodeList
- if (method.getParameterCount() == 0 && NodeList.class.isAssignableFrom(method.getReturnType())) {
- try {
- NodeList result = (NodeList) method.invoke(parentNode);
- removed = result.remove(this);
- } catch (IllegalAccessException | InvocationTargetException e) {
- }
- } else if ((method.getReturnType().isAssignableFrom(this.getClass()) || isOptionalAssignableFrom(method.getGenericReturnType(), this.getClass())) && method.getParameterCount() == 0 && method.getName().startsWith("get")) {
- final Class<?> setterParamType = isOptionalAssignableFrom(method.getGenericReturnType(), this.getClass()) ? getOptionalParameterType(method.getGenericReturnType()) : method.getReturnType();
- // ok, we found a potential getter. Before invoking let's check there is a corresponding setter,
- // otherwise there is no point
- String setterName = "set" + method.getName().substring("get".length());
- Optional<Method> optSetter = Arrays.stream(parentClass.getMethods()).filter( m -> m.getName().equals(setterName)).filter( m -> !java.lang.reflect.Modifier.isStatic(m.getModifiers())).filter( m -> m.getParameterCount() == 1).filter( m -> m.getParameterTypes()[0].equals(setterParamType)).findFirst();
- if (optSetter.isPresent()) {
- try {
- Object resultRaw = method.invoke(parentNode);
- Node result;
- if (isOptionalAssignableFrom(method.getGenericReturnType(), this.getClass())) {
- Optional optionalResultRaw = (Optional) resultRaw;
- if (optionalResultRaw.isPresent()) {
- Object o = optionalResultRaw.get();
- if (Node.class.isAssignableFrom(o.getClass())) {
- result = (Node) o;
- } else
- continue;
- } else
- continue;
- } else {
- result = (Node) resultRaw;
- }
- if (this == result) {
- optSetter.get().invoke(parentNode, (Object) null);
- removed = true;
- }
- } catch (IllegalAccessException | InvocationTargetException e) {
- }
- }
- }
- }
- }
- return removed;
+ return parentNode.remove(this);
}
@Override
@@ -594,5 +550,17 @@ public abstract class Node implements Cloneable, HasParentNode<Node>, Visitable
Class parameterType = (Class) parameterizedType.getActualTypeArguments()[0];
return Optional.of(parameterType);
}
+
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (comment != null) {
+ if (node == comment) {
+ setComment((Comment) null);
+ return true;
+ }
+ }
+ return false;
+ }
}
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 7f8b766fe..d66053a79 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
@@ -31,6 +31,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A package declaration.
@@ -129,5 +130,18 @@ public final class PackageDeclaration extends Node implements NodeWithAnnotation
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < annotations.size(); i++) {
+ if (annotations.get(i) == node) {
+ annotations.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 cf9b85260..b6826ffdd 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
@@ -31,6 +31,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;
+import com.github.javaparser.ast.Node;
/**
* An annotation type declaration.<br/><code>@interface X { ... }</code>
@@ -70,5 +71,12 @@ public final class AnnotationDeclaration extends TypeDeclaration<AnnotationDecla
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getMembers(), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 5bb51bfb1..7d7be2970 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
@@ -41,6 +41,7 @@ import java.util.EnumSet;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* The "int id();" in <code>@interface X { int id(); }</code>
@@ -170,5 +171,18 @@ public final class AnnotationMemberDeclaration extends BodyDeclaration<Annotatio
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (defaultValue != null) {
+ if (node == defaultValue) {
+ setDefaultValue((Expression) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java
index 91a4c0c77..6f776edf6 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/BodyDeclaration.java
@@ -77,5 +77,18 @@ public abstract class BodyDeclaration<T extends Node> extends Node implements No
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(annotations);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < annotations.size(); i++) {
+ if (annotations.get(i) == node) {
+ annotations.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 63de1b10b..a9c6b2d1e 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
@@ -36,6 +36,7 @@ import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.*;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A definition of a class or interface.<br/><code>class X { ... }</code>
@@ -154,5 +155,30 @@ public final class ClassOrInterfaceDeclaration extends TypeDeclaration<ClassOrIn
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getExtendedTypes(), getImplementedTypes(), getTypeParameters(), getMembers(), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < extendedTypes.size(); i++) {
+ if (extendedTypes.get(i) == node) {
+ extendedTypes.remove(i);
+ return true;
+ }
+ }
+ for (int i = 0; i < implementedTypes.size(); i++) {
+ if (implementedTypes.get(i) == node) {
+ implementedTypes.remove(i);
+ return true;
+ }
+ }
+ for (int i = 0; i < typeParameters.size(); i++) {
+ if (typeParameters.get(i) == node) {
+ typeParameters.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 70076cc80..29e378df8 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
@@ -38,6 +38,7 @@ import java.util.Arrays;
import java.util.EnumSet;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A constructor declaration: <code>class X { X() { } }</code> where X(){} is the constructor declaration.
@@ -249,5 +250,30 @@ public final class ConstructorDeclaration extends BodyDeclaration<ConstructorDec
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getParameters(), getThrownExceptions(), getTypeParameters(), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < parameters.size(); i++) {
+ if (parameters.get(i) == node) {
+ parameters.remove(i);
+ return true;
+ }
+ }
+ for (int i = 0; i < thrownExceptions.size(); i++) {
+ if (thrownExceptions.get(i) == node) {
+ thrownExceptions.remove(i);
+ return true;
+ }
+ }
+ for (int i = 0; i < typeParameters.size(); i++) {
+ if (typeParameters.get(i) == node) {
+ typeParameters.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 8e8a7acf6..b142b0860 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
@@ -28,6 +28,7 @@ import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
+import com.github.javaparser.ast.Node;
/**
* A loose ";" inside a body.<br/><code>class X { ; }</code>
@@ -61,5 +62,12 @@ public final class EmptyMemberDeclaration extends BodyDeclaration<EmptyMemberDec
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 a9d257f46..03890aa27 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
@@ -35,6 +35,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* One of the values an enum can take. A(1) and B(2) in this example: <code>enum X { A(1), B(2) }</code>
@@ -127,5 +128,24 @@ public final class EnumConstantDeclaration extends BodyDeclaration<EnumConstantD
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getArguments(), getClassBody(), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < arguments.size(); i++) {
+ if (arguments.get(i) == node) {
+ arguments.remove(i);
+ return true;
+ }
+ }
+ for (int i = 0; i < classBody.size(); i++) {
+ if (classBody.get(i) == node) {
+ classBody.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 c3467f4a6..26a5b05d6 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
@@ -36,6 +36,7 @@ import java.util.EnumSet;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNonEmpty;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* The declaration of an enum.<br/><code>enum X { ... }</code>
@@ -132,5 +133,24 @@ public final class EnumDeclaration extends TypeDeclaration<EnumDeclaration> impl
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getEntries(), getImplementedTypes(), getMembers(), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < entries.size(); i++) {
+ if (entries.get(i) == node) {
+ entries.remove(i);
+ return true;
+ }
+ }
+ for (int i = 0; i < implementedTypes.size(); i++) {
+ if (implementedTypes.get(i) == node) {
+ implementedTypes.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 41259b848..f4d1e5578 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
@@ -42,6 +42,7 @@ import java.util.*;
import static com.github.javaparser.ast.Modifier.PUBLIC;
import static com.github.javaparser.ast.NodeList.nodeList;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* The declaration of a field in a class. "private static int a=15*15;" in this example: <code>class X { private static
@@ -193,5 +194,18 @@ public final class FieldDeclaration extends BodyDeclaration<FieldDeclaration> im
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getVariables(), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < variables.size(); i++) {
+ if (variables.get(i) == node) {
+ variables.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 6d3f9e508..4e5c93814 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
@@ -32,6 +32,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A (possibly static) initializer body. "static { a=3; }" in this example: <code>class X { static { a=3; } } </code>
@@ -97,5 +98,12 @@ public final class InitializerDeclaration extends BodyDeclaration<InitializerDec
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 f95a44eac..a3733e599 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
@@ -38,6 +38,7 @@ import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.*;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A method declaration. "public int abc() {return 1;}" in this example: <code>class X { public int abc() {return 1;}
@@ -315,5 +316,36 @@ public final class MethodDeclaration extends BodyDeclaration<MethodDeclaration>
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getParameters(), getThrownExceptions(), getTypeParameters(), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (body != null) {
+ if (node == body) {
+ setBody((BlockStmt) null);
+ return true;
+ }
+ }
+ for (int i = 0; i < parameters.size(); i++) {
+ if (parameters.get(i) == node) {
+ parameters.remove(i);
+ return true;
+ }
+ }
+ for (int i = 0; i < thrownExceptions.size(); i++) {
+ if (thrownExceptions.get(i) == node) {
+ thrownExceptions.remove(i);
+ return true;
+ }
+ }
+ for (int i = 0; i < typeParameters.size(); i++) {
+ if (typeParameters.get(i) == node) {
+ typeParameters.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 de811f140..8ea461539 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
@@ -195,5 +195,18 @@ public final class Parameter extends Node implements NodeWithType<Parameter, Typ
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < annotations.size(); i++) {
+ if (annotations.get(i) == node) {
+ annotations.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 2f05e7dc9..b09ebb274 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
@@ -139,5 +139,18 @@ public abstract class TypeDeclaration<T extends Node> extends BodyDeclaration<T>
res.add(members);
return res;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < members.size(); i++) {
+ if (members.get(i) == node) {
+ members.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 573c6b8cd..e1466cca2 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
@@ -154,5 +154,18 @@ public final class VariableDeclarator extends Node implements NodeWithType<Varia
setAsParentNodeOf(type);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (initializer != null) {
+ if (node == initializer) {
+ setInitializer((Expression) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 fc78c4524..16cd97b05 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
@@ -24,6 +24,7 @@ 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.ast.Node;
/**
* <p>
@@ -58,5 +59,12 @@ public final class BlockComment extends Comment {
public <A> void accept(VoidVisitor<A> v, A arg) {
v.visit(this, arg);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java
index 1afcc0a06..0d77a2f56 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/comments/Comment.java
@@ -120,5 +120,12 @@ public abstract class Comment extends Node {
return false;
}
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 f4f064bfc..27f57d75a 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
@@ -26,6 +26,7 @@ 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;
+import com.github.javaparser.ast.Node;
/**
* A Javadoc comment. <code>/&#42;&#42; a comment &#42;/</code>
@@ -60,5 +61,12 @@ public final class JavadocComment extends Comment {
public Javadoc parse() {
return JavaParser.parseJavadoc(getContent());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 4a4e7ec91..6c54f6e66 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
@@ -24,6 +24,7 @@ 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.ast.Node;
/**
* <p>
@@ -62,5 +63,12 @@ public final class LineComment extends Comment {
public boolean isLineComment() {
return true;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java
index ecfd0a21f..e5655278a 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/AnnotationExpr.java
@@ -24,6 +24,7 @@ import com.github.javaparser.Range;
import com.github.javaparser.ast.nodeTypes.NodeWithName;
import com.github.javaparser.ast.observer.ObservableProperty;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A base class for the different types of annotations.
@@ -62,5 +63,12 @@ public abstract class AnnotationExpr extends Expression implements NodeWithName<
setAsParentNodeOf(name);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 17c303ba4..22eea22b7 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
@@ -26,6 +26,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Array brackets [] being used to get a value from an array.
@@ -91,5 +92,12 @@ public final class ArrayAccessExpr extends Expression {
setAsParentNodeOf(name);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 6786bdc52..1815dd24c 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
@@ -35,6 +35,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* <code>new int[5][4][][]</code> or <code>new int[][]{{1},{2,3}}</code>.
@@ -164,5 +165,24 @@ public final class ArrayCreationExpr extends Expression {
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getLevels());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (initializer != null) {
+ if (node == initializer) {
+ setInitializer((ArrayInitializerExpr) null);
+ return true;
+ }
+ }
+ for (int i = 0; i < levels.size(); i++) {
+ if (levels.get(i) == node) {
+ levels.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 47aee1891..767fa94f9 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* The initialization of an array. In the following sample, the outer { } is an ArrayInitializerExpr.
@@ -84,5 +85,18 @@ public final class ArrayInitializerExpr extends Expression {
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getValues());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < values.size(); i++) {
+ if (values.get(i) == node) {
+ values.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 eee5cbc56..dea407aa9 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
@@ -26,6 +26,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* An assignment expression. It supports the operators that are found the the AssignExpr.Operator enum.
@@ -121,5 +122,12 @@ public final class AssignExpr extends Expression {
setAsParentNodeOf(value);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 3059a11bd..c6255bc51 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
@@ -26,6 +26,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* An expression with an expression on the left, an expression on the right, and an operator in the middle.
@@ -122,5 +123,12 @@ public final class BinaryExpr extends Expression {
setAsParentNodeOf(right);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 d83a85598..1a7a7545c 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
@@ -25,6 +25,7 @@ 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;
+import com.github.javaparser.ast.Node;
/**
* The boolean literals.
@@ -70,5 +71,12 @@ public final class BooleanLiteralExpr extends LiteralExpr {
this.value = value;
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 7955e69ff..2f5002778 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
@@ -30,6 +30,7 @@ import com.github.javaparser.ast.type.Type;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A typecast. The (long) in <code>(long)15</code>
@@ -98,5 +99,12 @@ public final class CastExpr extends Expression implements NodeWithType<CastExpr,
setAsParentNodeOf(type);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 665882204..149b0a79d 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
@@ -25,6 +25,7 @@ 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;
+import com.github.javaparser.ast.Node;
/**
* A literal character.
@@ -67,5 +68,12 @@ public final class CharLiteralExpr extends StringLiteralExpr {
public <A> void accept(VoidVisitor<A> v, A arg) {
v.visit(this, arg);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 e5ab381b9..fd4937297 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.type.Type;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Defines an expression that accesses the class of a type.
@@ -79,5 +80,12 @@ public final class ClassExpr extends Expression implements NodeWithType<ClassExp
setAsParentNodeOf(type);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 152f759f1..cc7f250fb 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
@@ -26,6 +26,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* An if-then or if-then-else construct.
@@ -108,5 +109,12 @@ public final class ConditionalExpr extends Expression {
setAsParentNodeOf(thenExpr);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 516f6d7f7..98fd4069a 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
@@ -24,6 +24,7 @@ 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.ast.Node;
/**
* A float or a double constant. This value is stored exactly as found in the source.
@@ -57,5 +58,12 @@ public final class DoubleLiteralExpr extends StringLiteralExpr {
public <A> void accept(final VoidVisitor<A> v, final A arg) {
v.visit(this, arg);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 d92a6b934..58619cbf4 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
@@ -26,6 +26,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Optional;
+import com.github.javaparser.ast.Node;
/**
* An expression between ( ).
@@ -79,5 +80,18 @@ public final class EnclosedExpr extends Expression {
setAsParentNodeOf(inner);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (inner != null) {
+ if (node == inner) {
+ setInner((Expression) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java
index 4766d891f..eaf1c5111 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/Expression.java
@@ -33,5 +33,12 @@ public abstract class Expression extends Node {
public Expression(Range range) {
super(range);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 880491a7c..8dfb78e1a 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
@@ -34,6 +34,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Access of a field of an object.
@@ -166,5 +167,26 @@ public final class FieldAccessExpr extends Expression implements NodeWithSimpleN
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getTypeArguments().orElse(null));
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (scope != null) {
+ if (node == scope) {
+ setScope((Expression) null);
+ return true;
+ }
+ }
+ if (typeArguments != null) {
+ for (int i = 0; i < typeArguments.size(); i++) {
+ if (typeArguments.get(i) == node) {
+ typeArguments.remove(i);
+ return true;
+ }
+ }
+ }
+ return super.remove(node);
+ }
}
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 2e6eb0772..915f91b9e 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
@@ -30,6 +30,7 @@ import com.github.javaparser.ast.type.ReferenceType;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Usage of the instanceof operator.
@@ -99,5 +100,12 @@ public final class InstanceOfExpr extends Expression implements NodeWithType<Ins
setAsParentNodeOf(type);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 675f7536f..77b1112c2 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
@@ -24,6 +24,7 @@ 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.ast.Node;
/**
* All ways to specify an int literal.
@@ -59,5 +60,12 @@ public class IntegerLiteralExpr extends StringLiteralExpr {
public <A> void accept(final VoidVisitor<A> v, final A arg) {
v.visit(this, arg);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 a8379757a..a918d5c3d 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
@@ -33,6 +33,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A lambda expression. The parameters are on the left side of the ->.
@@ -123,5 +124,18 @@ public class LambdaExpr extends Expression implements NodeWithParameters<LambdaE
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getParameters());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < parameters.size(); i++) {
+ if (parameters.get(i) == node) {
+ parameters.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java
index a81a4e08f..f24d36434 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/expr/LiteralExpr.java
@@ -21,6 +21,7 @@
package com.github.javaparser.ast.expr;
import com.github.javaparser.Range;
+import com.github.javaparser.ast.Node;
/**
* A base class for all literal expressions.
@@ -32,5 +33,12 @@ public abstract class LiteralExpr extends Expression {
protected LiteralExpr(Range range) {
super(range);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 a6bc7ec92..96c3a3a7f 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
@@ -24,6 +24,7 @@ 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.ast.Node;
/**
* All ways to specify a long literal.
@@ -59,5 +60,12 @@ public class LongLiteralExpr extends StringLiteralExpr {
public <A> void accept(final VoidVisitor<A> v, final A arg) {
v.visit(this, arg);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 f28642c1f..1c4dfc6cf 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
@@ -24,6 +24,7 @@ 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.ast.Node;
/**
* An annotation that uses only the annotation type name.
@@ -55,5 +56,12 @@ public final class MarkerAnnotationExpr extends AnnotationExpr {
public <A> void accept(final VoidVisitor<A> v, final A arg) {
v.visit(this, arg);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 a51cf4fc5..6177b614c 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
@@ -99,5 +99,12 @@ public final class MemberValuePair extends Node implements NodeWithSimpleName<Me
setAsParentNodeOf(value);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 678410f1b..eb2aca635 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
@@ -35,6 +35,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A method call on an object. <br/><code>circle.circumference()</code> <br/>In <code>a.&lt;String&gt;bb(15);</code> a
@@ -157,5 +158,32 @@ public final class MethodCallExpr extends Expression implements NodeWithTypeArgu
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getArguments(), getTypeArguments().orElse(null));
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < arguments.size(); i++) {
+ if (arguments.get(i) == node) {
+ arguments.remove(i);
+ return true;
+ }
+ }
+ if (scope != null) {
+ if (node == scope) {
+ setScope((Expression) null);
+ return true;
+ }
+ }
+ if (typeArguments != null) {
+ for (int i = 0; i < typeArguments.size(); i++) {
+ if (typeArguments.get(i) == node) {
+ typeArguments.remove(i);
+ return true;
+ }
+ }
+ }
+ return super.remove(node);
+ }
}
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 df320459c..6b2ce75a2 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
@@ -34,6 +34,7 @@ import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNonEmpty;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Method reference expressions introduced in Java 8 specifically designed to simplify lambda Expressions.
@@ -132,5 +133,20 @@ public class MethodReferenceExpr extends Expression implements NodeWithTypeArgum
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getTypeArguments().orElse(null));
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (typeArguments != null) {
+ for (int i = 0; i < typeArguments.size(); i++) {
+ if (typeArguments.get(i) == node) {
+ typeArguments.remove(i);
+ return true;
+ }
+ }
+ }
+ return super.remove(node);
+ }
}
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 3254b584e..a9ccd5568 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
@@ -129,5 +129,18 @@ public class Name extends Node implements NodeWithIdentifier<Name> {
setAsParentNodeOf(qualifier);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (qualifier != null) {
+ if (node == qualifier) {
+ setQualifier((Name) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 f8687f6f3..43d9b935f 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
@@ -27,6 +27,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Whenever a SimpleName is used in an expression, it is wrapped in NameExpr.
@@ -81,5 +82,12 @@ public class NameExpr extends Expression implements NodeWithSimpleName<NameExpr>
setAsParentNodeOf(name);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 4e02edfd0..d22eda36e 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* An annotation that has zero or more key-value pairs.<br/><code>@Mapping(a=5, d=10)</code>
@@ -100,5 +101,18 @@ public final class NormalAnnotationExpr extends AnnotationExpr {
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getPairs());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < pairs.size(); i++) {
+ if (pairs.get(i) == node) {
+ pairs.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 c9f8afaeb..0984fac7d 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
@@ -24,6 +24,7 @@ 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.ast.Node;
/**
* A literal "null".
@@ -51,5 +52,12 @@ public final class NullLiteralExpr extends LiteralExpr {
public <A> void accept(final VoidVisitor<A> v, final A arg) {
v.visit(this, arg);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 48dbd87e1..513452099 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
@@ -37,6 +37,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A constructor call. <br/>In <code>new HashMap.Entry<String, Long>(15) {public String getKey() {return null;}};</code>
@@ -201,5 +202,40 @@ public final class ObjectCreationExpr extends Expression implements NodeWithType
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnonymousClassBody().orElse(null), getArguments(), getTypeArguments().orElse(null));
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (anonymousClassBody != null) {
+ for (int i = 0; i < anonymousClassBody.size(); i++) {
+ if (anonymousClassBody.get(i) == node) {
+ anonymousClassBody.remove(i);
+ return true;
+ }
+ }
+ }
+ for (int i = 0; i < arguments.size(); i++) {
+ if (arguments.get(i) == node) {
+ arguments.remove(i);
+ return true;
+ }
+ }
+ if (scope != null) {
+ if (node == scope) {
+ setScope((Expression) null);
+ return true;
+ }
+ }
+ if (typeArguments != null) {
+ for (int i = 0; i < typeArguments.size(); i++) {
+ if (typeArguments.get(i) == node) {
+ typeArguments.remove(i);
+ return true;
+ }
+ }
+ }
+ return super.remove(node);
+ }
}
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 5b0c7c86e..f389bc3b2 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
@@ -75,5 +75,12 @@ public class SimpleName extends Node implements NodeWithIdentifier<SimpleName> {
this.identifier = identifier;
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 f61a447fb..c8b0c56ea 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
@@ -26,6 +26,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* An annotation that has a single value. <br/><code>@Count(15)</code>
@@ -73,5 +74,12 @@ public final class SingleMemberAnnotationExpr extends AnnotationExpr {
setAsParentNodeOf(memberValue);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 bc323251a..39159834c 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
@@ -27,6 +27,7 @@ import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import com.github.javaparser.utils.Utils;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A literal string.
@@ -82,5 +83,12 @@ public class StringLiteralExpr extends LiteralExpr {
this.value = value;
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 ff49f4f22..42d54e16b 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
@@ -26,6 +26,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Optional;
+import com.github.javaparser.ast.Node;
/**
* An occurrence of the "super" keyword. <br/><code>World.super.greet()</code> is a MethodCallExpr of method name greet,
@@ -82,5 +83,18 @@ public final class SuperExpr extends Expression {
setAsParentNodeOf(classExpr);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (classExpr != null) {
+ if (node == classExpr) {
+ setClassExpr((Expression) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 7a380ef7d..af8f2e419 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
@@ -26,6 +26,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Optional;
+import com.github.javaparser.ast.Node;
/**
* An occurrence of the "this" keyword. <br/><code>World.this.greet()</code> is a MethodCallExpr of method name greet,
@@ -76,5 +77,18 @@ public final class ThisExpr extends Expression {
setAsParentNodeOf(classExpr);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (classExpr != null) {
+ if (node == classExpr) {
+ setClassExpr((Expression) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 b5380e5cb..840330b24 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.type.Type;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* This class is just instantiated as scopes for MethodReferenceExpr nodes to encapsulate Types.
@@ -80,5 +81,12 @@ public class TypeExpr extends Expression implements NodeWithType<TypeExpr, Type>
setAsParentNodeOf(type);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 709104c75..03aa442bd 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
@@ -27,6 +27,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* An expression where an operator is applied to a single expression.
@@ -121,5 +122,12 @@ public final class UnaryExpr extends Expression implements NodeWithExpression<Un
this.operator = operator;
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 de9c5eef4..2af340ec0 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
@@ -38,6 +38,7 @@ import java.util.List;
import java.util.stream.Collectors;
import static com.github.javaparser.ast.NodeList.nodeList;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A declaration of variables.
@@ -160,5 +161,24 @@ public final class VariableDeclarationExpr extends Expression implements NodeWit
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations(), getVariables());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < annotations.size(); i++) {
+ if (annotations.get(i) == node) {
+ annotations.remove(i);
+ return true;
+ }
+ }
+ for (int i = 0; i < variables.size(); i++) {
+ if (variables.get(i) == node) {
+ variables.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 03109628b..520a89663 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A usage of the keyword "assert"
@@ -102,5 +103,18 @@ public final class AssertStmt extends Statement {
setAsParentNodeOf(message);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (message != null) {
+ if (node == message) {
+ setMessage((Expression) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 905d7f026..bcc30fee2 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
@@ -30,6 +30,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Statements in between { and }.
@@ -82,5 +83,18 @@ public final class BlockStmt extends Statement implements NodeWithStatements<Blo
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getStatements());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < statements.size(); i++) {
+ if (statements.get(i) == node) {
+ statements.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 054687b8d..bb2fba385 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
@@ -27,6 +27,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Optional;
+import com.github.javaparser.ast.Node;
/**
* A usage of the break keyword.
@@ -84,5 +85,18 @@ public final class BreakStmt extends Statement {
setAsParentNodeOf(label);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (label != null) {
+ if (node == label) {
+ setLabel((SimpleName) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 823ad7e9b..9f5538644 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
@@ -111,5 +111,12 @@ public final class CatchClause extends Node implements NodeWithBlockStmt<CatchCl
setAsParentNodeOf(body);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 6f745b51d..84973a1f2 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
@@ -28,6 +28,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Optional;
+import com.github.javaparser.ast.Node;
/**
* A continue statement with an optional label;
@@ -88,5 +89,18 @@ public final class ContinueStmt extends Statement implements NodeWithOptionalLab
setAsParentNodeOf(label);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (label != null) {
+ if (node == label) {
+ setLabel((SimpleName) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 69e6fbda7..74212158c 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A do-while.
@@ -96,5 +97,12 @@ public final class DoStmt extends Statement implements NodeWithBody<DoStmt> {
setAsParentNodeOf(condition);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 318f3457a..8a9e02c5d 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
@@ -24,6 +24,7 @@ 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.ast.Node;
/**
* @author Julio Vilmar Gesser
@@ -50,5 +51,12 @@ public final class EmptyStmt extends Statement {
public <A> void accept(final VoidVisitor<A> v, final A arg) {
v.visit(this, arg);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 bd4d56d9b..1f2471d76 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
@@ -33,6 +33,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A call to super or this in a constructor or initializer.
@@ -166,5 +167,32 @@ public final class ExplicitConstructorInvocationStmt extends Statement implement
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getArguments(), getTypeArguments().orElse(null));
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < arguments.size(); i++) {
+ if (arguments.get(i) == node) {
+ arguments.remove(i);
+ return true;
+ }
+ }
+ if (expression != null) {
+ if (node == expression) {
+ setExpression((Expression) null);
+ return true;
+ }
+ }
+ if (typeArguments != null) {
+ for (int i = 0; i < typeArguments.size(); i++) {
+ if (typeArguments.get(i) == node) {
+ typeArguments.remove(i);
+ return true;
+ }
+ }
+ }
+ return super.remove(node);
+ }
}
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 ef63cc224..38c43b907 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Used to wrap an expression so that it can take the place of a statement.
@@ -78,5 +79,12 @@ public final class ExpressionStmt extends Statement implements NodeWithExpressio
setAsParentNodeOf(expression);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 c9d803d16..af011d9d8 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
@@ -33,6 +33,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A classic for statement.
@@ -145,5 +146,30 @@ public final class ForStmt extends Statement implements NodeWithBody<ForStmt> {
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getInitialization(), getUpdate());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (compare != null) {
+ if (node == compare) {
+ setCompare((Expression) null);
+ return true;
+ }
+ }
+ for (int i = 0; i < initialization.size(); i++) {
+ if (initialization.get(i) == node) {
+ initialization.remove(i);
+ return true;
+ }
+ }
+ for (int i = 0; i < update.size(); i++) {
+ if (update.get(i) == node) {
+ update.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 1d68a2dfa..0a8d09e60 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
@@ -30,6 +30,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A for-each statement.
@@ -118,5 +119,12 @@ public final class ForeachStmt extends Statement implements NodeWithBody<Foreach
setAsParentNodeOf(variable);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 bb2001a9a..a02d732c5 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* An if-then-else statement. The else is optional.
@@ -117,5 +118,18 @@ public final class IfStmt extends Statement {
setAsParentNodeOf(thenStmt);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (elseStmt != null) {
+ if (node == elseStmt) {
+ setElseStmt((Statement) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 2628002fe..90b3ac640 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
@@ -27,6 +27,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A statement that is labeled, like <code>label123: println("continuing");</code>
@@ -95,5 +96,12 @@ public final class LabeledStmt extends Statement {
setAsParentNodeOf(label);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 3d5cf4e72..410381d85 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
@@ -27,6 +27,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A class declaration inside a method.
@@ -77,5 +78,12 @@ public final class LocalClassDeclarationStmt extends Statement {
setAsParentNodeOf(classDeclaration);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 7fe25be03..8a184a455 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
@@ -28,6 +28,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Optional;
+import com.github.javaparser.ast.Node;
/**
* The return statement, with an optional expression to return.
@@ -87,5 +88,18 @@ public final class ReturnStmt extends Statement {
setAsParentNodeOf(expression);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (expression != null) {
+ if (node == expression) {
+ setExpression((Expression) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java
index 1a2c6e236..cd18ad65b 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/stmt/Statement.java
@@ -33,5 +33,12 @@ public abstract class Statement extends Node {
public Statement(final Range range) {
super(range);
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 21f93713f..01fe012f8 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
@@ -32,6 +32,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* One case in a switch statement.
@@ -121,5 +122,24 @@ public final class SwitchEntryStmt extends Statement implements NodeWithStatemen
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getStatements());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (label != null) {
+ if (node == label) {
+ setLabel((Expression) null);
+ return true;
+ }
+ }
+ for (int i = 0; i < statements.size(); i++) {
+ if (statements.get(i) == node) {
+ statements.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 7e1326531..68b3e81ea 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
@@ -31,6 +31,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A switch statement.
@@ -117,5 +118,18 @@ public final class SwitchStmt extends Statement {
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getEntries());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < entries.size(); i++) {
+ if (entries.get(i) == node) {
+ entries.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 b8ad05920..b33012734 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
@@ -30,6 +30,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Usage of the synchronized keyword.
@@ -97,5 +98,12 @@ public final class SynchronizedStmt extends Statement implements NodeWithBlockSt
setAsParentNodeOf(body);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 dda91355d..1359578e8 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Usage of the throw statement.
@@ -79,5 +80,12 @@ public final class ThrowStmt extends Statement implements NodeWithExpression<Thr
setAsParentNodeOf(expression);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 4b76f7d60..5ef888335 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
@@ -31,6 +31,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* The try statement.
@@ -149,5 +150,36 @@ public final class TryStmt extends Statement {
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getCatchClauses(), getResources());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < catchClauses.size(); i++) {
+ if (catchClauses.get(i) == node) {
+ catchClauses.remove(i);
+ return true;
+ }
+ }
+ if (finallyBlock != null) {
+ if (node == finallyBlock) {
+ setFinallyBlock((BlockStmt) null);
+ return true;
+ }
+ }
+ for (int i = 0; i < resources.size(); i++) {
+ if (resources.get(i) == node) {
+ resources.remove(i);
+ return true;
+ }
+ }
+ if (tryBlock != null) {
+ if (node == tryBlock) {
+ setTryBlock((BlockStmt) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 19c4febdf..1e599fb8d 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.observer.ObservableProperty;
import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A while statement.
@@ -96,5 +97,12 @@ public final class WhileStmt extends Statement implements NodeWithBody<WhileStmt
setAsParentNodeOf(condition);
return this;
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 b21ea5be7..ee99ef3c9 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
@@ -35,6 +35,7 @@ import java.util.List;
import java.util.Optional;
import static com.github.javaparser.ast.NodeList.nodeList;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* To indicate that a type is an array, it gets wrapped in an ArrayType for every array level it has.
@@ -163,5 +164,12 @@ public class ArrayType extends ReferenceType implements NodeWithAnnotations<Arra
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 c7d2e3141..d32a6c153 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
@@ -35,6 +35,7 @@ import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A class or an interface type. <br/><code>Object</code> <br/><code>HashMap&lt;String, String></code>
@@ -166,5 +167,26 @@ public final class ClassOrInterfaceType extends ReferenceType implements NodeWit
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getTypeArguments().orElse(null), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (scope != null) {
+ if (node == scope) {
+ setScope((ClassOrInterfaceType) null);
+ return true;
+ }
+ }
+ if (typeArguments != null) {
+ for (int i = 0; i < typeArguments.size(); i++) {
+ if (typeArguments.get(i) == node) {
+ typeArguments.remove(i);
+ return true;
+ }
+ }
+ }
+ return super.remove(node);
+ }
}
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 a6b3198b5..73434c357 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
@@ -31,6 +31,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Represents a set of types. A given value of this type has to be assignable to at all of the element types.
@@ -91,5 +92,18 @@ public class IntersectionType extends Type implements NodeWithAnnotations<Inters
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getElements(), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < elements.size(); i++) {
+ if (elements.get(i) == node) {
+ elements.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 5c2941e76..c5a9bc439 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
@@ -32,6 +32,7 @@ import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A primitive type.
@@ -159,5 +160,12 @@ public final class PrimitiveType extends Type implements NodeWithAnnotations<Pri
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java
index 9acb997fe..0a1dbd1d5 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/ReferenceType.java
@@ -22,6 +22,7 @@ package com.github.javaparser.ast.type;
import com.github.javaparser.Range;
import com.github.javaparser.ast.NodeList;
+import com.github.javaparser.ast.Node;
/**
* Base class for reference types.
@@ -37,5 +38,12 @@ public abstract class ReferenceType<T extends ReferenceType> extends Type {
public ReferenceType(final Range range) {
super(range, new NodeList<>());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java b/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java
index 639677511..f7acf6778 100644
--- a/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java
+++ b/javaparser-core/src/main/java/com/github/javaparser/ast/type/Type.java
@@ -78,5 +78,18 @@ public abstract class Type extends Node {
return 0;
}
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < annotations.size(); i++) {
+ if (annotations.get(i) == node) {
+ annotations.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 91764d27c..4cdd9afda 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
@@ -33,6 +33,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* A type parameter.
@@ -141,5 +142,18 @@ public final class TypeParameter extends ReferenceType<TypeParameter> implements
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getTypeBound(), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < typeBound.size(); i++) {
+ if (typeBound.get(i) == node) {
+ typeBound.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 fe722f337..8f0bb8b6b 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
@@ -31,6 +31,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import static com.github.javaparser.utils.Utils.assertNotNull;
+import com.github.javaparser.ast.Node;
/**
* Represents a set of types. A given value of this type has to be assignable to at least one of the element types.
@@ -88,5 +89,18 @@ public class UnionType extends Type implements NodeWithAnnotations<UnionType> {
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getElements(), getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ for (int i = 0; i < elements.size(); i++) {
+ if (elements.get(i) == node) {
+ elements.remove(i);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}
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 dc410df0a..155ff3d27 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
@@ -28,6 +28,7 @@ import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
+import com.github.javaparser.ast.Node;
/**
* An unknown parameter type object. It plays the role of a null object for
@@ -71,5 +72,12 @@ public final class UnknownType extends Type {
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 9b5d2a135..5d87c5f3b 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
@@ -29,6 +29,7 @@ import com.github.javaparser.ast.visitor.GenericVisitor;
import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
+import com.github.javaparser.ast.Node;
/**
* The return type of a {@link com.github.javaparser.ast.body.MethodDeclaration}
@@ -67,5 +68,12 @@ public final class VoidType extends Type implements NodeWithAnnotations<VoidType
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ return super.remove(node);
+ }
}
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 f6d4d2b6c..da93293f8 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
@@ -31,6 +31,7 @@ import com.github.javaparser.ast.visitor.VoidVisitor;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
+import com.github.javaparser.ast.Node;
/**
* A wildcard type argument.
@@ -122,5 +123,24 @@ public final class WildcardType extends Type implements NodeWithAnnotations<Wild
public List<NodeList<?>> getNodeLists() {
return Arrays.asList(getAnnotations());
}
+
+ @Override
+ public boolean remove(Node node) {
+ if (node == null)
+ return false;
+ if (extendedTypes != null) {
+ if (node == extendedTypes) {
+ setExtendedTypes((ReferenceType) null);
+ return true;
+ }
+ }
+ if (superTypes != null) {
+ if (node == superTypes) {
+ setSuperTypes((ReferenceType) null);
+ return true;
+ }
+ }
+ return super.remove(node);
+ }
}