src/share/classes/com/sun/tools/classfile/AccessFlags.java

changeset 1565
d04960f05593
parent 972
694ff82ca68e
child 2227
998b10c43157
equal deleted inserted replaced
1564:aeadaf905d78 1565:d04960f05593
54 public static final int ACC_ABSTRACT = 0x0400; // class, inner, method 54 public static final int ACC_ABSTRACT = 0x0400; // class, inner, method
55 public static final int ACC_STRICT = 0x0800; // method 55 public static final int ACC_STRICT = 0x0800; // method
56 public static final int ACC_SYNTHETIC = 0x1000; // class, inner, field, method 56 public static final int ACC_SYNTHETIC = 0x1000; // class, inner, field, method
57 public static final int ACC_ANNOTATION = 0x2000; // class, inner 57 public static final int ACC_ANNOTATION = 0x2000; // class, inner
58 public static final int ACC_ENUM = 0x4000; // class, inner, field 58 public static final int ACC_ENUM = 0x4000; // class, inner, field
59 public static final int ACC_MODULE = 0x8000; // class, inner, field, method 59 public static final int ACC_MANDATED = 0x8000; // class, inner, field, method
60 60
61 public static enum Kind { Class, InnerClass, Field, Method}; 61 public static enum Kind { Class, InnerClass, Field, Method};
62 62
63 AccessFlags(ClassReader cr) throws IOException { 63 AccessFlags(ClassReader cr) throws IOException {
64 this(cr.readUnsignedShort()); 64 this(cr.readUnsignedShort());
79 public int byteLength() { 79 public int byteLength() {
80 return 2; 80 return 2;
81 } 81 }
82 82
83 private static final int[] classModifiers = { 83 private static final int[] classModifiers = {
84 ACC_PUBLIC, ACC_FINAL, ACC_ABSTRACT, ACC_MODULE 84 ACC_PUBLIC, ACC_FINAL, ACC_ABSTRACT
85 }; 85 };
86 86
87 private static final int[] classFlags = { 87 private static final int[] classFlags = {
88 ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_INTERFACE, ACC_ABSTRACT, 88 ACC_PUBLIC, ACC_FINAL, ACC_SUPER, ACC_INTERFACE, ACC_ABSTRACT,
89 ACC_SYNTHETIC, ACC_ANNOTATION, ACC_ENUM, ACC_MODULE 89 ACC_SYNTHETIC, ACC_ANNOTATION, ACC_ENUM
90 }; 90 };
91 91
92 public Set<String> getClassModifiers() { 92 public Set<String> getClassModifiers() {
93 int f = ((flags & ACC_INTERFACE) != 0 ? flags & ~ACC_ABSTRACT : flags); 93 int f = ((flags & ACC_INTERFACE) != 0 ? flags & ~ACC_ABSTRACT : flags);
94 return getModifiers(f, classModifiers, Kind.Class); 94 return getModifiers(f, classModifiers, Kind.Class);
98 return getFlags(classFlags, Kind.Class); 98 return getFlags(classFlags, Kind.Class);
99 } 99 }
100 100
101 private static final int[] innerClassModifiers = { 101 private static final int[] innerClassModifiers = {
102 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL, 102 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL,
103 ACC_ABSTRACT, ACC_MODULE 103 ACC_ABSTRACT
104 }; 104 };
105 105
106 private static final int[] innerClassFlags = { 106 private static final int[] innerClassFlags = {
107 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL, ACC_SUPER, 107 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL, ACC_SUPER,
108 ACC_INTERFACE, ACC_ABSTRACT, ACC_SYNTHETIC, ACC_ANNOTATION, ACC_ENUM, ACC_MODULE 108 ACC_INTERFACE, ACC_ABSTRACT, ACC_SYNTHETIC, ACC_ANNOTATION, ACC_ENUM
109 }; 109 };
110 110
111 public Set<String> getInnerClassModifiers() { 111 public Set<String> getInnerClassModifiers() {
112 int f = ((flags & ACC_INTERFACE) != 0 ? flags & ~ACC_ABSTRACT : flags); 112 int f = ((flags & ACC_INTERFACE) != 0 ? flags & ~ACC_ABSTRACT : flags);
113 return getModifiers(f, innerClassModifiers, Kind.InnerClass); 113 return getModifiers(f, innerClassModifiers, Kind.InnerClass);
117 return getFlags(innerClassFlags, Kind.InnerClass); 117 return getFlags(innerClassFlags, Kind.InnerClass);
118 } 118 }
119 119
120 private static final int[] fieldModifiers = { 120 private static final int[] fieldModifiers = {
121 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL, 121 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL,
122 ACC_VOLATILE, ACC_TRANSIENT, ACC_MODULE 122 ACC_VOLATILE, ACC_TRANSIENT
123 }; 123 };
124 124
125 private static final int[] fieldFlags = { 125 private static final int[] fieldFlags = {
126 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL, 126 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL,
127 ACC_VOLATILE, ACC_TRANSIENT, ACC_SYNTHETIC, ACC_ENUM, ACC_MODULE 127 ACC_VOLATILE, ACC_TRANSIENT, ACC_SYNTHETIC, ACC_ENUM
128 }; 128 };
129 129
130 public Set<String> getFieldModifiers() { 130 public Set<String> getFieldModifiers() {
131 return getModifiers(fieldModifiers, Kind.Field); 131 return getModifiers(fieldModifiers, Kind.Field);
132 } 132 }
135 return getFlags(fieldFlags, Kind.Field); 135 return getFlags(fieldFlags, Kind.Field);
136 } 136 }
137 137
138 private static final int[] methodModifiers = { 138 private static final int[] methodModifiers = {
139 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL, 139 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL,
140 ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT, ACC_STRICT, ACC_MODULE 140 ACC_SYNCHRONIZED, ACC_NATIVE, ACC_ABSTRACT, ACC_STRICT
141 }; 141 };
142 142
143 private static final int[] methodFlags = { 143 private static final int[] methodFlags = {
144 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL, 144 ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL,
145 ACC_SYNCHRONIZED, ACC_BRIDGE, ACC_VARARGS, ACC_NATIVE, ACC_ABSTRACT, 145 ACC_SYNCHRONIZED, ACC_BRIDGE, ACC_VARARGS, ACC_NATIVE, ACC_ABSTRACT,
146 ACC_STRICT, ACC_SYNTHETIC, ACC_MODULE 146 ACC_STRICT, ACC_SYNTHETIC
147 }; 147 };
148 148
149 public Set<String> getMethodModifiers() { 149 public Set<String> getMethodModifiers() {
150 return getModifiers(methodModifiers, Kind.Method); 150 return getModifiers(methodModifiers, Kind.Method);
151 } 151 }
206 return "native"; 206 return "native";
207 case ACC_ABSTRACT: 207 case ACC_ABSTRACT:
208 return "abstract"; 208 return "abstract";
209 case ACC_STRICT: 209 case ACC_STRICT:
210 return "strictfp"; 210 return "strictfp";
211 case ACC_MODULE: 211 case ACC_MANDATED:
212 return "module"; 212 return "mandated";
213 default: 213 default:
214 return null; 214 return null;
215 } 215 }
216 } 216 }
217 217
245 return "ACC_SYNTHETIC"; 245 return "ACC_SYNTHETIC";
246 case ACC_ANNOTATION: 246 case ACC_ANNOTATION:
247 return "ACC_ANNOTATION"; 247 return "ACC_ANNOTATION";
248 case ACC_ENUM: 248 case ACC_ENUM:
249 return "ACC_ENUM"; 249 return "ACC_ENUM";
250 case ACC_MODULE: 250 case ACC_MANDATED:
251 return "ACC_MODULE"; 251 return "ACC_MANDATED";
252 default: 252 default:
253 return null; 253 return null;
254 } 254 }
255 } 255 }
256 256

mercurial