View Javadoc

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