Skip to content

Commit

Permalink
Merge pull request javaparser#3248 from 4everTheOne/generator/cleanup
Browse files Browse the repository at this point in the history
Improved `RemoveMethodGenerator` and `ReplaceMethodGenerator` to only override super when needed.
  • Loading branch information
MysterAitch authored Nov 23, 2021
2 parents b3d5df5 + 26eb59f commit d040a75
Show file tree
Hide file tree
Showing 114 changed files with 295 additions and 834 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ protected void generateNode(BaseNodeMetaModel nodeMetaModel, CompilationUnit nod

final BlockStmt body = removeNodeMethod.getBody().get();

body.addStatement("if (node == null) return false;");

body.addStatement("if (node == null) { return false; }");
int numberPropertiesDeclared = 0;
for (PropertyMetaModel property : nodeMetaModel.getDeclaredPropertyMetaModels()) {
if (!property.isNode()) {
continue;
Expand All @@ -69,14 +69,19 @@ protected void generateNode(BaseNodeMetaModel nodeMetaModel, CompilationUnit nod
check = f("if (%s != null) { %s }", property.getName(), check);
}
body.addStatement(check);
numberPropertiesDeclared++;
}
if (nodeMetaModel.getSuperNodeMetaModel().isPresent()) {
body.addStatement("return super.remove(node);");
} else {
body.addStatement("return false;");
}

addOrReplaceWhenSameSignature(nodeCoid, removeNodeMethod);

if (!nodeMetaModel.isRootNode() && numberPropertiesDeclared == 0) {
removeMethodWithSameSignature(nodeCoid, removeNodeMethod);
} else {
addOrReplaceWhenSameSignature(nodeCoid, removeNodeMethod);
}
}

private String attributeCheck(PropertyMetaModel property, String removeAttributeMethodName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,9 @@ protected void generateNode(BaseNodeMetaModel nodeMetaModel, CompilationUnit nod

final BlockStmt body = replaceNodeMethod.getBody().get();

body.addStatement("if (node == null) return false;");
body.addStatement("if (node == null) { return false; }");

int numberPropertiesDeclared = 0;
for (PropertyMetaModel property : nodeMetaModel.getDeclaredPropertyMetaModels()) {
if (!property.isNode()) {
continue;
Expand All @@ -63,14 +64,19 @@ protected void generateNode(BaseNodeMetaModel nodeMetaModel, CompilationUnit nod
check = f("if (%s != null) { %s }", property.getName(), check);
}
body.addStatement(check);
numberPropertiesDeclared++;
}
if (nodeMetaModel.getSuperNodeMetaModel().isPresent()) {
body.addStatement("return super.replace(node, replacementNode);");
} else {
body.addStatement("return false;");
}

addOrReplaceWhenSameSignature(nodeCoid, replaceNodeMethod);

if (!nodeMetaModel.isRootNode() && numberPropertiesDeclared == 0) {
removeMethodWithSameSignature(nodeCoid, replaceNodeMethod);
} else {
addOrReplaceWhenSameSignature(nodeCoid, replaceNodeMethod);
}
}

private String attributeCheck(PropertyMetaModel property, String attributeSetterName) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -138,8 +138,9 @@ public ArrayCreationLevel removeDimension() {
@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < annotations.size(); i++) {
if (annotations.get(i) == node) {
annotations.remove(i);
Expand Down Expand Up @@ -170,8 +171,9 @@ public ArrayCreationLevelMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < annotations.size(); i++) {
if (annotations.get(i) == node) {
annotations.set(i, (AnnotationExpr) replacementNode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -587,8 +587,9 @@ public Optional<AnnotationDeclaration> getAnnotationDeclarationByName(String ann
@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < imports.size(); i++) {
if (imports.get(i) == node) {
imports.remove(i);
Expand Down Expand Up @@ -815,8 +816,9 @@ public CompilationUnitMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < imports.size(); i++) {
if (imports.get(i) == node) {
imports.set(i, (ImportDeclaration) replacementNode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,14 +143,6 @@ public ImportDeclaration setStatic(final boolean isStatic) {
return this;
}

@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
return false;
return super.remove(node);
}

@Override
@Generated("com.github.javaparser.generator.core.node.CloneGenerator")
public ImportDeclaration clone() {
Expand All @@ -166,8 +158,9 @@ public ImportDeclarationMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
if (node == name) {
setName((Name) replacementNode);
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -174,22 +174,6 @@ public static NodeList<Modifier> createModifierList(Modifier.Keyword... modifier
return Arrays.stream(modifiers).map(Modifier::new).collect(toNodeList());
}

@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
return false;
return super.remove(node);
}

@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
return false;
return super.replace(node, replacementNode);
}

@Override
@Generated("com.github.javaparser.generator.core.node.CloneGenerator")
public Modifier clone() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -674,8 +674,9 @@ public boolean isRegistered(AstObserver observer) {

@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
if (node == null) {
return false;
}
if (comment != null) {
if (node == comment) {
removeComment();
Expand Down Expand Up @@ -722,8 +723,9 @@ public Node setParsed(Parsedness parsed) {

@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
if (comment != null) {
if (node == comment) {
setComment((Comment) replacementNode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -142,8 +142,9 @@ public PackageDeclaration setName(final Name name) {
@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < annotations.size(); i++) {
if (annotations.get(i) == node) {
annotations.remove(i);
Expand All @@ -168,8 +169,9 @@ public PackageDeclarationMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < annotations.size(); i++) {
if (annotations.get(i) == node) {
annotations.set(i, (AnnotationExpr) replacementNode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,6 @@ public <A> void accept(final VoidVisitor<A> v, final A arg) {
v.visit(this, arg);
}

@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
return false;
return super.remove(node);
}

@Override
@Generated("com.github.javaparser.generator.core.node.CloneGenerator")
public AnnotationDeclaration clone() {
Expand All @@ -97,14 +89,6 @@ public AnnotationDeclarationMetaModel getMetaModel() {
return JavaParserMetaModel.annotationDeclarationMetaModel;
}

@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
return false;
return super.replace(node, replacementNode);
}

@Override
@Generated("com.github.javaparser.generator.core.node.TypeCastingGenerator")
public boolean isAnnotationDeclaration() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -197,8 +197,9 @@ public AnnotationMemberDeclaration setType(final Type type) {
@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
if (node == null) {
return false;
}
if (defaultValue != null) {
if (node == defaultValue) {
removeDefaultValue();
Expand Down Expand Up @@ -229,8 +230,9 @@ public AnnotationMemberDeclarationMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
if (defaultValue != null) {
if (node == defaultValue) {
setDefaultValue((Expression) replacementNode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,8 +91,9 @@ public T setAnnotations(final NodeList<AnnotationExpr> annotations) {
@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < annotations.size(); i++) {
if (annotations.get(i) == node) {
annotations.remove(i);
Expand All @@ -117,8 +118,9 @@ public BodyDeclarationMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < annotations.size(); i++) {
if (annotations.get(i) == node) {
annotations.set(i, (AnnotationExpr) replacementNode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -221,8 +221,9 @@ protected String appendThrowsIfRequested(boolean includingThrows) {
@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < modifiers.size(); i++) {
if (modifiers.get(i) == node) {
modifiers.remove(i);
Expand Down Expand Up @@ -355,8 +356,9 @@ public CallableDeclarationMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < modifiers.size(); i++) {
if (modifiers.get(i) == node) {
modifiers.set(i, (Modifier) replacementNode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -173,8 +173,9 @@ public ClassOrInterfaceDeclaration setTypeParameters(final NodeList<TypeParamete
@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < extendedTypes.size(); i++) {
if (extendedTypes.get(i) == node) {
extendedTypes.remove(i);
Expand Down Expand Up @@ -234,8 +235,9 @@ public ClassOrInterfaceDeclarationMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < extendedTypes.size(); i++) {
if (extendedTypes.get(i) == node) {
extendedTypes.set(i, (ClassOrInterfaceType) replacementNode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -268,8 +268,9 @@ protected String appendThrowsIfRequested(boolean includingThrows) {
@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < modifiers.size(); i++) {
if (modifiers.get(i) == node) {
modifiers.remove(i);
Expand Down Expand Up @@ -306,8 +307,9 @@ public CompactConstructorDeclarationMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
if (node == body) {
setBody((BlockStmt) replacementNode);
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -179,14 +179,6 @@ public String getDeclarationAsString(boolean includingModifiers, boolean includi
return sb.toString();
}

@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
return false;
return super.remove(node);
}

@Override
@Generated("com.github.javaparser.generator.core.node.CloneGenerator")
public ConstructorDeclaration clone() {
Expand All @@ -202,8 +194,9 @@ public ConstructorDeclarationMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
if (node == body) {
setBody((BlockStmt) replacementNode);
return true;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,8 +153,9 @@ public EnumConstantDeclaration setName(final SimpleName name) {
@Override
@Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator")
public boolean remove(Node node) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < arguments.size(); i++) {
if (arguments.get(i) == node) {
arguments.remove(i);
Expand Down Expand Up @@ -185,8 +186,9 @@ public EnumConstantDeclarationMetaModel getMetaModel() {
@Override
@Generated("com.github.javaparser.generator.core.node.ReplaceMethodGenerator")
public boolean replace(Node node, Node replacementNode) {
if (node == null)
if (node == null) {
return false;
}
for (int i = 0; i < arguments.size(); i++) {
if (arguments.get(i) == node) {
arguments.set(i, (Expression) replacementNode);
Expand Down
Loading

0 comments on commit d040a75

Please sign in to comment.