aboutsummaryrefslogtreecommitdiff
path: root/javaparser-core-generators/src/main/java
diff options
context:
space:
mode:
authorDanny van Bruggen <hexagonaal@gmail.com>2017-09-11 22:12:11 +0200
committerDanny van Bruggen <hexagonaal@gmail.com>2017-09-11 22:12:11 +0200
commit20b60b36745b48f392abeab18d7ecb612b05c43d (patch)
tree5de19eacc7a0d20c4735c12cb93af9ff36b9b7b3 /javaparser-core-generators/src/main/java
parent2a3d1f71596e9542ac0e020dba593b99ed6585df (diff)
downloadjavaparser-20b60b36745b48f392abeab18d7ecb612b05c43d.tar.gz
Delete getNodeLists and replace it with a meta model operation
Diffstat (limited to 'javaparser-core-generators/src/main/java')
-rw-r--r--javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java11
-rw-r--r--javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetNodeListsGenerator.java2
2 files changed, 11 insertions, 2 deletions
diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java
index e286c7ab8..81437ea34 100644
--- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java
+++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/NodeGenerator.java
@@ -56,7 +56,7 @@ public abstract class NodeGenerator extends Generator {
throw new AssertionError(f("Wanted to regenerate a method with signature %s in %s, but it wasn't there.", callable.getSignature(), containingClassOrInterface.getNameAsString()));
});
}
-
+
private void addMethod(
ClassOrInterfaceDeclaration containingClassOrInterface,
CallableDeclaration<?> callable,
@@ -73,4 +73,13 @@ public abstract class NodeGenerator extends Generator {
callable.setJavadocComment(callable.getJavadocComment().orElse(existingCallable.getJavadocComment().orElse(null)));
containingClassOrInterface.getMembers().replace(existingCallable, callable);
}
+
+ /**
+ * Removes all methods from containingClassOrInterface that have the same signature as callable.
+ */
+ protected void removeMethodWithSameSignature(ClassOrInterfaceDeclaration containingClassOrInterface, CallableDeclaration<?> callable) {
+ for (CallableDeclaration<?> existingCallable : containingClassOrInterface.getCallablesWithSignature(callable.getSignature())) {
+ containingClassOrInterface.remove(existingCallable);
+ }
+ }
}
diff --git a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetNodeListsGenerator.java b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetNodeListsGenerator.java
index 995220d36..9c71993a8 100644
--- a/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetNodeListsGenerator.java
+++ b/javaparser-core-generators/src/main/java/com/github/javaparser/generator/core/node/GetNodeListsGenerator.java
@@ -39,7 +39,7 @@ public class GetNodeListsGenerator extends NodeGenerator {
}
final MethodDeclaration getNodeListsMethod = (MethodDeclaration) parseBodyDeclaration(f("@Override public List<NodeList<?>> getNodeLists() {%s}", statement));
- addOrReplaceWhenSameSignature(nodeCoid, getNodeListsMethod);
+ removeMethodWithSameSignature(nodeCoid, getNodeListsMethod);
annotateGenerated(getNodeListsMethod);
}
}