1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.bcel.classfile;
18
19 import org.apache.bcel.Const;
20
21
22
23
24 public abstract class AccessFlags {
25
26
27
28
29
30
31 @java.lang.Deprecated
32 protected int access_flags;
33
34
35
36
37 public AccessFlags() {
38 }
39
40
41
42
43
44
45 public AccessFlags(final int accessFlags) {
46 access_flags = accessFlags;
47 }
48
49
50
51
52
53
54 public final int getAccessFlags() {
55 return access_flags;
56 }
57
58
59
60
61
62
63 public final int getModifiers() {
64 return access_flags;
65 }
66
67
68
69
70
71
72 public final boolean isAbstract() {
73 return test(Const.ACC_ABSTRACT);
74 }
75
76
77
78
79
80
81 public final void isAbstract(final boolean flag) {
82 setFlag(Const.ACC_ABSTRACT, flag);
83 }
84
85
86
87
88
89
90 public final boolean isAnnotation() {
91 return test(Const.ACC_ANNOTATION);
92 }
93
94
95
96
97
98
99 public final void isAnnotation(final boolean flag) {
100 setFlag(Const.ACC_ANNOTATION, flag);
101 }
102
103
104
105
106
107 public final boolean isEnum() {
108 return test(Const.ACC_ENUM);
109 }
110
111
112
113
114
115
116 public final void isEnum(final boolean flag) {
117 setFlag(Const.ACC_ENUM, flag);
118 }
119
120
121
122
123
124
125 public final boolean isFinal() {
126 return test(Const.ACC_FINAL);
127 }
128
129
130
131
132
133
134 public final void isFinal(final boolean flag) {
135 setFlag(Const.ACC_FINAL, flag);
136 }
137
138
139
140
141
142
143 public final boolean isInterface() {
144 return test(Const.ACC_INTERFACE);
145 }
146
147
148
149
150
151
152 public final void isInterface(final boolean flag) {
153 setFlag(Const.ACC_INTERFACE, flag);
154 }
155
156
157
158
159
160
161 public final boolean isNative() {
162 return test(Const.ACC_NATIVE);
163 }
164
165
166
167
168
169
170 public final void isNative(final boolean flag) {
171 setFlag(Const.ACC_NATIVE, flag);
172 }
173
174
175
176
177
178
179 public final boolean isPrivate() {
180 return test(Const.ACC_PRIVATE);
181 }
182
183
184
185
186
187
188 public final void isPrivate(final boolean flag) {
189 setFlag(Const.ACC_PRIVATE, flag);
190 }
191
192
193
194
195
196
197 public final boolean isProtected() {
198 return test(Const.ACC_PROTECTED);
199 }
200
201
202
203
204
205
206 public final void isProtected(final boolean flag) {
207 setFlag(Const.ACC_PROTECTED, flag);
208 }
209
210
211
212
213
214
215 public final boolean isPublic() {
216 return test(Const.ACC_PUBLIC);
217 }
218
219
220
221
222
223
224 public final void isPublic(final boolean flag) {
225 setFlag(Const.ACC_PUBLIC, flag);
226 }
227
228
229
230
231
232
233 public final boolean isStatic() {
234 return test(Const.ACC_STATIC);
235 }
236
237
238
239
240
241
242 public final void isStatic(final boolean flag) {
243 setFlag(Const.ACC_STATIC, flag);
244 }
245
246
247
248
249
250
251 public final boolean isStrictfp() {
252 return test(Const.ACC_STRICT);
253 }
254
255
256
257
258
259
260 public final void isStrictfp(final boolean flag) {
261 setFlag(Const.ACC_STRICT, flag);
262 }
263
264
265
266
267
268
269 public final boolean isSynchronized() {
270 return test(Const.ACC_SYNCHRONIZED);
271 }
272
273
274
275
276
277
278 public final void isSynchronized(final boolean flag) {
279 setFlag(Const.ACC_SYNCHRONIZED, flag);
280 }
281
282
283
284
285
286
287 public final boolean isSynthetic() {
288 return test(Const.ACC_SYNTHETIC);
289 }
290
291
292
293
294
295
296 public final void isSynthetic(final boolean flag) {
297 setFlag(Const.ACC_SYNTHETIC, flag);
298 }
299
300
301
302
303
304
305 public final boolean isTransient() {
306 return test(Const.ACC_TRANSIENT);
307 }
308
309
310
311
312
313
314 public final void isTransient(final boolean flag) {
315 setFlag(Const.ACC_TRANSIENT, flag);
316 }
317
318
319
320
321
322
323 public final boolean isVarArgs() {
324 return test(Const.ACC_VARARGS);
325 }
326
327
328
329
330
331
332 public final void isVarArgs(final boolean flag) {
333 setFlag(Const.ACC_VARARGS, flag);
334 }
335
336
337
338
339
340
341 public final boolean isVolatile() {
342 return test(Const.ACC_VOLATILE);
343 }
344
345
346
347
348
349
350 public final void isVolatile(final boolean flag) {
351 setFlag(Const.ACC_VOLATILE, flag);
352 }
353
354
355
356
357
358
359 public final void setAccessFlags(final int accessFlags) {
360 this.access_flags = accessFlags;
361 }
362
363 private void setFlag(final int flag, final boolean set) {
364 if ((access_flags & flag) != 0) {
365 if (!set) {
366 access_flags ^= flag;
367 }
368 } else if (set) {
369 access_flags |= flag;
370 }
371 }
372
373
374
375
376
377
378 public final void setModifiers(final int accessFlags) {
379 setAccessFlags(accessFlags);
380 }
381
382
383
384
385
386
387
388 private boolean test(final short test) {
389 return (access_flags & test) != 0;
390 }
391 }