com.sun.tools.javac.code
Class Flags

java.lang.Object
  extended by com.sun.tools.javac.code.Flags

public class Flags
extends java.lang.Object

Access flags and other modifiers for Java classes and members.

This is NOT part of any API supported by Sun Microsystems. If you write code that depends on this, you do so at your own risk. This code and its internal interfaces are subject to change or deletion without notice.


Nested Class Summary
static class Flags.Flag
           
 
Field Summary
static int ABSTRACT
           
static int ACC_BRIDGE
           
static int ACC_SUPER
           
static int ACC_VARARGS
           
static int AccessFlags
          Modifier masks.
static int ACYCLIC
          Flag for class symbols to indicate it has been checked and found acyclic.
static long ACYCLIC_ANN
          Flag for annotation type symbols to indicate it has been checked and found acyclic.
static int AllowedInterfaceMethodFlags
          Modifier masks.
static int ANNOTATION
          Flag that marks attribute interfaces, added in classfile v49.0.
static int ANONCONSTR
          Flag for synthesized default constructors of anonymous classes.
static int BLOCK
          Flag is set for compiler-generated anonymous method symbols that `own' an initializer block.
static long BRIDGE
          Flag that marks bridge methods.
static int CLASS_SEEN
          Flag is set for class symbols if a class file was found for this class.
static int ClassFlags
          Modifier masks.
static int COMPOUND
          Flag is set for compiler-generated compound classes representing multiple variable bounds
static int ConstructorFlags
          Modifier masks.
static int DEPRECATED
          Flag is set if symbol is deprecated.
static int ENUM
          An enumeration type or an enumeration constant, added in classfile v49.0.
static int EXISTS
          Flag is set for package symbols if a package has a member or directory and therefore exists.
static int FINAL
           
static long GENERATEDCONSTR
          Flag that marks a generated default constructor.
static int HASINIT
          Flag is set for a variable symbol if the variable's definition has an initializer part.
static long HYPOTHETICAL
          Flag that marks a hypothetical method that need not really be generated in the binary, but is present in the symbol table to simplify checking for erasure clashes.
static int ImplicitInterfaceMethodFlags
          Modifier masks.
static int INTERFACE
           
static int InterfaceVarFlags
          Modifier masks.
static int IPROXY
          Flag is set for compiler-generated abstract methods that implement an interface method (Miranda methods).
static int LocalClassFlags
          Modifier masks.
static long LocalVarFlags
           
static int LOCKED
          Flag for class symbols is set and later re-set as a lock in Enter to detect cycles in the superclass/superinterface relations.
static int MemberClassFlags
          Modifier masks.
static int MethodFlags
          Modifier masks.
private static java.util.Map<java.lang.Long,java.util.Set<Modifier>> modifierSets
           
static int NATIVE
           
static int NOOUTERTHIS
          Flag is set for nested classes that do not access instance members or `this' of an outer class and therefore don't need to be passed a this$n reference.
static long PARAMETER
          Flag that marks formal parameters.
static int PRIVATE
           
static long PROPRIETARY
          Flag that marks a Sun proprietary class.
static int PROTECTED
           
static int PUBLIC
           
static int SEPARABLE
           
static int SOURCE_SEEN
          Flag is set for class symbols if a source file was found for this class.
static int StandardFlags
           
static int STATIC
           
static int STRICTFP
           
static int SYNCHRONIZED
           
static int SYNTHETIC
           
static int TRANSIENT
           
static int UNATTRIBUTED
          Flag for class symbols is set and later re-set to indicate that a class has been entered but has not yet been attributed.
static long VARARGS
          Flag that marks varargs methods.
static int VarFlags
          Modifier masks.
static int VOLATILE
           
 
Constructor Summary
private Flags()
           
 
Method Summary
static java.util.EnumSet<Flags.Flag> asFlagSet(long mask)
           
static java.util.Set<Modifier> asModifierSet(long flags)
           
static boolean isConstant(Symbol.VarSymbol symbol)
           
static boolean isEnum(Symbol symbol)
           
static boolean isStatic(Symbol symbol)
           
static java.lang.String toString(long flags)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PUBLIC

public static final int PUBLIC
See Also:
Constant Field Values

PRIVATE

public static final int PRIVATE
See Also:
Constant Field Values

PROTECTED

public static final int PROTECTED
See Also:
Constant Field Values

STATIC

public static final int STATIC
See Also:
Constant Field Values

FINAL

public static final int FINAL
See Also:
Constant Field Values

SYNCHRONIZED

public static final int SYNCHRONIZED
See Also:
Constant Field Values

VOLATILE

public static final int VOLATILE
See Also:
Constant Field Values

TRANSIENT

public static final int TRANSIENT
See Also:
Constant Field Values

NATIVE

public static final int NATIVE
See Also:
Constant Field Values

INTERFACE

public static final int INTERFACE
See Also:
Constant Field Values

ABSTRACT

public static final int ABSTRACT
See Also:
Constant Field Values

STRICTFP

public static final int STRICTFP
See Also:
Constant Field Values

SYNTHETIC

public static final int SYNTHETIC
See Also:
Constant Field Values

ANNOTATION

public static final int ANNOTATION
Flag that marks attribute interfaces, added in classfile v49.0.

See Also:
Constant Field Values

ENUM

public static final int ENUM
An enumeration type or an enumeration constant, added in classfile v49.0.

See Also:
Constant Field Values

SEPARABLE

public static final int SEPARABLE
See Also:
Constant Field Values

StandardFlags

public static final int StandardFlags
See Also:
Constant Field Values

ACC_SUPER

public static final int ACC_SUPER
See Also:
Constant Field Values

ACC_BRIDGE

public static final int ACC_BRIDGE
See Also:
Constant Field Values

ACC_VARARGS

public static final int ACC_VARARGS
See Also:
Constant Field Values

DEPRECATED

public static final int DEPRECATED
Flag is set if symbol is deprecated.

See Also:
Constant Field Values

HASINIT

public static final int HASINIT
Flag is set for a variable symbol if the variable's definition has an initializer part.

See Also:
Constant Field Values

BLOCK

public static final int BLOCK
Flag is set for compiler-generated anonymous method symbols that `own' an initializer block.

See Also:
Constant Field Values

IPROXY

public static final int IPROXY
Flag is set for compiler-generated abstract methods that implement an interface method (Miranda methods).

See Also:
Constant Field Values

NOOUTERTHIS

public static final int NOOUTERTHIS
Flag is set for nested classes that do not access instance members or `this' of an outer class and therefore don't need to be passed a this$n reference. This flag is currently set only for anonymous classes in superclass constructor calls and only for pre 1.4 targets. todo: use this flag for optimizing away this$n parameters in other cases.

See Also:
Constant Field Values

EXISTS

public static final int EXISTS
Flag is set for package symbols if a package has a member or directory and therefore exists.

See Also:
Constant Field Values

COMPOUND

public static final int COMPOUND
Flag is set for compiler-generated compound classes representing multiple variable bounds

See Also:
Constant Field Values

CLASS_SEEN

public static final int CLASS_SEEN
Flag is set for class symbols if a class file was found for this class.

See Also:
Constant Field Values

SOURCE_SEEN

public static final int SOURCE_SEEN
Flag is set for class symbols if a source file was found for this class.

See Also:
Constant Field Values

LOCKED

public static final int LOCKED
Flag for class symbols is set and later re-set as a lock in Enter to detect cycles in the superclass/superinterface relations. Similarly for constructor call cycle detection in Attr.

See Also:
Constant Field Values

UNATTRIBUTED

public static final int UNATTRIBUTED
Flag for class symbols is set and later re-set to indicate that a class has been entered but has not yet been attributed.

See Also:
Constant Field Values

ANONCONSTR

public static final int ANONCONSTR
Flag for synthesized default constructors of anonymous classes.

See Also:
Constant Field Values

ACYCLIC

public static final int ACYCLIC
Flag for class symbols to indicate it has been checked and found acyclic.

See Also:
Constant Field Values

BRIDGE

public static final long BRIDGE
Flag that marks bridge methods.

See Also:
Constant Field Values

PARAMETER

public static final long PARAMETER
Flag that marks formal parameters.

See Also:
Constant Field Values

VARARGS

public static final long VARARGS
Flag that marks varargs methods.

See Also:
Constant Field Values

ACYCLIC_ANN

public static final long ACYCLIC_ANN
Flag for annotation type symbols to indicate it has been checked and found acyclic.

See Also:
Constant Field Values

GENERATEDCONSTR

public static final long GENERATEDCONSTR
Flag that marks a generated default constructor.

See Also:
Constant Field Values

HYPOTHETICAL

public static final long HYPOTHETICAL
Flag that marks a hypothetical method that need not really be generated in the binary, but is present in the symbol table to simplify checking for erasure clashes.

See Also:
Constant Field Values

PROPRIETARY

public static final long PROPRIETARY
Flag that marks a Sun proprietary class.

See Also:
Constant Field Values

AccessFlags

public static final int AccessFlags
Modifier masks.

See Also:
Constant Field Values

LocalClassFlags

public static final int LocalClassFlags
Modifier masks.

See Also:
Constant Field Values

MemberClassFlags

public static final int MemberClassFlags
Modifier masks.

See Also:
Constant Field Values

ClassFlags

public static final int ClassFlags
Modifier masks.

See Also:
Constant Field Values

InterfaceVarFlags

public static final int InterfaceVarFlags
Modifier masks.

See Also:
Constant Field Values

VarFlags

public static final int VarFlags
Modifier masks.

See Also:
Constant Field Values

ConstructorFlags

public static final int ConstructorFlags
Modifier masks.

See Also:
Constant Field Values

AllowedInterfaceMethodFlags

public static final int AllowedInterfaceMethodFlags
Modifier masks.

See Also:
Constant Field Values

ImplicitInterfaceMethodFlags

public static final int ImplicitInterfaceMethodFlags
Modifier masks.

See Also:
Constant Field Values

MethodFlags

public static final int MethodFlags
Modifier masks.

See Also:
Constant Field Values

LocalVarFlags

public static final long LocalVarFlags
See Also:
Constant Field Values

modifierSets

private static java.util.Map<java.lang.Long,java.util.Set<Modifier>> modifierSets
Constructor Detail

Flags

private Flags()
Method Detail

toString

public static java.lang.String toString(long flags)

asFlagSet

public static java.util.EnumSet<Flags.Flag> asFlagSet(long mask)

asModifierSet

public static java.util.Set<Modifier> asModifierSet(long flags)

isStatic

public static boolean isStatic(Symbol symbol)

isEnum

public static boolean isEnum(Symbol symbol)

isConstant

public static boolean isConstant(Symbol.VarSymbol symbol)