diff options
Diffstat (limited to 'javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java')
-rw-r--r-- | javaparser-core/src/main/java/com/github/javaparser/ast/body/MethodDeclaration.java | 349 |
1 files changed, 185 insertions, 164 deletions
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 7c2e606c3..9aa0cd841 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 @@ -18,11 +18,21 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. */ - + package com.github.javaparser.ast.body; +import static com.github.javaparser.Position.pos; +import static com.github.javaparser.ast.internal.Utils.ensureNotNull; + +import java.util.List; + import com.github.javaparser.Range; -import com.github.javaparser.ast.*; +import com.github.javaparser.ast.AccessSpecifier; +import com.github.javaparser.ast.DocumentableNode; +import com.github.javaparser.ast.NamedNode; +import com.github.javaparser.ast.NodeWithModifiers; +import com.github.javaparser.ast.TypeParameter; +import com.github.javaparser.ast.TypedNode; import com.github.javaparser.ast.comments.JavadocComment; import com.github.javaparser.ast.expr.AnnotationExpr; import com.github.javaparser.ast.expr.NameExpr; @@ -32,199 +42,209 @@ import com.github.javaparser.ast.type.Type; import com.github.javaparser.ast.visitor.GenericVisitor; import com.github.javaparser.ast.visitor.VoidVisitor; -import java.util.List; - -import static com.github.javaparser.Position.pos; -import static com.github.javaparser.ast.internal.Utils.ensureNotNull; - /** * @author Julio Vilmar Gesser */ -public final class MethodDeclaration extends BodyDeclaration implements DocumentableNode, WithDeclaration, NamedNode, TypedNode, NodeWithModifiers { +public final class MethodDeclaration extends BodyDeclaration + implements DocumentableNode, WithDeclaration, NamedNode, TypedNode<MethodDeclaration>, NodeWithModifiers { - private int modifiers; + private int modifiers; - private List<TypeParameter> typeParameters; + private List<TypeParameter> typeParameters; - private Type type; + private Type type; - private NameExpr name; + private NameExpr name; - private List<Parameter> parameters; + private List<Parameter> parameters; - private int arrayCount; + private int arrayCount; - private List<ReferenceType> throws_; + private List<ReferenceType> throws_; - private BlockStmt body; + private BlockStmt body; private boolean isDefault = false; public MethodDeclaration() { - } - - public MethodDeclaration(final int modifiers, final Type type, final String name) { - setModifiers(modifiers); - setType(type); - setName(name); - } - - public MethodDeclaration(final int modifiers, final Type type, final String name, final List<Parameter> parameters) { - setModifiers(modifiers); - setType(type); - setName(name); - setParameters(parameters); - } - - public MethodDeclaration(final int modifiers, final List<AnnotationExpr> annotations, - final List<TypeParameter> typeParameters, final Type type, final String name, - final List<Parameter> parameters, final int arrayCount, final List<ReferenceType> throws_, final BlockStmt body) { - super(annotations); - setModifiers(modifiers); - setTypeParameters(typeParameters); - setType(type); - setName(name); - setParameters(parameters); - setArrayCount(arrayCount); - setThrows(throws_); - setBody(body); - } - - /** - * @deprecated prefer using Range objects. - */ - @Deprecated - public MethodDeclaration(final int beginLine, final int beginColumn, final int endLine, final int endColumn, - final int modifiers, final List<AnnotationExpr> annotations, - final List<TypeParameter> typeParameters, final Type type, final String name, - final List<Parameter> parameters, final int arrayCount, final List<ReferenceType> throws_, final BlockStmt body) { - this(new Range(pos(beginLine, beginColumn), pos(endLine, endColumn)), modifiers, annotations, typeParameters, type, name, parameters, arrayCount, throws_, body); - } - - public MethodDeclaration(Range range, - final int modifiers, final List<AnnotationExpr> annotations, - final List<TypeParameter> typeParameters, final Type type, final String name, - final List<Parameter> parameters, final int arrayCount, final List<ReferenceType> throws_, final BlockStmt body) { - super(range, annotations); - setModifiers(modifiers); - setTypeParameters(typeParameters); - setType(type); - setName(name); - setParameters(parameters); - setArrayCount(arrayCount); - setThrows(throws_); - setBody(body); - } - - @Override public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) { - return v.visit(this, arg); - } - - @Override public <A> void accept(final VoidVisitor<A> v, final A arg) { - v.visit(this, arg); - } - - public int getArrayCount() { - return arrayCount; - } - - public BlockStmt getBody() { - return body; - } - - /** - * Return the modifiers of this member declaration. - * - * @see ModifierSet - * @return modifiers - */ - @Override - public int getModifiers() { - return modifiers; - } - - @Override - public String getName() { - return name.getName(); - } + } + + public MethodDeclaration(final int modifiers, final Type type, final String name) { + setModifiers(modifiers); + setType(type); + setName(name); + } + + public MethodDeclaration(final int modifiers, final Type type, final String name, + final List<Parameter> parameters) { + setModifiers(modifiers); + setType(type); + setName(name); + setParameters(parameters); + } + + public MethodDeclaration(final int modifiers, final List<AnnotationExpr> annotations, + final List<TypeParameter> typeParameters, final Type type, final String name, + final List<Parameter> parameters, final int arrayCount, final List<ReferenceType> throws_, + final BlockStmt body) { + super(annotations); + setModifiers(modifiers); + setTypeParameters(typeParameters); + setType(type); + setName(name); + setParameters(parameters); + setArrayCount(arrayCount); + setThrows(throws_); + setBody(body); + } + + /** + * @deprecated prefer using Range objects. + */ + @Deprecated + public MethodDeclaration(final int beginLine, final int beginColumn, final int endLine, final int endColumn, + final int modifiers, final List<AnnotationExpr> annotations, + final List<TypeParameter> typeParameters, final Type type, final String name, + final List<Parameter> parameters, final int arrayCount, final List<ReferenceType> throws_, + final BlockStmt body) { + this(new Range(pos(beginLine, beginColumn), pos(endLine, endColumn)), modifiers, annotations, typeParameters, + type, name, parameters, arrayCount, throws_, body); + } + + public MethodDeclaration(Range range, + final int modifiers, final List<AnnotationExpr> annotations, + final List<TypeParameter> typeParameters, final Type type, final String name, + final List<Parameter> parameters, final int arrayCount, final List<ReferenceType> throws_, + final BlockStmt body) { + super(range, annotations); + setModifiers(modifiers); + setTypeParameters(typeParameters); + setType(type); + setName(name); + setParameters(parameters); + setArrayCount(arrayCount); + setThrows(throws_); + setBody(body); + } + + @Override + public <R, A> R accept(final GenericVisitor<R, A> v, final A arg) { + return v.visit(this, arg); + } + + @Override + public <A> void accept(final VoidVisitor<A> v, final A arg) { + v.visit(this, arg); + } + + public int getArrayCount() { + return arrayCount; + } + + public BlockStmt getBody() { + return body; + } + + /** + * Return the modifiers of this member declaration. + * + * @see ModifierSet + * @return modifiers + */ + @Override + public int getModifiers() { + return modifiers; + } + + @Override + public String getName() { + return name.getName(); + } public NameExpr getNameExpr() { return name; } - public List<Parameter> getParameters() { + public List<Parameter> getParameters() { parameters = ensureNotNull(parameters); return parameters; - } + } - public List<ReferenceType> getThrows() { + public List<ReferenceType> getThrows() { throws_ = ensureNotNull(throws_); return throws_; - } + } - @Override - public Type getType() { - return type; - } + @Override + public Type getType() { + return type; + } - public List<TypeParameter> getTypeParameters() { + public List<TypeParameter> getTypeParameters() { typeParameters = ensureNotNull(typeParameters); return typeParameters; - } + } - public void setArrayCount(final int arrayCount) { - this.arrayCount = arrayCount; - } + public void setArrayCount(final int arrayCount) { + this.arrayCount = arrayCount; + } - public void setBody(final BlockStmt body) { - this.body = body; - setAsParentNodeOf(this.body); - } + public MethodDeclaration setBody(final BlockStmt body) { + this.body = body; + setAsParentNodeOf(this.body); + return this; + } - public void setModifiers(final int modifiers) { - this.modifiers = modifiers; - } + public MethodDeclaration setModifiers(final int modifiers) { + this.modifiers = modifiers; + return this; + } - public void setName(final String name) { - setNameExpr(new NameExpr(name)); - } + public MethodDeclaration setName(final String name) { + setNameExpr(new NameExpr(name)); + return this; + } - public void setNameExpr(final NameExpr name) { + public MethodDeclaration setNameExpr(final NameExpr name) { this.name = name; - setAsParentNodeOf(this.name); + setAsParentNodeOf(this.name); + return this; } - public void setParameters(final List<Parameter> parameters) { - this.parameters = parameters; - setAsParentNodeOf(this.parameters); - } - - public void setThrows(final List<ReferenceType> throws_) { - this.throws_ = throws_; - setAsParentNodeOf(this.throws_); - } + public MethodDeclaration setParameters(final List<Parameter> parameters) { + this.parameters = parameters; + setAsParentNodeOf(this.parameters); + return this; + } - @Override - public void setType(final Type type) { - this.type = type; - setAsParentNodeOf(this.type); - } + public MethodDeclaration setThrows(final List<ReferenceType> throws_) { + this.throws_ = throws_; + setAsParentNodeOf(this.throws_); + return this; + } - public void setTypeParameters(final List<TypeParameter> typeParameters) { - this.typeParameters = typeParameters; - setAsParentNodeOf(typeParameters); - } + @Override + public MethodDeclaration setType(final Type type) { + this.type = type; + setAsParentNodeOf(this.type); + return this; + } + public MethodDeclaration setTypeParameters(final List<TypeParameter> typeParameters) { + this.typeParameters = typeParameters; + setAsParentNodeOf(typeParameters); + return this; + } public boolean isDefault() { return isDefault; } - public void setDefault(boolean isDefault) { + public MethodDeclaration setDefault(boolean isDefault) { this.isDefault = isDefault; + return this; } - @Override public String getDeclarationAsString() { return getDeclarationAsString(true, true, true); @@ -234,35 +254,37 @@ public final class MethodDeclaration extends BodyDeclaration implements Document public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows) { return getDeclarationAsString(includingModifiers, includingThrows, true); } - + /** * The declaration returned has this schema: * * [accessSpecifier] [static] [abstract] [final] [native] * [synchronized] returnType methodName ([paramType [paramName]]) * [throws exceptionsList] + * * @return method declaration as String */ @Override - public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows, boolean includingParameterName) { + public String getDeclarationAsString(boolean includingModifiers, boolean includingThrows, + boolean includingParameterName) { StringBuilder sb = new StringBuilder(); if (includingModifiers) { AccessSpecifier accessSpecifier = ModifierSet.getAccessSpecifier(getModifiers()); sb.append(accessSpecifier.getCodeRepresenation()); sb.append(accessSpecifier == AccessSpecifier.DEFAULT ? "" : " "); - if (ModifierSet.isStatic(getModifiers())){ + if (ModifierSet.isStatic(getModifiers())) { sb.append("static "); } - if (ModifierSet.isAbstract(getModifiers())){ + if (ModifierSet.isAbstract(getModifiers())) { sb.append("abstract "); } - if (ModifierSet.isFinal(getModifiers())){ + if (ModifierSet.isFinal(getModifiers())) { sb.append("final "); } - if (ModifierSet.isNative(getModifiers())){ + if (ModifierSet.isNative(getModifiers())) { sb.append("native "); } - if (ModifierSet.isSynchronized(getModifiers())){ + if (ModifierSet.isSynchronized(getModifiers())) { sb.append("synchronized "); } } @@ -272,8 +294,7 @@ public final class MethodDeclaration extends BodyDeclaration implements Document sb.append(getName()); sb.append("("); boolean firstParam = true; - for (Parameter param : getParameters()) - { + for (Parameter param : getParameters()) { if (firstParam) { firstParam = false; } else { @@ -284,7 +305,7 @@ public final class MethodDeclaration extends BodyDeclaration implements Document } else { sb.append(param.getType().toStringWithoutComments()); if (param.isVarArgs()) { - sb.append("..."); + sb.append("..."); } } } @@ -304,11 +325,11 @@ public final class MethodDeclaration extends BodyDeclaration implements Document return sb.toString(); } - @Override - public JavadocComment getJavaDoc() { - if(getComment() instanceof JavadocComment){ - return (JavadocComment) getComment(); - } - return null; - } + @Override + public JavadocComment getJavaDoc() { + if (getComment() instanceof JavadocComment) { + return (JavadocComment) getComment(); + } + return null; + } } |