1 2 3 package net.sourceforge.pmd.ast; 4 5 public class ASTFieldDeclaration extends AccessNode implements Dimensionable { 6 7 public ASTFieldDeclaration(int id) { 8 super(id); 9 } 10 11 public ASTFieldDeclaration(JavaParser p, int id) { 12 super(p, id); 13 } 14 15 18 public Object jjtAccept(JavaParserVisitor visitor, Object data) { 19 return visitor.visit(this, data); 20 } 21 22 public boolean isSyntacticallyPublic() { 23 return super.isPublic(); 24 } 25 26 public boolean isPublic() { 27 if (isInterfaceMember()) { 28 return true; 29 } 30 return super.isPublic(); 31 } 32 33 public boolean isSyntacticallyStatic() { 34 return super.isStatic(); 35 } 36 37 public boolean isStatic() { 38 if (isInterfaceMember()) { 39 return true; 40 } 41 return super.isStatic(); 42 } 43 44 public boolean isSyntacticallyFinal() { 45 return super.isFinal(); 46 } 47 48 public boolean isFinal() { 49 if (isInterfaceMember()) { 50 return true; 51 } 52 return super.isFinal(); 53 } 54 55 public boolean isPrivate() { 56 if (isInterfaceMember()) { 57 return false; 58 } 59 return super.isPrivate(); 60 } 61 62 public boolean isPackagePrivate() { 63 if (isInterfaceMember()) { 64 return false; 65 } 66 return super.isPackagePrivate(); 67 } 68 69 public boolean isProtected() { 70 if (isInterfaceMember()) { 71 return false; 72 } 73 return super.isProtected(); 74 } 75 76 public boolean isInterfaceMember() { 77 if (jjtGetParent().jjtGetParent() instanceof ASTEnumBody) { 78 return false; 79 } 80 ASTClassOrInterfaceDeclaration n = (ASTClassOrInterfaceDeclaration)getFirstParentOfType(ASTClassOrInterfaceDeclaration.class); 81 return n instanceof ASTClassOrInterfaceDeclaration && n.isInterface(); 82 } 83 84 public boolean isArray() { 85 return checkType() + checkDecl() > 0; 86 } 87 88 public int getArrayDepth() { 89 if (!isArray()) { 90 return 0; 91 } 92 return checkType() + checkDecl(); 93 } 94 95 private int checkType() { 96 if (jjtGetNumChildren() == 0 || !(jjtGetChild(0) instanceof ASTType)) { 97 return 0; 98 } 99 return ((ASTType) jjtGetChild(0)).getArrayDepth(); 100 } 101 102 private int checkDecl() { 103 if (jjtGetNumChildren() < 2 || !(jjtGetChild(1) instanceof ASTVariableDeclarator)) { 104 return 0; 105 } 106 return ((ASTVariableDeclaratorId) (jjtGetChild(1).jjtGetChild(0))).getArrayDepth(); 107 } 108 109 public void dump(String prefix) { 110 String out = collectDumpedModifiers(prefix); 111 if (isArray()) { 112 out += "(array"; 113 for (int i = 0; i < getArrayDepth(); i++) { 114 out += "["; 115 } 116 out += ")"; 117 } 118 System.out.println(out); 119 dumpChildren(prefix); 120 } 121 122 128 public String getVariableName() { 129 ASTVariableDeclaratorId decl = (ASTVariableDeclaratorId) getFirstChildOfType(ASTVariableDeclaratorId.class); 130 if (decl != null) { 131 return decl.getImage(); 132 } 133 return null; 134 } 135 } 136 | Popular Tags |