src/share/classes/com/sun/tools/javac/code/Flags.java

Print this page




  57     public static EnumSet<Flag> asFlagSet(long mask) {
  58         EnumSet<Flag> flags = EnumSet.noneOf(Flag.class);
  59         if ((mask&PUBLIC) != 0) flags.add(Flag.PUBLIC);
  60         if ((mask&PRIVATE) != 0) flags.add(Flag.PRIVATE);
  61         if ((mask&PROTECTED) != 0) flags.add(Flag.PROTECTED);
  62         if ((mask&STATIC) != 0) flags.add(Flag.STATIC);
  63         if ((mask&FINAL) != 0) flags.add(Flag.FINAL);
  64         if ((mask&SYNCHRONIZED) != 0) flags.add(Flag.SYNCHRONIZED);
  65         if ((mask&VOLATILE) != 0) flags.add(Flag.VOLATILE);
  66         if ((mask&TRANSIENT) != 0) flags.add(Flag.TRANSIENT);
  67         if ((mask&NATIVE) != 0) flags.add(Flag.NATIVE);
  68         if ((mask&INTERFACE) != 0) flags.add(Flag.INTERFACE);
  69         if ((mask&ABSTRACT) != 0) flags.add(Flag.ABSTRACT);
  70         if ((mask&DEFAULT) != 0) flags.add(Flag.DEFAULT);
  71         if ((mask&STRICTFP) != 0) flags.add(Flag.STRICTFP);
  72         if ((mask&BRIDGE) != 0) flags.add(Flag.BRIDGE);
  73         if ((mask&SYNTHETIC) != 0) flags.add(Flag.SYNTHETIC);
  74         if ((mask&DEPRECATED) != 0) flags.add(Flag.DEPRECATED);
  75         if ((mask&HASINIT) != 0) flags.add(Flag.HASINIT);
  76         if ((mask&ENUM) != 0) flags.add(Flag.ENUM);

  77         if ((mask&IPROXY) != 0) flags.add(Flag.IPROXY);
  78         if ((mask&NOOUTERTHIS) != 0) flags.add(Flag.NOOUTERTHIS);
  79         if ((mask&EXISTS) != 0) flags.add(Flag.EXISTS);
  80         if ((mask&COMPOUND) != 0) flags.add(Flag.COMPOUND);
  81         if ((mask&CLASS_SEEN) != 0) flags.add(Flag.CLASS_SEEN);
  82         if ((mask&SOURCE_SEEN) != 0) flags.add(Flag.SOURCE_SEEN);
  83         if ((mask&LOCKED) != 0) flags.add(Flag.LOCKED);
  84         if ((mask&UNATTRIBUTED) != 0) flags.add(Flag.UNATTRIBUTED);
  85         if ((mask&ANONCONSTR) != 0) flags.add(Flag.ANONCONSTR);
  86         if ((mask&ACYCLIC) != 0) flags.add(Flag.ACYCLIC);
  87         if ((mask&PARAMETER) != 0) flags.add(Flag.PARAMETER);
  88         if ((mask&VARARGS) != 0) flags.add(Flag.VARARGS);
  89         return flags;
  90     }
  91 
  92     /* Standard Java flags.
  93      */
  94     public static final int PUBLIC       = 1<<0;
  95     public static final int PRIVATE      = 1<<1;
  96     public static final int PROTECTED    = 1<<2;
  97     public static final int STATIC       = 1<<3;
  98     public static final int FINAL        = 1<<4;
  99     public static final int SYNCHRONIZED = 1<<5;
 100     public static final int VOLATILE     = 1<<6;
 101     public static final int TRANSIENT    = 1<<7;
 102     public static final int NATIVE       = 1<<8;
 103     public static final int INTERFACE    = 1<<9;
 104     public static final int ABSTRACT     = 1<<10;
 105     public static final int STRICTFP     = 1<<11;
 106 
 107     /* Flag that marks a symbol synthetic, added in classfile v49.0. */
 108     public static final int SYNTHETIC    = 1<<12;
 109 
 110     /** Flag that marks attribute interfaces, added in classfile v49.0. */
 111     public static final int ANNOTATION   = 1<<13;
 112 
 113     /** An enumeration type or an enumeration constant, added in
 114      *  classfile v49.0. */
 115     public static final int ENUM         = 1<<14;
 116 



 117     public static final int StandardFlags = 0x0fff;
 118     public static final int ModifierFlags = StandardFlags & ~INTERFACE;
 119 
 120     // Because the following access flags are overloaded with other
 121     // bit positions, we translate them when reading and writing class
 122     // files into unique bits positions: ACC_SYNTHETIC <-> SYNTHETIC,
 123     // for example.
 124     public static final int ACC_SUPER    = 0x0020;
 125     public static final int ACC_BRIDGE   = 0x0040;
 126     public static final int ACC_VARARGS  = 0x0080;
 127 
 128     /*****************************************
 129      * Internal compiler flags (no bits in the lower 16).
 130      *****************************************/
 131 
 132     /** Flag is set if symbol is deprecated.
 133      */
 134     public static final int DEPRECATED   = 1<<17;
 135 
 136     /** Flag is set for a variable symbol if the variable's definition


 325     public enum Flag {
 326 
 327         PUBLIC("public"),
 328         PRIVATE("private"),
 329         PROTECTED("protected"),
 330         STATIC("static"),
 331         FINAL("final"),
 332         SYNCHRONIZED("synchronized"),
 333         VOLATILE("volatile"),
 334         TRANSIENT("transient"),
 335         NATIVE("native"),
 336         INTERFACE("interface"),
 337         ABSTRACT("abstract"),
 338         DEFAULT("default"),
 339         STRICTFP("strictfp"),
 340         BRIDGE("bridge"),
 341         SYNTHETIC("synthetic"),
 342         DEPRECATED("deprecated"),
 343         HASINIT("hasinit"),
 344         ENUM("enum"),

 345         IPROXY("iproxy"),
 346         NOOUTERTHIS("noouterthis"),
 347         EXISTS("exists"),
 348         COMPOUND("compound"),
 349         CLASS_SEEN("class_seen"),
 350         SOURCE_SEEN("source_seen"),
 351         LOCKED("locked"),
 352         UNATTRIBUTED("unattributed"),
 353         ANONCONSTR("anonconstr"),
 354         ACYCLIC("acyclic"),
 355         PARAMETER("parameter"),
 356         VARARGS("varargs"),
 357         PACKAGE("package");
 358 
 359         private final String name;
 360 
 361         Flag(String name) {
 362             this.name = name;
 363         }
 364 


  57     public static EnumSet<Flag> asFlagSet(long mask) {
  58         EnumSet<Flag> flags = EnumSet.noneOf(Flag.class);
  59         if ((mask&PUBLIC) != 0) flags.add(Flag.PUBLIC);
  60         if ((mask&PRIVATE) != 0) flags.add(Flag.PRIVATE);
  61         if ((mask&PROTECTED) != 0) flags.add(Flag.PROTECTED);
  62         if ((mask&STATIC) != 0) flags.add(Flag.STATIC);
  63         if ((mask&FINAL) != 0) flags.add(Flag.FINAL);
  64         if ((mask&SYNCHRONIZED) != 0) flags.add(Flag.SYNCHRONIZED);
  65         if ((mask&VOLATILE) != 0) flags.add(Flag.VOLATILE);
  66         if ((mask&TRANSIENT) != 0) flags.add(Flag.TRANSIENT);
  67         if ((mask&NATIVE) != 0) flags.add(Flag.NATIVE);
  68         if ((mask&INTERFACE) != 0) flags.add(Flag.INTERFACE);
  69         if ((mask&ABSTRACT) != 0) flags.add(Flag.ABSTRACT);
  70         if ((mask&DEFAULT) != 0) flags.add(Flag.DEFAULT);
  71         if ((mask&STRICTFP) != 0) flags.add(Flag.STRICTFP);
  72         if ((mask&BRIDGE) != 0) flags.add(Flag.BRIDGE);
  73         if ((mask&SYNTHETIC) != 0) flags.add(Flag.SYNTHETIC);
  74         if ((mask&DEPRECATED) != 0) flags.add(Flag.DEPRECATED);
  75         if ((mask&HASINIT) != 0) flags.add(Flag.HASINIT);
  76         if ((mask&ENUM) != 0) flags.add(Flag.ENUM);
  77         if ((mask&MANDATED) != 0) flags.add(Flag.MANDATED);
  78         if ((mask&IPROXY) != 0) flags.add(Flag.IPROXY);
  79         if ((mask&NOOUTERTHIS) != 0) flags.add(Flag.NOOUTERTHIS);
  80         if ((mask&EXISTS) != 0) flags.add(Flag.EXISTS);
  81         if ((mask&COMPOUND) != 0) flags.add(Flag.COMPOUND);
  82         if ((mask&CLASS_SEEN) != 0) flags.add(Flag.CLASS_SEEN);
  83         if ((mask&SOURCE_SEEN) != 0) flags.add(Flag.SOURCE_SEEN);
  84         if ((mask&LOCKED) != 0) flags.add(Flag.LOCKED);
  85         if ((mask&UNATTRIBUTED) != 0) flags.add(Flag.UNATTRIBUTED);
  86         if ((mask&ANONCONSTR) != 0) flags.add(Flag.ANONCONSTR);
  87         if ((mask&ACYCLIC) != 0) flags.add(Flag.ACYCLIC);
  88         if ((mask&PARAMETER) != 0) flags.add(Flag.PARAMETER);
  89         if ((mask&VARARGS) != 0) flags.add(Flag.VARARGS);
  90         return flags;
  91     }
  92 
  93     /* Standard Java flags.
  94      */
  95     public static final int PUBLIC       = 1<<0;
  96     public static final int PRIVATE      = 1<<1;
  97     public static final int PROTECTED    = 1<<2;
  98     public static final int STATIC       = 1<<3;
  99     public static final int FINAL        = 1<<4;
 100     public static final int SYNCHRONIZED = 1<<5;
 101     public static final int VOLATILE     = 1<<6;
 102     public static final int TRANSIENT    = 1<<7;
 103     public static final int NATIVE       = 1<<8;
 104     public static final int INTERFACE    = 1<<9;
 105     public static final int ABSTRACT     = 1<<10;
 106     public static final int STRICTFP     = 1<<11;
 107 
 108     /* Flag that marks a symbol synthetic, added in classfile v49.0. */
 109     public static final int SYNTHETIC    = 1<<12;
 110 
 111     /** Flag that marks attribute interfaces, added in classfile v49.0. */
 112     public static final int ANNOTATION   = 1<<13;
 113 
 114     /** An enumeration type or an enumeration constant, added in
 115      *  classfile v49.0. */
 116     public static final int ENUM         = 1<<14;
 117 
 118     /** Added in SE8, represents constructs implicitly declared in source. */
 119     public static final int MANDATED     = 1<<15;
 120 
 121     public static final int StandardFlags = 0x0fff;
 122     public static final int ModifierFlags = StandardFlags & ~INTERFACE;
 123 
 124     // Because the following access flags are overloaded with other
 125     // bit positions, we translate them when reading and writing class
 126     // files into unique bits positions: ACC_SYNTHETIC <-> SYNTHETIC,
 127     // for example.
 128     public static final int ACC_SUPER    = 0x0020;
 129     public static final int ACC_BRIDGE   = 0x0040;
 130     public static final int ACC_VARARGS  = 0x0080;
 131 
 132     /*****************************************
 133      * Internal compiler flags (no bits in the lower 16).
 134      *****************************************/
 135 
 136     /** Flag is set if symbol is deprecated.
 137      */
 138     public static final int DEPRECATED   = 1<<17;
 139 
 140     /** Flag is set for a variable symbol if the variable's definition


 329     public enum Flag {
 330 
 331         PUBLIC("public"),
 332         PRIVATE("private"),
 333         PROTECTED("protected"),
 334         STATIC("static"),
 335         FINAL("final"),
 336         SYNCHRONIZED("synchronized"),
 337         VOLATILE("volatile"),
 338         TRANSIENT("transient"),
 339         NATIVE("native"),
 340         INTERFACE("interface"),
 341         ABSTRACT("abstract"),
 342         DEFAULT("default"),
 343         STRICTFP("strictfp"),
 344         BRIDGE("bridge"),
 345         SYNTHETIC("synthetic"),
 346         DEPRECATED("deprecated"),
 347         HASINIT("hasinit"),
 348         ENUM("enum"),
 349         MANDATED("mandated"),
 350         IPROXY("iproxy"),
 351         NOOUTERTHIS("noouterthis"),
 352         EXISTS("exists"),
 353         COMPOUND("compound"),
 354         CLASS_SEEN("class_seen"),
 355         SOURCE_SEEN("source_seen"),
 356         LOCKED("locked"),
 357         UNATTRIBUTED("unattributed"),
 358         ANONCONSTR("anonconstr"),
 359         ACYCLIC("acyclic"),
 360         PARAMETER("parameter"),
 361         VARARGS("varargs"),
 362         PACKAGE("package");
 363 
 364         private final String name;
 365 
 366         Flag(String name) {
 367             this.name = name;
 368         }
 369