1 package net.sourceforge.pmd.ast;
2
3 public class AccessNode extends SimpleNode {
4
5 public static final int PUBLIC = 0x0001;
6 public static final int PROTECTED = 0x0002;
7 public static final int PRIVATE = 0x0004;
8 public static final int ABSTRACT = 0x0008;
9 public static final int STATIC = 0x0010;
10 public static final int FINAL = 0x0020;
11 public static final int SYNCHRONIZED = 0x0040;
12 public static final int NATIVE = 0x0080;
13 public static final int TRANSIENT = 0x0100;
14 public static final int VOLATILE = 0x0200;
15 public static final int STRICTFP = 0x1000;
16
17 public AccessNode(int i) {
18 super(i);
19 }
20
21 public AccessNode(JavaParser parser, int i) {
22 super(parser, i);
23 }
24
25 private int modifiers;
26
27 public void setModifiers(int m) {
28 this.modifiers = m;
29 }
30
31 public boolean isPublic() {
32 return (modifiers & PUBLIC) != 0;
33 }
34
35 public boolean isProtected() {
36 return (modifiers & PROTECTED) != 0;
37 }
38
39 public boolean isPrivate() {
40 return (modifiers & PRIVATE) != 0;
41 }
42
43 public boolean isStatic() {
44 return (modifiers & STATIC) != 0;
45 }
46
47 public boolean isAbstract() {
48 return (modifiers & ABSTRACT) != 0;
49 }
50
51 public boolean isFinal() {
52 return (modifiers & FINAL) != 0;
53 }
54
55 public boolean isNative() {
56 return (modifiers & NATIVE) != 0;
57 }
58
59 public boolean isStrictfp() {
60 return (modifiers & STRICTFP) != 0;
61 }
62
63 public boolean isSynchronized() {
64 return (modifiers & SYNCHRONIZED) != 0;
65 }
66
67 public boolean isTransient() {
68 return (modifiers & TRANSIENT) != 0;
69 }
70
71 public boolean isVolatile() {
72 return (modifiers & VOLATILE) != 0;
73 }
74
75 public void setPublic() {
76 modifiers |= PUBLIC;
77 }
78 public void setPrivate() {
79 modifiers |= PRIVATE;
80 }
81 public void setProtected() {
82 modifiers |= PROTECTED;
83 }
84 public void setSynchronized() {
85 modifiers |= SYNCHRONIZED;
86 }
87 public void setVolatile() {
88 modifiers |= VOLATILE;
89 }
90 public void setAbstract() {
91 modifiers |= ABSTRACT;
92 }
93 public void setStatic() {
94 modifiers |= STATIC;
95 }
96 public void setTransient() {
97 modifiers |= TRANSIENT;
98 }
99 public void setFinal() {
100 modifiers |= FINAL;
101 }
102 public void setNative() {
103 modifiers |= NATIVE;
104 }
105 public void setStrictfp() {
106 modifiers |= STRICTFP;
107 }
108
109 /***
110 * Removes the given modifier.
111 */
112 static int removeModifier(int modifiers, int mod) {
113 return modifiers & ~mod;
114 }
115
116 public boolean isPackagePrivate() {
117 return !isPrivate() && !isPublic() && !isProtected();
118 }
119
120 public String collectDumpedModifiers(String prefix) {
121 String out = toString(prefix) + ":";
122 if (isPackagePrivate()) {
123 out += "(package private)";
124 }
125 if (isPrivate()) {
126 out += "(private)";
127 }
128 if (isPublic()) {
129 out += "(public)";
130 }
131 if (isProtected()) {
132 out += "(protected)";
133 }
134 if (isAbstract()) {
135 out += "(abstract)";
136 }
137 if (isStatic()) {
138 out += "(static)";
139 }
140 if (isFinal()) {
141 out += "(final)";
142 }
143 if (isSynchronized()) {
144 out += "(synchronized)";
145 }
146 if (isNative()) {
147 out += "(native)";
148 }
149 if (isStrictfp()) {
150 out += "(strict)";
151 }
152 if (isTransient()) {
153 out += "(transient)";
154 }
155 return out;
156 }
157 }