View Javadoc

    1   /* Generated By:JJTree: Do not edit this line. ASTMethodDeclaration.java */
    2
    3   package net.sourceforge.pmd.lang.java.ast;
    4
    5   public class ASTMethodDeclaration extends AbstractJavaAccessNode {
    6       public ASTMethodDeclaration(int id) {
    7           super(id);
    8       }
    9
    10      public ASTMethodDeclaration(JavaParser p, int id) {
    11          super(p, id);
    12      }
    13
    14      /**
    15       * Accept the visitor. *
    16       */
    17      @Override
    18      public Object jjtAccept(JavaParserVisitor visitor, Object data) {
    19          return visitor.visit(this, data);
    20      }
    21
    22      /**
    23       * Gets the name of the method.
    24       *
    25       * @return a String representing the name of the method
    26       */
    27      public String getMethodName() {
    28          ASTMethodDeclarator md = getFirstChildOfType(ASTMethodDeclarator.class);
    29          if (md != null) {
    30  	    return md.getImage();
    31  	}
    32          return null;
    33      }
    34
    35      public boolean isSyntacticallyPublic() {
    36          return super.isPublic();
    37      }
    38
    39      public boolean isSyntacticallyAbstract() {
    40          return super.isAbstract();
    41      }
    42
    43      @Override
    44      public boolean isPublic() {
    45          if (isInterfaceMember()) {
    46              return true;
    47          }
    48          return super.isPublic();
    49      }
    50
    51      @Override
    52      public boolean isAbstract() {
    53          if (isInterfaceMember()) {
    54              return true;
    55          }
    56          return super.isAbstract();
    57      }
    58
    59      public boolean isInterfaceMember() {
    60          ASTClassOrInterfaceDeclaration clz = getFirstParentOfType(ASTClassOrInterfaceDeclaration.class);
    61          return clz != null && clz.isInterface();
    62      }
    63
    64      public boolean isVoid() {
    65          return getResultType().isVoid();
    66      }
    67
    68      public ASTResultType getResultType() {
    69          return getFirstChildOfType(ASTResultType.class);
    70      }
    71
    72      public ASTBlock getBlock() {
    73          // FIXME doesn't work for all methods that use generics and declare exceptions
    74          if (this.jjtGetChild(2) instanceof ASTBlock) {
    75              return (ASTBlock) this.jjtGetChild(2);
    76          }
    77          if (jjtGetNumChildren() > 3) {
    78              if (this.jjtGetChild(3) instanceof ASTBlock) {
    79                  return (ASTBlock) this.jjtGetChild(3);
    80              }
    81          }
    82          return null;
    83      }
    84  }