diff options
author | Danny van Bruggen <hexagonaal@gmail.com> | 2017-10-17 19:48:52 +0200 |
---|---|---|
committer | Danny van Bruggen <hexagonaal@gmail.com> | 2017-10-17 19:57:33 +0200 |
commit | 27a1a23d96cf8a1d4b34cdd28f10730d517673e2 (patch) | |
tree | 59cb60ed7aae8e0507730d9eb76393b08d4da2f7 | |
parent | 255d26470311d9624b12bac2301d589fa2eefb99 (diff) | |
download | javaparser-27a1a23d96cf8a1d4b34cdd28f10730d517673e2.tar.gz |
Put receiver parameter only in method declarations
18 files changed, 90 insertions, 105 deletions
diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java b/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java index 4f0b3e61b..0e9f9d80b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/body/CallableDeclaration.java @@ -43,7 +43,6 @@ import java.util.List; import static com.github.javaparser.utils.Utils.assertNotNull; import static java.util.stream.Collectors.joining; import static java.util.stream.Collectors.toList; -import java.util.Optional; import java.util.function.Consumer; /** @@ -61,23 +60,20 @@ public abstract class CallableDeclaration<T extends CallableDeclaration<?>> exte private NodeList<ReferenceType> thrownExceptions; - private ReceiverParameter receiverParameter; - @AllFieldsConstructor - public CallableDeclaration(EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, SimpleName name, NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions, ReceiverParameter receiverParameter) { - this(null, modifiers, annotations, typeParameters, name, parameters, thrownExceptions, receiverParameter); + public CallableDeclaration(EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, SimpleName name, NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions) { + this(null, modifiers, annotations, typeParameters, name, parameters, thrownExceptions); } /**This constructor is used by the parser and is considered private.*/ @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") - public CallableDeclaration(TokenRange tokenRange, EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, SimpleName name, NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions, ReceiverParameter receiverParameter) { + public CallableDeclaration(TokenRange tokenRange, EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, SimpleName name, NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions) { super(tokenRange, annotations); setModifiers(modifiers); setTypeParameters(typeParameters); setName(name); setParameters(parameters); setThrownExceptions(thrownExceptions); - setReceiverParameter(receiverParameter); customInitialization(); } @@ -222,12 +218,6 @@ public abstract class CallableDeclaration<T extends CallableDeclaration<?>> exte return true; } } - if (receiverParameter != null) { - if (node == receiverParameter) { - removeReceiverParameter(); - return true; - } - } for (int i = 0; i < thrownExceptions.size(); i++) { if (thrownExceptions.get(i) == node) { thrownExceptions.remove(i); @@ -354,12 +344,6 @@ public abstract class CallableDeclaration<T extends CallableDeclaration<?>> exte return true; } } - if (receiverParameter != null) { - if (node == receiverParameter) { - setReceiverParameter((ReceiverParameter) replacementNode); - return true; - } - } for (int i = 0; i < thrownExceptions.size(); i++) { if (thrownExceptions.get(i) == node) { thrownExceptions.set(i, (ReferenceType) replacementNode); @@ -391,28 +375,4 @@ public abstract class CallableDeclaration<T extends CallableDeclaration<?>> exte public void ifCallableDeclaration(Consumer<CallableDeclaration> action) { action.accept(this); } - - @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") - public Optional<ReceiverParameter> getReceiverParameter() { - return Optional.ofNullable(receiverParameter); - } - - @SuppressWarnings("unchecked") - @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") - public T setReceiverParameter(final ReceiverParameter receiverParameter) { - if (receiverParameter == this.receiverParameter) { - return (T) this; - } - notifyPropertyChange(ObservableProperty.RECEIVER_PARAMETER, this.receiverParameter, receiverParameter); - if (this.receiverParameter != null) - this.receiverParameter.setParentNode(null); - this.receiverParameter = receiverParameter; - setAsParentNodeOf(receiverParameter); - return (T) this; - } - - @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator") - public CallableDeclaration removeReceiverParameter() { - return setReceiverParameter((ReceiverParameter) null); - } } 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 8c8a979b5..c2aea12b2 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 @@ -51,7 +51,7 @@ import java.util.function.Consumer; * * <br/>All annotations preceding the name will be set on this object, not on the class. * JavaParser doesn't know if it they are applicable to the method or the class. - * + * * @author Julio Vilmar Gesser */ public final class ConstructorDeclaration extends CallableDeclaration<ConstructorDeclaration> implements NodeWithBlockStmt<ConstructorDeclaration>, NodeWithAccessModifiers<ConstructorDeclaration>, NodeWithJavadoc<ConstructorDeclaration>, NodeWithDeclaration, NodeWithSimpleName<ConstructorDeclaration>, NodeWithParameters<ConstructorDeclaration>, NodeWithThrownExceptions<ConstructorDeclaration>, NodeWithTypeParameters<ConstructorDeclaration> { @@ -59,26 +59,26 @@ public final class ConstructorDeclaration extends CallableDeclaration<Constructo private BlockStmt body; public ConstructorDeclaration() { - this(null, EnumSet.noneOf(Modifier.class), new NodeList<>(), new NodeList<>(), new SimpleName(), new NodeList<>(), new NodeList<>(), new BlockStmt(), null); + this(null, EnumSet.noneOf(Modifier.class), new NodeList<>(), new NodeList<>(), new SimpleName(), new NodeList<>(), new NodeList<>(), new BlockStmt()); } public ConstructorDeclaration(String name) { - this(null, EnumSet.of(Modifier.PUBLIC), new NodeList<>(), new NodeList<>(), new SimpleName(name), new NodeList<>(), new NodeList<>(), new BlockStmt(), null); + this(null, EnumSet.of(Modifier.PUBLIC), new NodeList<>(), new NodeList<>(), new SimpleName(name), new NodeList<>(), new NodeList<>(), new BlockStmt()); } public ConstructorDeclaration(EnumSet<Modifier> modifiers, String name) { - this(null, modifiers, new NodeList<>(), new NodeList<>(), new SimpleName(name), new NodeList<>(), new NodeList<>(), new BlockStmt(), null); + this(null, modifiers, new NodeList<>(), new NodeList<>(), new SimpleName(name), new NodeList<>(), new NodeList<>(), new BlockStmt()); } @AllFieldsConstructor - public ConstructorDeclaration(EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, SimpleName name, NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions, BlockStmt body, ReceiverParameter receiverParameter) { - this(null, modifiers, annotations, typeParameters, name, parameters, thrownExceptions, body, receiverParameter); + public ConstructorDeclaration(EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, SimpleName name, NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions, BlockStmt body) { + this(null, modifiers, annotations, typeParameters, name, parameters, thrownExceptions, body); } /**This constructor is used by the parser and is considered private.*/ @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") - public ConstructorDeclaration(TokenRange tokenRange, EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, SimpleName name, NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions, BlockStmt body, ReceiverParameter receiverParameter) { - super(tokenRange, modifiers, annotations, typeParameters, name, parameters, thrownExceptions, receiverParameter); + public ConstructorDeclaration(TokenRange tokenRange, EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, SimpleName name, NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions, BlockStmt body) { + super(tokenRange, modifiers, annotations, typeParameters, name, parameters, thrownExceptions); setBody(body); customInitialization(); } 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 7049dece9..e39607e9c 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 @@ -67,6 +67,8 @@ public final class MethodDeclaration extends CallableDeclaration<MethodDeclarati private BlockStmt body; + private ReceiverParameter receiverParameter; + public MethodDeclaration() { this(null, EnumSet.noneOf(Modifier.class), new NodeList<>(), new NodeList<>(), new ClassOrInterfaceType(), new SimpleName(), new NodeList<>(), new NodeList<>(), new BlockStmt(), null); } @@ -94,9 +96,10 @@ public final class MethodDeclaration extends CallableDeclaration<MethodDeclarati /**This constructor is used by the parser and is considered private.*/ @Generated("com.github.javaparser.generator.core.node.MainConstructorGenerator") public MethodDeclaration(TokenRange tokenRange, EnumSet<Modifier> modifiers, NodeList<AnnotationExpr> annotations, NodeList<TypeParameter> typeParameters, Type type, SimpleName name, NodeList<Parameter> parameters, NodeList<ReferenceType> thrownExceptions, BlockStmt body, ReceiverParameter receiverParameter) { - super(tokenRange, modifiers, annotations, typeParameters, name, parameters, thrownExceptions, receiverParameter); + super(tokenRange, modifiers, annotations, typeParameters, name, parameters, thrownExceptions); setType(type); setBody(body); + setReceiverParameter(receiverParameter); customInitialization(); } @@ -271,6 +274,12 @@ public final class MethodDeclaration extends CallableDeclaration<MethodDeclarati return true; } } + if (receiverParameter != null) { + if (node == receiverParameter) { + removeReceiverParameter(); + return true; + } + } return super.remove(node); } @@ -302,6 +311,12 @@ public final class MethodDeclaration extends CallableDeclaration<MethodDeclarati return true; } } + if (receiverParameter != null) { + if (node == receiverParameter) { + setReceiverParameter((ReceiverParameter) replacementNode); + return true; + } + } if (node == type) { setType((Type) replacementNode); return true; @@ -330,4 +345,27 @@ public final class MethodDeclaration extends CallableDeclaration<MethodDeclarati public ResolvedMethodDeclaration resolve() { return getSymbolResolver().resolve(this, ResolvedMethodDeclaration.class); } + + @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") + public Optional<ReceiverParameter> getReceiverParameter() { + return Optional.ofNullable(receiverParameter); + } + + @Generated("com.github.javaparser.generator.core.node.PropertyGenerator") + public MethodDeclaration setReceiverParameter(final ReceiverParameter receiverParameter) { + if (receiverParameter == this.receiverParameter) { + return (MethodDeclaration) this; + } + notifyPropertyChange(ObservableProperty.RECEIVER_PARAMETER, this.receiverParameter, receiverParameter); + if (this.receiverParameter != null) + this.receiverParameter.setParentNode(null); + this.receiverParameter = receiverParameter; + setAsParentNodeOf(receiverParameter); + return this; + } + + @Generated("com.github.javaparser.generator.core.node.RemoveMethodGenerator") + public MethodDeclaration removeReceiverParameter() { + return setReceiverParameter((ReceiverParameter) null); + } } diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java index e5b88e1a1..5f77fc76a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/CloneVisitor.java @@ -185,12 +185,11 @@ public class CloneVisitor implements GenericVisitor<Visitable, Object> { BlockStmt body = cloneNode(n.getBody(), arg); SimpleName name = cloneNode(n.getName(), arg); NodeList<Parameter> parameters = cloneList(n.getParameters(), arg); - ReceiverParameter receiverParameter = cloneNode(n.getReceiverParameter(), arg); NodeList<ReferenceType> thrownExceptions = cloneList(n.getThrownExceptions(), arg); NodeList<TypeParameter> typeParameters = cloneList(n.getTypeParameters(), arg); NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg); Comment comment = cloneNode(n.getComment(), arg); - ConstructorDeclaration r = new ConstructorDeclaration(n.getTokenRange().orElse(null), n.getModifiers(), annotations, typeParameters, name, parameters, thrownExceptions, body, receiverParameter); + ConstructorDeclaration r = new ConstructorDeclaration(n.getTokenRange().orElse(null), n.getModifiers(), annotations, typeParameters, name, parameters, thrownExceptions, body); r.setComment(comment); return r; } @@ -199,10 +198,10 @@ public class CloneVisitor implements GenericVisitor<Visitable, Object> { @Generated("com.github.javaparser.generator.core.visitor.CloneVisitorGenerator") public Visitable visit(final MethodDeclaration n, final Object arg) { BlockStmt body = cloneNode(n.getBody(), arg); + ReceiverParameter receiverParameter = cloneNode(n.getReceiverParameter(), arg); Type type = cloneNode(n.getType(), arg); SimpleName name = cloneNode(n.getName(), arg); NodeList<Parameter> parameters = cloneList(n.getParameters(), arg); - ReceiverParameter receiverParameter = cloneNode(n.getReceiverParameter(), arg); NodeList<ReferenceType> thrownExceptions = cloneList(n.getThrownExceptions(), arg); NodeList<TypeParameter> typeParameters = cloneList(n.getTypeParameters(), arg); NodeList<AnnotationExpr> annotations = cloneList(n.getAnnotations(), arg); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java index 49a2ee278..72e7afcc1 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/EqualsVisitor.java @@ -338,8 +338,6 @@ public class EqualsVisitor implements GenericVisitor<Boolean, Visitable> { return false; if (!nodesEquals(n.getParameters(), n2.getParameters())) return false; - if (!nodeEquals(n.getReceiverParameter(), n2.getReceiverParameter())) - return false; if (!nodesEquals(n.getThrownExceptions(), n2.getThrownExceptions())) return false; if (!nodesEquals(n.getTypeParameters(), n2.getTypeParameters())) @@ -357,6 +355,8 @@ public class EqualsVisitor implements GenericVisitor<Boolean, Visitable> { final MethodDeclaration n2 = (MethodDeclaration) arg; if (!nodeEquals(n.getBody(), n2.getBody())) return false; + if (!nodeEquals(n.getReceiverParameter(), n2.getReceiverParameter())) + return false; if (!nodeEquals(n.getType(), n2.getType())) return false; if (!objEquals(n.getModifiers(), n2.getModifiers())) @@ -365,8 +365,6 @@ public class EqualsVisitor implements GenericVisitor<Boolean, Visitable> { return false; if (!nodesEquals(n.getParameters(), n2.getParameters())) return false; - if (!nodeEquals(n.getReceiverParameter(), n2.getReceiverParameter())) - return false; if (!nodesEquals(n.getThrownExceptions(), n2.getThrownExceptions())) return false; if (!nodesEquals(n.getTypeParameters(), n2.getTypeParameters())) diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java index 14ae6c5b5..b6cad5bae 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericListVisitorAdapter.java @@ -562,11 +562,6 @@ public abstract class GenericListVisitorAdapter<R, A> implements GenericVisitor< if (tmp != null) result.addAll(tmp); } - if (n.getReceiverParameter().isPresent()) { - tmp = n.getReceiverParameter().get().accept(this, arg); - if (tmp != null) - result.addAll(tmp); - } { tmp = n.getThrownExceptions().accept(this, arg); if (tmp != null) @@ -1190,6 +1185,11 @@ public abstract class GenericListVisitorAdapter<R, A> implements GenericVisitor< if (tmp != null) result.addAll(tmp); } + if (n.getReceiverParameter().isPresent()) { + tmp = n.getReceiverParameter().get().accept(this, arg); + if (tmp != null) + result.addAll(tmp); + } { tmp = n.getType().accept(this, arg); if (tmp != null) @@ -1205,11 +1205,6 @@ public abstract class GenericListVisitorAdapter<R, A> implements GenericVisitor< if (tmp != null) result.addAll(tmp); } - if (n.getReceiverParameter().isPresent()) { - tmp = n.getReceiverParameter().get().accept(this, arg); - if (tmp != null) - result.addAll(tmp); - } { tmp = n.getThrownExceptions().accept(this, arg); if (tmp != null) diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java index 5b4bf55c0..14872667c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/GenericVisitorAdapter.java @@ -502,11 +502,6 @@ public abstract class GenericVisitorAdapter<R, A> implements GenericVisitor<R, A if (result != null) return result; } - if (n.getReceiverParameter().isPresent()) { - result = n.getReceiverParameter().get().accept(this, arg); - if (result != null) - return result; - } { result = n.getThrownExceptions().accept(this, arg); if (result != null) @@ -1040,6 +1035,11 @@ public abstract class GenericVisitorAdapter<R, A> implements GenericVisitor<R, A if (result != null) return result; } + if (n.getReceiverParameter().isPresent()) { + result = n.getReceiverParameter().get().accept(this, arg); + if (result != null) + return result; + } { result = n.getType().accept(this, arg); if (result != null) @@ -1055,11 +1055,6 @@ public abstract class GenericVisitorAdapter<R, A> implements GenericVisitor<R, A if (result != null) return result; } - if (n.getReceiverParameter().isPresent()) { - result = n.getReceiverParameter().get().accept(this, arg); - if (result != null) - return result; - } { result = n.getThrownExceptions().accept(this, arg); if (result != null) diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java index 2a12b7f69..0b4f346b6 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/HashCodeVisitor.java @@ -159,7 +159,7 @@ public class HashCodeVisitor implements GenericVisitor<Integer, Void> { @Generated("com.github.javaparser.generator.core.visitor.HashCodeVisitorGenerator") public Integer visit(final ConstructorDeclaration n, final Void arg) { - return (n.getBody().accept(this, arg)) * 31 + (n.getModifiers().hashCode()) * 31 + (n.getName().accept(this, arg)) * 31 + (n.getParameters().accept(this, arg)) * 31 + (n.getReceiverParameter().isPresent() ? n.getReceiverParameter().get().accept(this, arg) : 0) * 31 + (n.getThrownExceptions().accept(this, arg)) * 31 + (n.getTypeParameters().accept(this, arg)) * 31 + (n.getAnnotations().accept(this, arg)) * 31 + (n.getComment().isPresent() ? n.getComment().get().accept(this, arg) : 0); + return (n.getBody().accept(this, arg)) * 31 + (n.getModifiers().hashCode()) * 31 + (n.getName().accept(this, arg)) * 31 + (n.getParameters().accept(this, arg)) * 31 + (n.getThrownExceptions().accept(this, arg)) * 31 + (n.getTypeParameters().accept(this, arg)) * 31 + (n.getAnnotations().accept(this, arg)) * 31 + (n.getComment().isPresent() ? n.getComment().get().accept(this, arg) : 0); } @Generated("com.github.javaparser.generator.core.visitor.HashCodeVisitorGenerator") @@ -304,7 +304,7 @@ public class HashCodeVisitor implements GenericVisitor<Integer, Void> { @Generated("com.github.javaparser.generator.core.visitor.HashCodeVisitorGenerator") public Integer visit(final MethodDeclaration n, final Void arg) { - return (n.getBody().isPresent() ? n.getBody().get().accept(this, arg) : 0) * 31 + (n.getType().accept(this, arg)) * 31 + (n.getModifiers().hashCode()) * 31 + (n.getName().accept(this, arg)) * 31 + (n.getParameters().accept(this, arg)) * 31 + (n.getReceiverParameter().isPresent() ? n.getReceiverParameter().get().accept(this, arg) : 0) * 31 + (n.getThrownExceptions().accept(this, arg)) * 31 + (n.getTypeParameters().accept(this, arg)) * 31 + (n.getAnnotations().accept(this, arg)) * 31 + (n.getComment().isPresent() ? n.getComment().get().accept(this, arg) : 0); + return (n.getBody().isPresent() ? n.getBody().get().accept(this, arg) : 0) * 31 + (n.getReceiverParameter().isPresent() ? n.getReceiverParameter().get().accept(this, arg) : 0) * 31 + (n.getType().accept(this, arg)) * 31 + (n.getModifiers().hashCode()) * 31 + (n.getName().accept(this, arg)) * 31 + (n.getParameters().accept(this, arg)) * 31 + (n.getThrownExceptions().accept(this, arg)) * 31 + (n.getTypeParameters().accept(this, arg)) * 31 + (n.getAnnotations().accept(this, arg)) * 31 + (n.getComment().isPresent() ? n.getComment().get().accept(this, arg) : 0); } @Generated("com.github.javaparser.generator.core.visitor.HashCodeVisitorGenerator") diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java index 0a8619055..5a62f025a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/ModifierVisitor.java @@ -321,7 +321,6 @@ public class ModifierVisitor<A> implements GenericVisitor<Visitable, A> { BlockStmt body = (BlockStmt) n.getBody().accept(this, arg); SimpleName name = (SimpleName) n.getName().accept(this, arg); NodeList<Parameter> parameters = modifyList(n.getParameters(), arg); - ReceiverParameter receiverParameter = n.getReceiverParameter().map(s -> (ReceiverParameter) s.accept(this, arg)).orElse(null); NodeList<ReferenceType> thrownExceptions = modifyList(n.getThrownExceptions(), arg); NodeList<TypeParameter> typeParameters = modifyList(n.getTypeParameters(), arg); NodeList<AnnotationExpr> annotations = modifyList(n.getAnnotations(), arg); @@ -331,7 +330,6 @@ public class ModifierVisitor<A> implements GenericVisitor<Visitable, A> { n.setBody(body); n.setName(name); n.setParameters(parameters); - n.setReceiverParameter(receiverParameter); n.setThrownExceptions(thrownExceptions); n.setTypeParameters(typeParameters); n.setAnnotations(annotations); @@ -649,10 +647,10 @@ public class ModifierVisitor<A> implements GenericVisitor<Visitable, A> { @Generated("com.github.javaparser.generator.core.visitor.ModifierVisitorGenerator") public Visitable visit(final MethodDeclaration n, final A arg) { BlockStmt body = n.getBody().map(s -> (BlockStmt) s.accept(this, arg)).orElse(null); + ReceiverParameter receiverParameter = n.getReceiverParameter().map(s -> (ReceiverParameter) s.accept(this, arg)).orElse(null); Type type = (Type) n.getType().accept(this, arg); SimpleName name = (SimpleName) n.getName().accept(this, arg); NodeList<Parameter> parameters = modifyList(n.getParameters(), arg); - ReceiverParameter receiverParameter = n.getReceiverParameter().map(s -> (ReceiverParameter) s.accept(this, arg)).orElse(null); NodeList<ReferenceType> thrownExceptions = modifyList(n.getThrownExceptions(), arg); NodeList<TypeParameter> typeParameters = modifyList(n.getTypeParameters(), arg); NodeList<AnnotationExpr> annotations = modifyList(n.getAnnotations(), arg); @@ -660,10 +658,10 @@ public class ModifierVisitor<A> implements GenericVisitor<Visitable, A> { if (type == null || name == null) return null; n.setBody(body); + n.setReceiverParameter(receiverParameter); n.setType(type); n.setName(name); n.setParameters(parameters); - n.setReceiverParameter(receiverParameter); n.setThrownExceptions(thrownExceptions); n.setTypeParameters(typeParameters); n.setAnnotations(annotations); diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java index 8e6862995..b7a9914df 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentEqualsVisitor.java @@ -267,8 +267,6 @@ public class NoCommentEqualsVisitor implements GenericVisitor<Boolean, Visitable return false; if (!nodesEquals(n.getParameters(), n2.getParameters())) return false; - if (!nodeEquals(n.getReceiverParameter(), n2.getReceiverParameter())) - return false; if (!nodesEquals(n.getThrownExceptions(), n2.getThrownExceptions())) return false; if (!nodesEquals(n.getTypeParameters(), n2.getTypeParameters())) @@ -284,6 +282,8 @@ public class NoCommentEqualsVisitor implements GenericVisitor<Boolean, Visitable final MethodDeclaration n2 = (MethodDeclaration) arg; if (!nodeEquals(n.getBody(), n2.getBody())) return false; + if (!nodeEquals(n.getReceiverParameter(), n2.getReceiverParameter())) + return false; if (!nodeEquals(n.getType(), n2.getType())) return false; if (!objEquals(n.getModifiers(), n2.getModifiers())) @@ -292,8 +292,6 @@ public class NoCommentEqualsVisitor implements GenericVisitor<Boolean, Visitable return false; if (!nodesEquals(n.getParameters(), n2.getParameters())) return false; - if (!nodeEquals(n.getReceiverParameter(), n2.getReceiverParameter())) - return false; if (!nodesEquals(n.getThrownExceptions(), n2.getThrownExceptions())) return false; if (!nodesEquals(n.getTypeParameters(), n2.getTypeParameters())) diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java index 914391c90..e23beae79 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/NoCommentHashCodeVisitor.java @@ -151,7 +151,7 @@ public class NoCommentHashCodeVisitor implements GenericVisitor<Integer, Void> { @Generated("com.github.javaparser.generator.core.visitor.NoCommentHashCodeVisitorGenerator") public Integer visit(final ConstructorDeclaration n, final Void arg) { - return (n.getBody().accept(this, arg)) * 31 + (n.getModifiers().hashCode()) * 31 + (n.getName().accept(this, arg)) * 31 + (n.getParameters().accept(this, arg)) * 31 + (n.getReceiverParameter().isPresent() ? n.getReceiverParameter().get().accept(this, arg) : 0) * 31 + (n.getThrownExceptions().accept(this, arg)) * 31 + (n.getTypeParameters().accept(this, arg)) * 31 + (n.getAnnotations().accept(this, arg)); + return (n.getBody().accept(this, arg)) * 31 + (n.getModifiers().hashCode()) * 31 + (n.getName().accept(this, arg)) * 31 + (n.getParameters().accept(this, arg)) * 31 + (n.getThrownExceptions().accept(this, arg)) * 31 + (n.getTypeParameters().accept(this, arg)) * 31 + (n.getAnnotations().accept(this, arg)); } @Generated("com.github.javaparser.generator.core.visitor.NoCommentHashCodeVisitorGenerator") @@ -296,7 +296,7 @@ public class NoCommentHashCodeVisitor implements GenericVisitor<Integer, Void> { @Generated("com.github.javaparser.generator.core.visitor.NoCommentHashCodeVisitorGenerator") public Integer visit(final MethodDeclaration n, final Void arg) { - return (n.getBody().isPresent() ? n.getBody().get().accept(this, arg) : 0) * 31 + (n.getType().accept(this, arg)) * 31 + (n.getModifiers().hashCode()) * 31 + (n.getName().accept(this, arg)) * 31 + (n.getParameters().accept(this, arg)) * 31 + (n.getReceiverParameter().isPresent() ? n.getReceiverParameter().get().accept(this, arg) : 0) * 31 + (n.getThrownExceptions().accept(this, arg)) * 31 + (n.getTypeParameters().accept(this, arg)) * 31 + (n.getAnnotations().accept(this, arg)); + return (n.getBody().isPresent() ? n.getBody().get().accept(this, arg) : 0) * 31 + (n.getReceiverParameter().isPresent() ? n.getReceiverParameter().get().accept(this, arg) : 0) * 31 + (n.getType().accept(this, arg)) * 31 + (n.getModifiers().hashCode()) * 31 + (n.getName().accept(this, arg)) * 31 + (n.getParameters().accept(this, arg)) * 31 + (n.getThrownExceptions().accept(this, arg)) * 31 + (n.getTypeParameters().accept(this, arg)) * 31 + (n.getAnnotations().accept(this, arg)); } @Generated("com.github.javaparser.generator.core.visitor.NoCommentHashCodeVisitorGenerator") diff --git a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java index 6ece2a302..02f530a9a 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java +++ b/javaparser-core/src/main/java/com/github/javaparser/ast/visitor/VoidVisitorAdapter.java @@ -208,7 +208,6 @@ public abstract class VoidVisitorAdapter<A> implements VoidVisitor<A> { n.getBody().accept(this, arg); n.getName().accept(this, arg); n.getParameters().forEach(p -> p.accept(this, arg)); - n.getReceiverParameter().ifPresent(l -> l.accept(this, arg)); n.getThrownExceptions().forEach(p -> p.accept(this, arg)); n.getTypeParameters().forEach(p -> p.accept(this, arg)); n.getAnnotations().forEach(p -> p.accept(this, arg)); @@ -408,10 +407,10 @@ public abstract class VoidVisitorAdapter<A> implements VoidVisitor<A> { @Generated("com.github.javaparser.generator.core.visitor.VoidVisitorAdapterGenerator") public void visit(final MethodDeclaration n, final A arg) { n.getBody().ifPresent(l -> l.accept(this, arg)); + n.getReceiverParameter().ifPresent(l -> l.accept(this, arg)); n.getType().accept(this, arg); n.getName().accept(this, arg); n.getParameters().forEach(p -> p.accept(this, arg)); - n.getReceiverParameter().ifPresent(l -> l.accept(this, arg)); n.getThrownExceptions().forEach(p -> p.accept(this, arg)); n.getTypeParameters().forEach(p -> p.accept(this, arg)); n.getAnnotations().forEach(p -> p.accept(this, arg)); diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CallableDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CallableDeclarationMetaModel.java index 040762f0e..358ff424c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/CallableDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/CallableDeclarationMetaModel.java @@ -19,8 +19,6 @@ public class CallableDeclarationMetaModel extends BodyDeclarationMetaModel { public PropertyMetaModel parametersPropertyMetaModel; - public PropertyMetaModel receiverParameterPropertyMetaModel; - public PropertyMetaModel thrownExceptionsPropertyMetaModel; public PropertyMetaModel typeParametersPropertyMetaModel; diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java index 6c7c84444..fa5132fa4 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/JavaParserMetaModel.java @@ -23,7 +23,6 @@ public final class JavaParserMetaModel { callableDeclarationMetaModel.getConstructorParameters().add(callableDeclarationMetaModel.namePropertyMetaModel); callableDeclarationMetaModel.getConstructorParameters().add(callableDeclarationMetaModel.parametersPropertyMetaModel); callableDeclarationMetaModel.getConstructorParameters().add(callableDeclarationMetaModel.thrownExceptionsPropertyMetaModel); - callableDeclarationMetaModel.getConstructorParameters().add(callableDeclarationMetaModel.receiverParameterPropertyMetaModel); typeMetaModel.getConstructorParameters().add(typeMetaModel.annotationsPropertyMetaModel); annotationExprMetaModel.getConstructorParameters().add(annotationExprMetaModel.namePropertyMetaModel); typeDeclarationMetaModel.getConstructorParameters().add(typeDeclarationMetaModel.modifiersPropertyMetaModel); @@ -69,7 +68,6 @@ public final class JavaParserMetaModel { constructorDeclarationMetaModel.getConstructorParameters().add(callableDeclarationMetaModel.parametersPropertyMetaModel); constructorDeclarationMetaModel.getConstructorParameters().add(callableDeclarationMetaModel.thrownExceptionsPropertyMetaModel); constructorDeclarationMetaModel.getConstructorParameters().add(constructorDeclarationMetaModel.bodyPropertyMetaModel); - constructorDeclarationMetaModel.getConstructorParameters().add(callableDeclarationMetaModel.receiverParameterPropertyMetaModel); enumConstantDeclarationMetaModel.getConstructorParameters().add(bodyDeclarationMetaModel.annotationsPropertyMetaModel); enumConstantDeclarationMetaModel.getConstructorParameters().add(enumConstantDeclarationMetaModel.namePropertyMetaModel); enumConstantDeclarationMetaModel.getConstructorParameters().add(enumConstantDeclarationMetaModel.argumentsPropertyMetaModel); @@ -93,7 +91,7 @@ public final class JavaParserMetaModel { methodDeclarationMetaModel.getConstructorParameters().add(callableDeclarationMetaModel.parametersPropertyMetaModel); methodDeclarationMetaModel.getConstructorParameters().add(callableDeclarationMetaModel.thrownExceptionsPropertyMetaModel); methodDeclarationMetaModel.getConstructorParameters().add(methodDeclarationMetaModel.bodyPropertyMetaModel); - methodDeclarationMetaModel.getConstructorParameters().add(callableDeclarationMetaModel.receiverParameterPropertyMetaModel); + methodDeclarationMetaModel.getConstructorParameters().add(methodDeclarationMetaModel.receiverParameterPropertyMetaModel); parameterMetaModel.getConstructorParameters().add(parameterMetaModel.modifiersPropertyMetaModel); parameterMetaModel.getConstructorParameters().add(parameterMetaModel.annotationsPropertyMetaModel); parameterMetaModel.getConstructorParameters().add(parameterMetaModel.typePropertyMetaModel); @@ -367,8 +365,6 @@ public final class JavaParserMetaModel { callableDeclarationMetaModel.getDeclaredPropertyMetaModels().add(callableDeclarationMetaModel.namePropertyMetaModel); callableDeclarationMetaModel.parametersPropertyMetaModel = new PropertyMetaModel(callableDeclarationMetaModel, "parameters", com.github.javaparser.ast.body.Parameter.class, Optional.of(parameterMetaModel), false, false, true, false, false); callableDeclarationMetaModel.getDeclaredPropertyMetaModels().add(callableDeclarationMetaModel.parametersPropertyMetaModel); - callableDeclarationMetaModel.receiverParameterPropertyMetaModel = new PropertyMetaModel(callableDeclarationMetaModel, "receiverParameter", com.github.javaparser.ast.body.ReceiverParameter.class, Optional.of(receiverParameterMetaModel), true, false, false, false, false); - callableDeclarationMetaModel.getDeclaredPropertyMetaModels().add(callableDeclarationMetaModel.receiverParameterPropertyMetaModel); callableDeclarationMetaModel.thrownExceptionsPropertyMetaModel = new PropertyMetaModel(callableDeclarationMetaModel, "thrownExceptions", com.github.javaparser.ast.type.ReferenceType.class, Optional.of(referenceTypeMetaModel), false, false, true, false, false); callableDeclarationMetaModel.getDeclaredPropertyMetaModels().add(callableDeclarationMetaModel.thrownExceptionsPropertyMetaModel); callableDeclarationMetaModel.typeParametersPropertyMetaModel = new PropertyMetaModel(callableDeclarationMetaModel, "typeParameters", com.github.javaparser.ast.type.TypeParameter.class, Optional.of(typeParameterMetaModel), false, false, true, false, false); @@ -449,6 +445,8 @@ public final class JavaParserMetaModel { initializerDeclarationMetaModel.getDeclaredPropertyMetaModels().add(initializerDeclarationMetaModel.isStaticPropertyMetaModel); methodDeclarationMetaModel.bodyPropertyMetaModel = new PropertyMetaModel(methodDeclarationMetaModel, "body", com.github.javaparser.ast.stmt.BlockStmt.class, Optional.of(blockStmtMetaModel), true, false, false, false, false); methodDeclarationMetaModel.getDeclaredPropertyMetaModels().add(methodDeclarationMetaModel.bodyPropertyMetaModel); + methodDeclarationMetaModel.receiverParameterPropertyMetaModel = new PropertyMetaModel(methodDeclarationMetaModel, "receiverParameter", com.github.javaparser.ast.body.ReceiverParameter.class, Optional.of(receiverParameterMetaModel), true, false, false, false, false); + methodDeclarationMetaModel.getDeclaredPropertyMetaModels().add(methodDeclarationMetaModel.receiverParameterPropertyMetaModel); methodDeclarationMetaModel.typePropertyMetaModel = new PropertyMetaModel(methodDeclarationMetaModel, "type", com.github.javaparser.ast.type.Type.class, Optional.of(typeMetaModel), false, false, false, false, false); methodDeclarationMetaModel.getDeclaredPropertyMetaModels().add(methodDeclarationMetaModel.typePropertyMetaModel); parameterMetaModel.annotationsPropertyMetaModel = new PropertyMetaModel(parameterMetaModel, "annotations", com.github.javaparser.ast.expr.AnnotationExpr.class, Optional.of(annotationExprMetaModel), false, false, true, false, false); diff --git a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodDeclarationMetaModel.java b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodDeclarationMetaModel.java index 74aaeae69..8378bd9aa 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodDeclarationMetaModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/metamodel/MethodDeclarationMetaModel.java @@ -10,5 +10,7 @@ public class MethodDeclarationMetaModel extends CallableDeclarationMetaModel { public PropertyMetaModel bodyPropertyMetaModel; + public PropertyMetaModel receiverParameterPropertyMetaModel; + public PropertyMetaModel typePropertyMetaModel; } diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java b/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java index 79a7f0134..fb308c78b 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/ConcreteSyntaxModel.java @@ -214,6 +214,7 @@ public class ConcreteSyntaxModel { space(), child(ObservableProperty.NAME), token(GeneratedJavaParserConstants.LPAREN), + conditional(ObservableProperty.RECEIVER_PARAMETER, IS_PRESENT, sequence(child(ObservableProperty.RECEIVER_PARAMETER), comma())), list(ObservableProperty.PARAMETERS, sequence(comma(), space()), none(), none()), token(GeneratedJavaParserConstants.RPAREN), list(ObservableProperty.THROWN_EXCEPTIONS, sequence(comma(), space()), sequence(space(), token(GeneratedJavaParserConstants.THROWS), space()), none()), @@ -231,6 +232,13 @@ public class ConcreteSyntaxModel { space(), child(ObservableProperty.NAME))); + concreteSyntaxModelByClass.put(ReceiverParameter.class, sequence( + comment(), + list(ObservableProperty.ANNOTATIONS, CsmElement.space(), CsmElement.none(), CsmElement.space()), + child(ObservableProperty.TYPE), + space(), + child(ObservableProperty.NAME))); + concreteSyntaxModelByClass.put(VariableDeclarator.class, sequence( comment(), child(ObservableProperty.NAME), diff --git a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java index 6d6580e8d..efde0667c 100644 --- a/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java +++ b/javaparser-core/src/main/java/com/github/javaparser/printer/PrettyPrintVisitor.java @@ -747,10 +747,6 @@ public class PrettyPrintVisitor implements VoidVisitor<Void> { n.getName().accept(this, arg); printer.print("("); - n.getReceiverParameter().ifPresent(rp -> { - rp.accept(this, arg); - printer.print(", "); - }); if (!n.getParameters().isEmpty()) { for (final Iterator<Parameter> i = n.getParameters().iterator(); i.hasNext(); ) { final Parameter p = i.next(); diff --git a/javaparser-core/src/main/javacc/java.jj b/javaparser-core/src/main/javacc/java.jj index c38b1e429..9eccde9da 100644 --- a/javaparser-core/src/main/javacc/java.jj +++ b/javaparser-core/src/main/javacc/java.jj @@ -1304,7 +1304,10 @@ ConstructorDeclaration ConstructorDeclaration(ModifierHolder modifier): if (exConsInv != null) { stmts = prepend(stmts, exConsInv); } - return new ConstructorDeclaration(range(begin, token()), modifier.modifiers, modifier.annotations, typeParameters.list, name, parameters.a, throws_, new BlockStmt(range(blockBegin, token()), stmts), parameters.b); + if (parameters.b != null) { + addProblem("The receiver cannot be used in a static context."); + } + return new ConstructorDeclaration(range(begin, token()), modifier.modifiers, modifier.annotations, typeParameters.list, name, parameters.a, throws_, new BlockStmt(range(blockBegin, token()), stmts)); } } |