< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/code/Kinds.java

Print this page

187         private KindSelector(int data) {
188             this.data = (byte) data;
189         }
190 
191         public static KindSelector of(KindSelector... kindSelectors) {
192             byte newData = 0;
193             for (KindSelector kindSel : kindSelectors) {
194                 newData |= kindSel.data;
195             }
196             return new KindSelector(newData);
197         }
198 
199         public boolean subset(KindSelector other) {
200             return (data & ~other.data) == 0;
201         }
202 
203         public boolean contains(KindSelector other) {
204             return (data & other.data) != 0;
205         }
206 




207         /** A set of KindName(s) representing a set of symbol's kinds. */
208         public Set<KindName> kindNames() {
209             EnumSet<KindName> kinds = EnumSet.noneOf(KindName.class);
210             if ((data & VAL.data) != 0) {
211                 if ((data & VAL.data) == VAR.data) kinds.add(KindName.VAR);
212                 else kinds.add(KindName.VAL);
213             }
214             if ((data & MTH.data) != 0) kinds.add(KindName.METHOD);
215             if ((data & TYP.data) != 0) kinds.add(KindName.CLASS);
216             if ((data & PCK.data) != 0) kinds.add(KindName.PACKAGE);
217             if ((data & MDL.data) != 0) kinds.add(KindName.MODULE);
218             return kinds;
219         }
220     }
221 
222     public enum KindName implements Formattable {
223         ANNOTATION("kindname.annotation"),
224         CONSTRUCTOR("kindname.constructor"),
225         INTERFACE("kindname.interface"),
226         ENUM("kindname.enum"),

187         private KindSelector(int data) {
188             this.data = (byte) data;
189         }
190 
191         public static KindSelector of(KindSelector... kindSelectors) {
192             byte newData = 0;
193             for (KindSelector kindSel : kindSelectors) {
194                 newData |= kindSel.data;
195             }
196             return new KindSelector(newData);
197         }
198 
199         public boolean subset(KindSelector other) {
200             return (data & ~other.data) == 0;
201         }
202 
203         public boolean contains(KindSelector other) {
204             return (data & other.data) != 0;
205         }
206 
207         public boolean isAssignment() {
208             return ASG.subset(this) && !VAL.subset(this);
209         }
210 
211         /** A set of KindName(s) representing a set of symbol's kinds. */
212         public Set<KindName> kindNames() {
213             EnumSet<KindName> kinds = EnumSet.noneOf(KindName.class);
214             if ((data & VAL.data) != 0) {
215                 if ((data & VAL.data) == VAR.data) kinds.add(KindName.VAR);
216                 else kinds.add(KindName.VAL);
217             }
218             if ((data & MTH.data) != 0) kinds.add(KindName.METHOD);
219             if ((data & TYP.data) != 0) kinds.add(KindName.CLASS);
220             if ((data & PCK.data) != 0) kinds.add(KindName.PACKAGE);
221             if ((data & MDL.data) != 0) kinds.add(KindName.MODULE);
222             return kinds;
223         }
224     }
225 
226     public enum KindName implements Formattable {
227         ANNOTATION("kindname.annotation"),
228         CONSTRUCTOR("kindname.constructor"),
229         INTERFACE("kindname.interface"),
230         ENUM("kindname.enum"),
< prev index next >