public class TypeSystem_c extends java.lang.Object implements TypeSystem
TypeSystem
defines the types of the language and
how they are related.
Overview:
A TypeSystem_c
is a universe of types, including all Java types.Modifier and Type | Class and Description |
---|---|
protected static class |
TypeSystem_c.MostSpecificComparator<T extends ProcedureInstance>
Class to handle the comparisons; dispatches to moreSpecific method.
|
SERIALIZE_MEMBERS_WITH_CONTAINER
Constructor and Description |
---|
TypeSystem_c() |
Modifier and Type | Method and Description |
---|---|
Flags |
Abstract() |
protected java.util.List<ReferenceType> |
abstractSuperInterfaces(ReferenceType rt)
Utility method to gather all the superclasses and interfaces of
ct that may contain abstract methods that must be
implemented by ct . |
protected boolean |
accessibleFromPackage(Flags flags,
Package pkg1,
Package pkg2)
Return true if a member (in an accessible container) or a
top-level class with access flags
flags
in package pkg1 is accessible from package
pkg2 . |
ClassType |
ArithmeticException()
java.lang.ArithmeticException |
ArrayType |
arrayOf(Position pos,
Type type)
Return an array of
type |
ArrayType |
arrayOf(Position pos,
Type type,
int dims)
Return a
dims -array of type |
ArrayType |
arrayOf(Type type)
Return an array of
type |
ArrayType |
arrayOf(Type type,
int dims)
Return a
dims -array of type |
ClassType |
ArrayStoreException()
java.lang.ArrayStoreException |
protected ArrayType |
arrayType(Position pos,
Type type) |
protected void |
assert_(java.util.Collection<? extends TypeObject> l) |
protected void |
assert_(TypeObject o) |
PrimitiveType |
Boolean()
boolean |
PrimitiveType |
Byte()
byte |
boolean |
callValid(ProcedureInstance prototype,
java.util.List<? extends Type> argTypes)
Return true if
pi can be called with
actual parameters of types actualTypes . |
boolean |
canCoerceToString(Type t,
Context c)
Returns true iff the type t can be coerced to a String in the given
Context.
|
boolean |
canOverride(MethodInstance mi,
MethodInstance mj)
Return true if
mi can override mj . |
PrimitiveType |
Char()
char |
void |
checkAccessFlags(Flags f)
Assert if the flags
f are legal access flags. |
void |
checkClassConformance(ClassType ct)
Assert that
ct implements all abstract methods required;
that is, if it is a concrete class, then it must implement all
interfaces and abstract methods that it or its superclasses declare. |
protected void |
checkClassFlagsConflict(Flags f) |
void |
checkConstructorFlags(Flags f)
Assert if the flags
f are legal constructor flags. |
void |
checkCycles(ReferenceType goal)
Assert that
t has no cycles in the super type+nested class
graph starting at t . |
protected void |
checkCycles(ReferenceType curr,
ReferenceType goal) |
void |
checkFieldFlags(Flags f)
Assert if the flags
f are legal field flags. |
void |
checkInitializerFlags(Flags f)
Assert if the flags
f are legal initializer flags. |
void |
checkInterfaceFieldFlags(ClassType ct)
Assert that if
ct is an interface, its fields' flags is a subset
of public, static, final. |
void |
checkLocalClassFlags(Flags f)
Assert if the flags
f are legal local class flags. |
void |
checkLocalFlags(Flags f)
Assert if the flags
f are legal local variable flags. |
void |
checkMemberClassFlags(Flags f)
Assert if the flags
f are legal member class flags. |
void |
checkMethodFlags(Flags f)
Assert if the flags
f are legal method flags. |
void |
checkOverride(MethodInstance mi,
MethodInstance mj)
Throw a SemanticException if
mi cannot override
mj . |
void |
checkTopLevelClassFlags(Flags f)
Assert if the flags
f are legal top-level class flags. |
ClassType |
Class()
java.lang.Class |
boolean |
classAccessible(ClassType targetClass,
ClassType contextClass)
True if the class
targetClass accessible from the body of class
contextClass . |
boolean |
classAccessible(ClassType targetClass,
Context context)
Checks whether
targetClass can be accessed from context . |
boolean |
classAccessibleFromPackage(ClassType targetClass,
Package pkg)
Checks whether a top-level or member class can be accessed from the
package
pkg . |
ClassType |
ClassCastException()
java.lang.ClassCastException |
Resolver |
classContextResolver(ClassType type) |
Resolver |
classContextResolver(ClassType type,
ClassType accessor)
Get a resolver for looking up a type in a class context.
|
ClassFileLazyClassInitializer |
classFileLazyClassInitializer(ClassFile clazz)
Constructs a new ClassFileLazyClassInitializer for the given class file.
|
ClassType |
Cloneable()
java.lang.Cloneable |
ConstructorInstance |
constructorInstance(Position pos,
ClassType container,
Flags flags,
java.util.List<? extends Type> argTypes,
java.util.List<? extends Type> excTypes)
Create a constructor instance.
|
protected ArrayType |
createArrayType(Position pos,
Type type)
Factory method for ArrayTypes.
|
AccessControlResolver |
createClassContextResolver(ClassType type) |
ParsedClassType |
createClassType()
Create a new empty class.
|
ParsedClassType |
createClassType(LazyClassInitializer init)
Create a new empty class.
|
ParsedClassType |
createClassType(LazyClassInitializer init,
Source fromSource)
Create a new empty class.
|
ParsedClassType |
createClassType(Source fromSource)
Create a new empty class.
|
Context |
createContext()
Create a new context object for looking up variables, types, etc.
|
Flags |
createNewFlag(java.lang.String name,
Flags after)
Create a new unique Flags object.
|
protected NullType |
createNull() |
Package |
createPackage(Package prefix,
java.lang.String name)
Deprecated.
|
Package |
createPackage(java.lang.String name)
Deprecated.
|
AccessControlResolver |
createPackageContextResolver(Package p) |
protected PrimitiveType |
createPrimitive(PrimitiveType.Kind kind) |
LazyClassInitializer |
defaultClassInitializer()
The default lazy class initializer.
|
ConstructorInstance |
defaultConstructor(Position pos,
ClassType container)
Create a default constructor instance.
|
java.util.List<java.lang.String> |
defaultPackageImports()
Return a list of the packages names that will be imported by
default.
|
boolean |
descendsFrom(Type child,
Type ancestor)
Returns true iff child and ancestor are distinct,
but child descends from ancestor.
|
LazyClassInitializer |
deserializedClassInitializer()
The lazy class initializer for deserialized classes.
|
PrimitiveType |
Double()
double |
boolean |
equals(TypeObject type1,
TypeObject type2)
Returns true iff type1 and type2 represent the same type object.
|
ClassType |
Error()
java.lang.Error |
ClassType |
Exception()
java.lang.Exception |
ExtensionInfo |
extensionInfo()
Return the language extension this type system is for.
|
FieldInstance |
fieldInstance(Position pos,
ReferenceType container,
Flags flags,
Type type,
java.lang.String name)
Create a field instance.
|
Flags |
Final() |
protected java.util.List<? extends ConstructorInstance> |
findAcceptableConstructors(ClassType container,
java.util.List<? extends Type> argTypes,
ClassType currClass,
boolean fromClient)
Populates the list acceptable with those MethodInstances which are
Applicable and Accessible as defined by JLS 15.11.2.1
|
protected java.util.List<? extends MethodInstance> |
findAcceptableMethods(ReferenceType container,
java.lang.String name,
java.util.List<? extends Type> argTypes,
ClassType currClass,
boolean fromClient)
Populates the list acceptable with those MethodInstances which are
Applicable and Accessible as defined by JLS 15.12.2.1
|
ConstructorInstance |
findConstructor(ClassType container,
java.util.List<? extends Type> argTypes,
ClassType currClass)
Deprecated.
|
ConstructorInstance |
findConstructor(ClassType container,
java.util.List<? extends Type> argTypes,
ClassType currClass,
boolean fromClient)
Find a constructor.
|
ConstructorInstance |
findConstructor(ClassType container,
java.util.List<? extends Type> argTypes,
Context c)
Deprecated.
|
FieldInstance |
findField(ReferenceType container,
java.lang.String name)
Deprecated.
|
FieldInstance |
findField(ReferenceType container,
java.lang.String name,
ClassType currClass)
Deprecated.
|
FieldInstance |
findField(ReferenceType container,
java.lang.String name,
ClassType currClass,
boolean fromClient)
Returns the FieldInstance for the field
name defined
in type container or a supertype, and visible from
currClass . |
FieldInstance |
findField(ReferenceType container,
java.lang.String name,
Context c)
Deprecated.
|
protected java.util.Set<FieldInstance> |
findFields(ReferenceType container,
java.lang.String name)
Returns a set of fields named
name defined
in type container or a supertype. |
MethodInstance |
findImplementingMethod(ClassType ct,
MethodInstance mi)
Find a potentially suitable implementation of the method
mi
in the class ct or a supertype thereof. |
ClassType |
findMemberClass(ClassType container,
java.lang.String name)
Find a member class.
|
ClassType |
findMemberClass(ClassType container,
java.lang.String name,
ClassType currClass)
Find a member class.
|
ClassType |
findMemberClass(ClassType container,
java.lang.String name,
Context c)
Deprecated.
|
MethodInstance |
findMethod(ReferenceType container,
java.lang.String name,
java.util.List<? extends Type> argTypes,
ClassType currClass)
Deprecated.
|
MethodInstance |
findMethod(ReferenceType container,
java.lang.String name,
java.util.List<? extends Type> argTypes,
ClassType currClass,
boolean fromClient)
Requires: all type arguments are canonical.
|
MethodInstance |
findMethod(ReferenceType container,
java.lang.String name,
java.util.List<? extends Type> argTypes,
Context c)
Deprecated.
|
protected <Instance extends ProcedureInstance> |
findMostSpecificProcedures(java.util.List<Instance> acceptable) |
protected <I extends ProcedureInstance> |
findProcedure(java.util.List<I> acceptable,
ReferenceType container,
java.util.List<Type> argTypes,
ClassType currClass) |
Flags |
flagsForBits(int bits)
Given the JVM encoding of a set of flags, returns the Flags object
for that encoding.
|
Flags |
flagsForName(java.lang.String name) |
PrimitiveType |
Float()
float |
protected Named |
forName(Resolver resolver,
java.lang.String name) |
Named |
forName(java.lang.String name)
Get the named type object with the following name.
|
java.lang.String |
getTransformedClassName(ClassType ct)
Get the transformed class name of a class.
|
java.util.Set<TypeObject> |
getTypeEncoderRootSet(TypeObject t)
Return the set of objects that should be serialized into the
type information for the given TypeObject.
|
boolean |
hasAccessibleMethodNamed(ReferenceType container,
java.lang.String name,
ClassType currClass)
Returns true iff
t has a method with name name
either defined in t or inherited into it that is accessible from currClass. |
boolean |
hasEnclosingInstance(ClassType inner,
ClassType encl)
Returns whether an object of the inner class
inner has an
enclosing instance of class encl . |
boolean |
hasFormals(ProcedureInstance pi,
java.util.List<? extends Type> formalTypes)
Returns true iff
pi has exactly the formal arguments
formalTypes . |
boolean |
hasMethod(ReferenceType t,
MethodInstance mi)
Returns true iff
t has the method mi . |
boolean |
hasMethodNamed(ReferenceType container,
java.lang.String name)
Returns true iff
container has a method with name name
either defined in container or inherited into it. |
java.util.List<MethodInstance> |
implemented(MethodInstance mi)
Get the list of methods
mi implements, in no
specified order. |
ImportTable |
importTable(Package pkg)
Create an import table for the source file.
|
ImportTable |
importTable(java.lang.String sourceName,
Package pkg)
Create an import table for the source file.
|
protected void |
initEnums() |
protected void |
initFlags() |
void |
initialize(TopLevelResolver loadedResolver,
ExtensionInfo extInfo)
Initialize the type system with the compiler and its internal constants
(which depend on the resolver).
|
InitializerInstance |
initializerInstance(Position pos,
ClassType container,
Flags flags)
Create an initializer instance.
|
protected void |
initTypes() |
PrimitiveType |
Int()
int |
Flags |
Interface() |
java.util.List<? extends Type> |
interfaces(ReferenceType type)
Returns an immutable list of all the interface types which type
implements.
|
boolean |
isAccessible(MemberInstance mi,
ClassType contextClass)
Checks whether a class member can be accessed from code that is
declared in the class
contextClass . |
boolean |
isAccessible(MemberInstance mi,
ClassType contextClass,
boolean fromClient)
Checks whether a class member can be accessed from code that is
declared in the class
contextClass . |
boolean |
isAccessible(MemberInstance mi,
Context context)
Checks whether a class member can be accessed from
context . |
boolean |
isAccessible(MemberInstance mi,
ReferenceType container,
ClassType contextClass)
Checks whether a class member mi, which is declared in container or
an ancestor of container, can be accessed from code that is declared
in class
contextClass , accessing it via the type container. |
boolean |
isAccessible(MemberInstance mi,
ReferenceType container,
ReferenceType contextType,
boolean fromClient)
Checks whether a member mi, which is declared in container or
an ancestor of container, can be accessed from code that is declared
in type
context . |
boolean |
isCanonical(Type type)
Returns true iff
type is a canonical
(fully qualified) type. |
boolean |
isCastValid(Type fromType,
Type toType)
Requires: all type arguments are canonical, and toType is not a NullType.
|
boolean |
isEnclosed(ClassType inner,
ClassType outer)
Returns whether inner is enclosed within outer
|
boolean |
isImplicitCastValid(Type fromType,
Type toType)
Requires: all type arguments are canonical.
|
boolean |
isInherited(MemberInstance mi,
ReferenceType type)
Returns whether member
mi is inherited by reference type type . |
boolean |
isMember(MemberInstance mi,
ReferenceType type)
Returns whether member
mi is a member of reference type
type , either by definition or by inheritance. |
boolean |
isSameMethod(MethodInstance m1,
MethodInstance m2)
Returns true iff
m1 is the same method as m2 . |
boolean |
isSubtype(Type t1,
Type t2)
Returns true iff child descends from ancestor or child == ancestor.
|
boolean |
isThrowable(Type type)
Returns true iff an object of type
type may be thrown. |
boolean |
isUncheckedException(Type type)
Returns a true iff the type or a supertype is in the list
returned by
TypeSystem.uncheckedExceptions() . |
Type |
leastCommonAncestor(Type type1,
Type type2)
Requires: all type arguments are canonical.
|
Flags |
legalAbstractMethodFlags()
All flags allowed for an abstract method.
|
Flags |
legalAccessFlags()
All possible access flags.
|
Flags |
legalConstructorFlags()
All flags allowed for a constructor.
|
Flags |
legalFieldFlags()
All flags allowed for a field.
|
Flags |
legalInitializerFlags()
All flags allowed for an initializer block.
|
Flags |
legalInterfaceFieldFlags()
All flags allowed for a field declared in an interface.
|
Flags |
legalLocalClassFlags()
All flags allowed for a local class.
|
Flags |
legalLocalFlags()
All flags allowed for a local variable.
|
Flags |
legalMemberClassFlags()
All flags allowed for a member class.
|
Flags |
legalMethodFlags()
All flags allowed for a method.
|
Flags |
legalTopLevelClassFlags()
All flags allowed for a top-level class.
|
protected static java.lang.String |
listToString(java.util.List<?> l) |
protected ClassType |
load(java.lang.String name) |
TopLevelResolver |
loadedResolver()
Return the type system's loaded resolver.
|
LocalInstance |
localInstance(Position pos,
Flags flags,
Type type,
java.lang.String name)
Create a local variable instance.
|
PrimitiveType |
Long()
long |
boolean |
methodCallValid(MethodInstance prototype,
java.lang.String name,
java.util.List<? extends Type> argTypes)
Return true if
mi can be called with name name
and actual parameters of types actualTypes . |
MethodInstance |
methodInstance(Position pos,
ReferenceType container,
Flags flags,
Type returnType,
java.lang.String name,
java.util.List<? extends Type> argTypes,
java.util.List<? extends Type> excTypes)
Create a method instance.
|
boolean |
moreSpecific(ProcedureInstance p1,
ProcedureInstance p2)
Returns true iff
m1 is more specific than m2 ,
where more specific is defined as JLS 15.11.2.2 |
Flags |
Native() |
Flags |
NoFlags() |
NullType |
Null()
The type of
null . |
ClassType |
NullPointerException()
java.lang.NullPointerException |
boolean |
numericConversionValid(Type t,
long value)
Deprecated.
|
boolean |
numericConversionValid(Type t,
java.lang.Object value)
Returns true if
value can be implicitly cast to
primitive type t . |
ClassType |
Object()
java.lang.Object |
ClassType |
OutOfBoundsException()
java.lang.ArrayIndexOutOfBoundsException |
java.util.List<MethodInstance> |
overrides(MethodInstance mi)
Get the list of methods
mi (potentially) overrides, in
order from this class (that is, including this ) to super
classes. |
Resolver |
packageContextResolver(Package p) |
Resolver |
packageContextResolver(Package p,
ClassType accessor)
Get a resolver for looking up a type in a package.
|
Resolver |
packageContextResolver(Resolver cr,
Package p)
Deprecated.
|
boolean |
packageEquals(Package type1,
Package type2)
Returns true iff type1 and type2 are equivalent.
|
boolean |
packageExists(java.lang.String name)
Returns true if the package named
name exists. |
Package |
packageForName(Package prefix,
java.lang.String name)
Return a package by name with the given outer package.
|
Package |
packageForName(java.lang.String name)
Return a package by name.
|
CachingResolver |
parsedResolver()
Deprecated.
|
java.lang.Object |
placeHolder(TypeObject o)
Get a place-holder for serializing a type object.
|
java.lang.Object |
placeHolder(TypeObject o,
java.util.Set<? extends TypeObject> roots)
Get a place-holder for serializing a type object.
|
PrimitiveType |
primitiveForName(java.lang.String name)
Return the primitive with the given name.
|
Flags |
Private() |
PrimitiveType |
promote(Type t)
Unary promotion for numeric types.
|
PrimitiveType |
promote(Type t1,
Type t2)
Binary promotion for numeric types.
|
protected PrimitiveType |
promoteNumeric(PrimitiveType t) |
protected PrimitiveType |
promoteNumeric(PrimitiveType t1,
PrimitiveType t2) |
Flags |
Protected() |
Flags |
Public() |
void |
restoreSystemResolver(SystemResolver r)
Set the system resolver to
r . |
protected boolean |
returnTypesConsistent(MethodInstance mi,
MethodInstance mj) |
ClassType |
RuntimeException()
java.lang.RuntimeException |
SystemResolver |
saveSystemResolver()
Create and install a duplicate of the system resolver and return the original.
|
ClassType |
Serializable()
java.io.Serializable |
PrimitiveType |
Short()
short |
Flags |
Static() |
Type |
staticTarget(Type t)
Returns
t , modified as necessary to make it a legal
static target. |
Flags |
StrictFP() |
ClassType |
String()
java.lang.String |
Type |
superType(ReferenceType type)
Returns the immediate supertype of type, or null if type has no
supertype.
|
Flags |
Synchronized() |
SystemResolver |
systemResolver()
Returns the system resolver.
|
ClassType |
Throwable()
java.lang.Throwable |
boolean |
throwsSubset(ProcedureInstance p1,
ProcedureInstance p2)
Returns true iff
p1 throws fewer exceptions than p2 . |
java.lang.String |
toString() |
Flags |
Transient() |
java.lang.String |
translateArray(Resolver c,
ArrayType t)
Translate an array type.
|
java.lang.String |
translateClass(Resolver c,
ClassType t)
Translate a top-level class type.
|
java.lang.String |
translatePackage(Resolver c,
Package p)
Translate a package.
|
java.lang.String |
translatePrimitive(Resolver c,
PrimitiveType t)
Translate a primitive type.
|
boolean |
typeEquals(Type type1,
Type type2)
Returns true iff type1 and type2 are equivalent.
|
Type |
typeForClass(java.lang.Class<?> clazz)
Returns a canonical type corresponding to the Java Class object
theClass.
|
protected Type |
typeForClass(Resolver resolver,
java.lang.Class<?> clazz) |
Type |
typeForName(java.lang.String name)
Get the type with the following name.
|
java.util.Collection<Type> |
uncheckedExceptions()
Returns a collection of the
Throwable types that need not be declared
in method and constructor signatures. |
UnknownPackage |
unknownPackage(Position pos)
Get an unknown package.
|
UnknownQualifier |
unknownQualifier(Position pos)
Get an unknown type qualifier.
|
UnknownType |
unknownType(Position pos)
Get an unknown type.
|
PrimitiveType |
Void()
void |
Flags |
Volatile() |
java.lang.String |
wrapperTypeString(PrimitiveType t)
Return the boxed version of
t . |
protected SystemResolver systemResolver
protected TopLevelResolver loadedResolver
protected java.util.Map<java.lang.String,Flags> flagsForName
protected ExtensionInfo extInfo
protected ClassType OBJECT_
protected ClassType CLASS_
protected ClassType STRING_
protected ClassType THROWABLE_
protected final NullType NULL_
protected final PrimitiveType VOID_
protected final PrimitiveType BOOLEAN_
protected final PrimitiveType CHAR_
protected final PrimitiveType BYTE_
protected final PrimitiveType SHORT_
protected final PrimitiveType INT_
protected final PrimitiveType LONG_
protected final PrimitiveType FLOAT_
protected final PrimitiveType DOUBLE_
protected UnknownType unknownType
protected UnknownPackage unknownPackage
protected UnknownQualifier unknownQualifier
protected final Flags ACCESS_FLAGS
protected final Flags LOCAL_FLAGS
protected final Flags FIELD_FLAGS
protected final Flags CONSTRUCTOR_FLAGS
protected final Flags INITIALIZER_FLAGS
protected final Flags METHOD_FLAGS
protected final Flags ABSTRACT_METHOD_FLAGS
protected final Flags TOP_LEVEL_CLASS_FLAGS
protected final Flags MEMBER_CLASS_FLAGS
protected final Flags LOCAL_CLASS_FLAGS
protected final Flags INTERFACE_FIELD_FLAGS
public void initialize(TopLevelResolver loadedResolver, ExtensionInfo extInfo) throws SemanticException
TypeSystem
initialize
in interface TypeSystem
loadedResolver
- The resolver to use for loading types from class files
or other source files.extInfo
- The ExtensionInfo the TypeSystem is being created for.SemanticException
protected void initEnums()
protected void initTypes() throws SemanticException
SemanticException
public ExtensionInfo extensionInfo()
TypeSystem
extensionInfo
in interface TypeSystem
public SystemResolver systemResolver()
TypeSystem
systemResolver
in interface TypeSystem
public SystemResolver saveSystemResolver()
TypeSystem
saveSystemResolver
in interface TypeSystem
public void restoreSystemResolver(SystemResolver r)
TypeSystem
r
.restoreSystemResolver
in interface TypeSystem
@Deprecated public CachingResolver parsedResolver()
TypeSystem
parsedResolver
in interface TypeSystem
public TopLevelResolver loadedResolver()
TypeSystem
loadedResolver
in interface TypeSystem
public ClassFileLazyClassInitializer classFileLazyClassInitializer(ClassFile clazz)
TypeSystem
classFileLazyClassInitializer
in interface TypeSystem
public ImportTable importTable(java.lang.String sourceName, Package pkg)
TypeSystem
importTable
in interface TypeSystem
sourceName
- Name of the source file to import into. This is used
mainly for error messages and for debugging.pkg
- The package of the source file in which to import.public ImportTable importTable(Package pkg)
TypeSystem
importTable
in interface TypeSystem
pkg
- The package of the source file in which to import.public boolean packageExists(java.lang.String name)
TypeSystem
name
exists.packageExists
in interface TypeSystem
protected void assert_(java.util.Collection<? extends TypeObject> l)
protected void assert_(TypeObject o)
public java.lang.String wrapperTypeString(PrimitiveType t)
TypeSystem
t
.wrapperTypeString
in interface TypeSystem
public Context createContext()
TypeSystem
createContext
in interface TypeSystem
@Deprecated public Resolver packageContextResolver(Resolver cr, Package p)
packageContextResolver
in interface TypeSystem
public AccessControlResolver createPackageContextResolver(Package p)
createPackageContextResolver
in interface TypeSystem
public Resolver packageContextResolver(Package p, ClassType accessor)
TypeSystem
packageContextResolver
in interface TypeSystem
public Resolver packageContextResolver(Package p)
packageContextResolver
in interface TypeSystem
public Resolver classContextResolver(ClassType type, ClassType accessor)
TypeSystem
classContextResolver
in interface TypeSystem
public Resolver classContextResolver(ClassType type)
classContextResolver
in interface TypeSystem
public AccessControlResolver createClassContextResolver(ClassType type)
createClassContextResolver
in interface TypeSystem
public FieldInstance fieldInstance(Position pos, ReferenceType container, Flags flags, Type type, java.lang.String name)
TypeSystem
fieldInstance
in interface TypeSystem
pos
- Position of the field.container
- Containing type of the field.flags
- The field's flags.type
- The field's type.name
- The field's name.public LocalInstance localInstance(Position pos, Flags flags, Type type, java.lang.String name)
TypeSystem
localInstance
in interface TypeSystem
pos
- Position of the local variable.flags
- The local variable's flags.type
- The local variable's type.name
- The local variable's name.public ConstructorInstance defaultConstructor(Position pos, ClassType container)
TypeSystem
defaultConstructor
in interface TypeSystem
pos
- Position of the constructor.container
- Containing class of the constructor.public ConstructorInstance constructorInstance(Position pos, ClassType container, Flags flags, java.util.List<? extends Type> argTypes, java.util.List<? extends Type> excTypes)
TypeSystem
constructorInstance
in interface TypeSystem
pos
- Position of the constructor.container
- Containing class of the constructor.flags
- The constructor's flags.argTypes
- The constructor's formal parameter types.excTypes
- The constructor's exception throw types.public InitializerInstance initializerInstance(Position pos, ClassType container, Flags flags)
TypeSystem
initializerInstance
in interface TypeSystem
pos
- Position of the initializer.container
- Containing class of the initializer.flags
- The initializer's flags.public MethodInstance methodInstance(Position pos, ReferenceType container, Flags flags, Type returnType, java.lang.String name, java.util.List<? extends Type> argTypes, java.util.List<? extends Type> excTypes)
TypeSystem
methodInstance
in interface TypeSystem
pos
- Position of the method.container
- Containing type of the method.flags
- The method's flags.returnType
- The method's return type.name
- The method's name.argTypes
- The method's formal parameter types.excTypes
- The method's exception throw types.public boolean descendsFrom(Type child, Type ancestor)
TypeSystem
descendsFrom
in interface TypeSystem
public boolean isCastValid(Type fromType, Type toType)
TypeSystem
isCastValid
in interface TypeSystem
public boolean isImplicitCastValid(Type fromType, Type toType)
TypeSystem
isImplicitCastValid
in interface TypeSystem
public boolean equals(TypeObject type1, TypeObject type2)
TypeSystem
equals
in interface TypeSystem
public boolean typeEquals(Type type1, Type type2)
TypeSystem
typeEquals
in interface TypeSystem
public boolean packageEquals(Package type1, Package type2)
TypeSystem
packageEquals
in interface TypeSystem
public boolean numericConversionValid(Type t, java.lang.Object value)
TypeSystem
value
can be implicitly cast to
primitive type t
.numericConversionValid
in interface TypeSystem
@Deprecated public boolean numericConversionValid(Type t, long value)
TypeSystem
value
can be implicitly cast to primitive type
t
.numericConversionValid
in interface TypeSystem
public boolean isCanonical(Type type)
TypeSystem
type
is a canonical
(fully qualified) type.isCanonical
in interface TypeSystem
public boolean isAccessible(MemberInstance mi, Context context)
TypeSystem
context
.isAccessible
in interface TypeSystem
public boolean isAccessible(MemberInstance mi, ClassType contextClass)
TypeSystem
contextClass
.isAccessible
in interface TypeSystem
public boolean isAccessible(MemberInstance mi, ClassType contextClass, boolean fromClient)
TypeSystem
contextClass
.isAccessible
in interface TypeSystem
public boolean isAccessible(MemberInstance mi, ReferenceType container, ClassType contextClass)
TypeSystem
contextClass
, accessing it via the type container.isAccessible
in interface TypeSystem
public boolean isAccessible(MemberInstance mi, ReferenceType container, ReferenceType contextType, boolean fromClient)
TypeSystem
context
. fromClient indicates whether this member is
being access from a client (true) or by inheritance (false).isAccessible
in interface TypeSystem
public boolean classAccessible(ClassType targetClass, Context context)
TypeSystem
targetClass
can be accessed from context
.classAccessible
in interface TypeSystem
public boolean classAccessible(ClassType targetClass, ClassType contextClass)
TypeSystem
targetClass
accessible from the body of class
contextClass
.classAccessible
in interface TypeSystem
public boolean classAccessibleFromPackage(ClassType targetClass, Package pkg)
TypeSystem
pkg
. Returns false for local and anonymous classes.classAccessibleFromPackage
in interface TypeSystem
protected boolean accessibleFromPackage(Flags flags, Package pkg1, Package pkg2)
flags
in package pkg1
is accessible from package
pkg2
.public boolean isEnclosed(ClassType inner, ClassType outer)
TypeSystem
isEnclosed
in interface TypeSystem
public boolean hasEnclosingInstance(ClassType inner, ClassType encl)
TypeSystem
inner
has an
enclosing instance of class encl
.hasEnclosingInstance
in interface TypeSystem
public void checkCycles(ReferenceType goal) throws SemanticException
TypeSystem
t
has no cycles in the super type+nested class
graph starting at t
.checkCycles
in interface TypeSystem
SemanticException
protected void checkCycles(ReferenceType curr, ReferenceType goal) throws SemanticException
SemanticException
public boolean canCoerceToString(Type t, Context c)
TypeSystem
"" + o
would be allowed.canCoerceToString
in interface TypeSystem
public boolean isThrowable(Type type)
TypeSystem
type
may be thrown.isThrowable
in interface TypeSystem
public boolean isUncheckedException(Type type)
TypeSystem
TypeSystem.uncheckedExceptions()
.isUncheckedException
in interface TypeSystem
public java.util.Collection<Type> uncheckedExceptions()
TypeSystem
Throwable
types that need not be declared
in method and constructor signatures.uncheckedExceptions
in interface TypeSystem
public boolean isSubtype(Type t1, Type t2)
TypeSystem
descendsFrom(child, ancestor) || equals(child, ancestor)
isSubtype
in interface TypeSystem
@Deprecated public FieldInstance findField(ReferenceType container, java.lang.String name, Context c) throws SemanticException
TypeSystem
findField
in interface TypeSystem
SemanticException
@Deprecated public FieldInstance findField(ReferenceType container, java.lang.String name, ClassType currClass) throws SemanticException
TypeSystem
findField
in interface TypeSystem
SemanticException
public FieldInstance findField(ReferenceType container, java.lang.String name, ClassType currClass, boolean fromClient) throws SemanticException
TypeSystem
name
defined
in type container
or a supertype, and visible from
currClass
. currClass
may be null.findField
in interface TypeSystem
SemanticException
- if the field cannot be found or is
inaccessible.public boolean isMember(MemberInstance mi, ReferenceType type)
TypeSystem
mi
is a member of reference type
type
, either by definition or by inheritance.isMember
in interface TypeSystem
public boolean isInherited(MemberInstance mi, ReferenceType type)
TypeSystem
mi
is inherited by reference type type
.
See JLS 2nd edition section 6.4.isInherited
in interface TypeSystem
@Deprecated public FieldInstance findField(ReferenceType container, java.lang.String name) throws SemanticException
TypeSystem
name
defined
in type container
or a supertype.findField
in interface TypeSystem
SemanticException
- if the field cannot be found or is
inaccessible.protected java.util.Set<FieldInstance> findFields(ReferenceType container, java.lang.String name)
name
defined
in type container
or a supertype. The list
returned may be empty.@Deprecated public ClassType findMemberClass(ClassType container, java.lang.String name, Context c) throws SemanticException
TypeSystem
findMemberClass
in interface TypeSystem
SemanticException
public ClassType findMemberClass(ClassType container, java.lang.String name, ClassType currClass) throws SemanticException
TypeSystem
findMemberClass
in interface TypeSystem
SemanticException
- if the class cannot be found or is
inaccessible.public ClassType findMemberClass(ClassType container, java.lang.String name) throws SemanticException
TypeSystem
findMemberClass
in interface TypeSystem
SemanticException
- if the class cannot be found or is
inaccessible.protected static java.lang.String listToString(java.util.List<?> l)
@Deprecated public MethodInstance findMethod(ReferenceType container, java.lang.String name, java.util.List<? extends Type> argTypes, Context c) throws SemanticException
TypeSystem
findMethod
in interface TypeSystem
SemanticException
public boolean hasMethodNamed(ReferenceType container, java.lang.String name)
TypeSystem
container
has a method with name name
either defined in container
or inherited into it.hasMethodNamed
in interface TypeSystem
public boolean hasAccessibleMethodNamed(ReferenceType container, java.lang.String name, ClassType currClass)
TypeSystem
t
has a method with name name
either defined in t
or inherited into it that is accessible from currClass.hasAccessibleMethodNamed
in interface TypeSystem
@Deprecated public MethodInstance findMethod(ReferenceType container, java.lang.String name, java.util.List<? extends Type> argTypes, ClassType currClass) throws SemanticException
TypeSystem
findMethod
in interface TypeSystem
SemanticException
public MethodInstance findMethod(ReferenceType container, java.lang.String name, java.util.List<? extends Type> argTypes, ClassType currClass, boolean fromClient) throws SemanticException
TypeSystem
name
defined in type
container
and visible from class curClass
.
We need to pass the class from which the method
is being found because the method we find depends on whether the method
is accessible from that class.findMethod
in interface TypeSystem
SemanticException
- if the method cannot be found or is
inaccessible.@Deprecated public ConstructorInstance findConstructor(ClassType container, java.util.List<? extends Type> argTypes, Context c) throws SemanticException
TypeSystem
findConstructor
in interface TypeSystem
SemanticException
@Deprecated public ConstructorInstance findConstructor(ClassType container, java.util.List<? extends Type> argTypes, ClassType currClass) throws SemanticException
TypeSystem
findConstructor
in interface TypeSystem
SemanticException
public ConstructorInstance findConstructor(ClassType container, java.util.List<? extends Type> argTypes, ClassType currClass, boolean fromClient) throws SemanticException
TypeSystem
findConstructor
in interface TypeSystem
fromClient
- indicates whether the constructor is being accessed
from a client or by inheritanceSemanticException
- if the constructor cannot be found or is
inaccessible.protected <I extends ProcedureInstance> I findProcedure(java.util.List<I> acceptable, ReferenceType container, java.util.List<Type> argTypes, ClassType currClass) throws SemanticException
SemanticException
protected <Instance extends ProcedureInstance> java.util.Collection<Instance> findMostSpecificProcedures(java.util.List<Instance> acceptable) throws SemanticException
SemanticException
protected java.util.List<? extends MethodInstance> findAcceptableMethods(ReferenceType container, java.lang.String name, java.util.List<? extends Type> argTypes, ClassType currClass, boolean fromClient) throws SemanticException
SemanticException
protected java.util.List<? extends ConstructorInstance> findAcceptableConstructors(ClassType container, java.util.List<? extends Type> argTypes, ClassType currClass, boolean fromClient) throws SemanticException
SemanticException
public boolean moreSpecific(ProcedureInstance p1, ProcedureInstance p2)
m1
is more specific than m2
,
where more specific is defined as JLS 15.11.2.2moreSpecific
in interface TypeSystem
public Type superType(ReferenceType type)
TypeSystem
superType
in interface TypeSystem
public java.util.List<? extends Type> interfaces(ReferenceType type)
TypeSystem
interfaces
in interface TypeSystem
public Type leastCommonAncestor(Type type1, Type type2) throws SemanticException
TypeSystem
type1
and type2
.leastCommonAncestor
in interface TypeSystem
SemanticException
- if the LCA does not existpublic boolean throwsSubset(ProcedureInstance p1, ProcedureInstance p2)
TypeSystem
p1
throws fewer exceptions than p2
.throwsSubset
in interface TypeSystem
public boolean hasFormals(ProcedureInstance pi, java.util.List<? extends Type> formalTypes)
TypeSystem
pi
has exactly the formal arguments
formalTypes
.hasFormals
in interface TypeSystem
public boolean hasMethod(ReferenceType t, MethodInstance mi)
TypeSystem
t
has the method mi
.hasMethod
in interface TypeSystem
public java.util.List<MethodInstance> overrides(MethodInstance mi)
TypeSystem
mi
(potentially) overrides, in
order from this class (that is, including this
) to super
classes.overrides
in interface TypeSystem
public java.util.List<MethodInstance> implemented(MethodInstance mi)
TypeSystem
mi
implements, in no
specified order.implemented
in interface TypeSystem
public boolean canOverride(MethodInstance mi, MethodInstance mj)
TypeSystem
mi
can override mj
.canOverride
in interface TypeSystem
public void checkOverride(MethodInstance mi, MethodInstance mj) throws SemanticException
TypeSystem
mi
cannot override
mj
.checkOverride
in interface TypeSystem
SemanticException
public boolean isSameMethod(MethodInstance m1, MethodInstance m2)
TypeSystem
m1
is the same method as m2
.isSameMethod
in interface TypeSystem
public boolean methodCallValid(MethodInstance prototype, java.lang.String name, java.util.List<? extends Type> argTypes)
TypeSystem
mi
can be called with name name
and actual parameters of types actualTypes
.methodCallValid
in interface TypeSystem
public boolean callValid(ProcedureInstance prototype, java.util.List<? extends Type> argTypes)
TypeSystem
pi
can be called with
actual parameters of types actualTypes
.callValid
in interface TypeSystem
public NullType Null()
TypeSystem
null
.Null
in interface TypeSystem
public PrimitiveType Void()
TypeSystem
void
Void
in interface TypeSystem
public PrimitiveType Boolean()
TypeSystem
boolean
Boolean
in interface TypeSystem
public PrimitiveType Char()
TypeSystem
char
Char
in interface TypeSystem
public PrimitiveType Byte()
TypeSystem
byte
Byte
in interface TypeSystem
public PrimitiveType Short()
TypeSystem
short
Short
in interface TypeSystem
public PrimitiveType Int()
TypeSystem
int
Int
in interface TypeSystem
public PrimitiveType Long()
TypeSystem
long
Long
in interface TypeSystem
public PrimitiveType Float()
TypeSystem
float
Float
in interface TypeSystem
public PrimitiveType Double()
TypeSystem
double
Double
in interface TypeSystem
protected ClassType load(java.lang.String name)
public Named forName(java.lang.String name) throws SemanticException
TypeSystem
forName
in interface TypeSystem
name
- The name of the type object to look for.SemanticException
- when object is not found.protected Named forName(Resolver resolver, java.lang.String name) throws SemanticException
SemanticException
public Type typeForName(java.lang.String name) throws SemanticException
TypeSystem
typeForName
in interface TypeSystem
name
- The name to create the type for.SemanticException
- when type is not found.public ClassType Object()
TypeSystem
java.lang.Object
Object
in interface TypeSystem
public ClassType Class()
TypeSystem
java.lang.Class
Class
in interface TypeSystem
public ClassType String()
TypeSystem
java.lang.String
String
in interface TypeSystem
public ClassType Throwable()
TypeSystem
java.lang.Throwable
Throwable
in interface TypeSystem
public ClassType Error()
TypeSystem
java.lang.Error
Error
in interface TypeSystem
public ClassType Exception()
TypeSystem
java.lang.Exception
Exception
in interface TypeSystem
public ClassType RuntimeException()
TypeSystem
java.lang.RuntimeException
RuntimeException
in interface TypeSystem
public ClassType Cloneable()
TypeSystem
java.lang.Cloneable
Cloneable
in interface TypeSystem
public ClassType Serializable()
TypeSystem
java.io.Serializable
Serializable
in interface TypeSystem
public ClassType NullPointerException()
TypeSystem
java.lang.NullPointerException
NullPointerException
in interface TypeSystem
public ClassType ClassCastException()
TypeSystem
java.lang.ClassCastException
ClassCastException
in interface TypeSystem
public ClassType OutOfBoundsException()
TypeSystem
java.lang.ArrayIndexOutOfBoundsException
OutOfBoundsException
in interface TypeSystem
public ClassType ArrayStoreException()
TypeSystem
java.lang.ArrayStoreException
ArrayStoreException
in interface TypeSystem
public ClassType ArithmeticException()
TypeSystem
java.lang.ArithmeticException
ArithmeticException
in interface TypeSystem
protected NullType createNull()
protected PrimitiveType createPrimitive(PrimitiveType.Kind kind)
public java.lang.Object placeHolder(TypeObject o)
TypeSystem
placeHolder
in interface TypeSystem
o
- The object to get the place-holder for.public java.lang.Object placeHolder(TypeObject o, java.util.Set<? extends TypeObject> roots)
TypeSystem
placeHolder
in interface TypeSystem
o
- The object to get the place-holder for.roots
- The root objects for the serialization. Place holders
are not created for these.public UnknownType unknownType(Position pos)
TypeSystem
unknownType
in interface TypeSystem
public UnknownPackage unknownPackage(Position pos)
TypeSystem
unknownPackage
in interface TypeSystem
public UnknownQualifier unknownQualifier(Position pos)
TypeSystem
unknownQualifier
in interface TypeSystem
public Package packageForName(Package prefix, java.lang.String name) throws SemanticException
TypeSystem
packageForName
in interface TypeSystem
SemanticException
public Package packageForName(java.lang.String name) throws SemanticException
TypeSystem
packageForName
in interface TypeSystem
SemanticException
@Deprecated public Package createPackage(Package prefix, java.lang.String name)
TypeSystem
createPackage
in interface TypeSystem
@Deprecated public Package createPackage(java.lang.String name)
TypeSystem
createPackage
in interface TypeSystem
public ArrayType arrayOf(Type type)
TypeSystem
type
arrayOf
in interface TypeSystem
public ArrayType arrayOf(Position pos, Type type)
TypeSystem
type
arrayOf
in interface TypeSystem
protected ArrayType createArrayType(Position pos, Type type)
public ArrayType arrayOf(Type type, int dims)
TypeSystem
dims
-array of type
arrayOf
in interface TypeSystem
public ArrayType arrayOf(Position pos, Type type, int dims)
TypeSystem
dims
-array of type
arrayOf
in interface TypeSystem
public Type typeForClass(java.lang.Class<?> clazz) throws SemanticException
SemanticException
protected Type typeForClass(Resolver resolver, java.lang.Class<?> clazz) throws SemanticException
SemanticException
public java.util.Set<TypeObject> getTypeEncoderRootSet(TypeObject t)
TypeSystem
getTypeEncoderRootSet
in interface TypeSystem
public java.lang.String getTransformedClassName(ClassType ct)
TypeSystem
getTransformedClassName
in interface TypeSystem
public java.lang.String translatePackage(Resolver c, Package p)
TypeSystem
translatePackage
in interface TypeSystem
public java.lang.String translateArray(Resolver c, ArrayType t)
TypeSystem
translateArray
in interface TypeSystem
public java.lang.String translateClass(Resolver c, ClassType t)
TypeSystem
translateClass
in interface TypeSystem
public java.lang.String translatePrimitive(Resolver c, PrimitiveType t)
TypeSystem
translatePrimitive
in interface TypeSystem
public PrimitiveType primitiveForName(java.lang.String name) throws SemanticException
TypeSystem
primitiveForName
in interface TypeSystem
SemanticException
public LazyClassInitializer defaultClassInitializer()
TypeSystem
defaultClassInitializer
in interface TypeSystem
public LazyClassInitializer deserializedClassInitializer()
TypeSystem
deserializedClassInitializer
in interface TypeSystem
public final ParsedClassType createClassType()
TypeSystem
createClassType
in interface TypeSystem
public final ParsedClassType createClassType(Source fromSource)
TypeSystem
createClassType
in interface TypeSystem
public final ParsedClassType createClassType(LazyClassInitializer init)
TypeSystem
createClassType
in interface TypeSystem
public ParsedClassType createClassType(LazyClassInitializer init, Source fromSource)
TypeSystem
createClassType
in interface TypeSystem
public java.util.List<java.lang.String> defaultPackageImports()
TypeSystem
defaultPackageImports
in interface TypeSystem
public PrimitiveType promote(Type t1, Type t2) throws SemanticException
TypeSystem
promote
in interface TypeSystem
SemanticException
- if the types cannot be promoted.protected PrimitiveType promoteNumeric(PrimitiveType t1, PrimitiveType t2)
public PrimitiveType promote(Type t) throws SemanticException
TypeSystem
promote
in interface TypeSystem
SemanticException
- if the type cannot be promoted.protected PrimitiveType promoteNumeric(PrimitiveType t)
public Flags legalAccessFlags()
TypeSystem
legalAccessFlags
in interface TypeSystem
public Flags legalLocalFlags()
TypeSystem
legalLocalFlags
in interface TypeSystem
public Flags legalFieldFlags()
TypeSystem
legalFieldFlags
in interface TypeSystem
public Flags legalConstructorFlags()
TypeSystem
legalConstructorFlags
in interface TypeSystem
public Flags legalInitializerFlags()
TypeSystem
legalInitializerFlags
in interface TypeSystem
public Flags legalMethodFlags()
TypeSystem
legalMethodFlags
in interface TypeSystem
public Flags legalAbstractMethodFlags()
TypeSystem
legalAbstractMethodFlags
in interface TypeSystem
public Flags legalTopLevelClassFlags()
TypeSystem
legalTopLevelClassFlags
in interface TypeSystem
public Flags legalMemberClassFlags()
TypeSystem
legalMemberClassFlags
in interface TypeSystem
public Flags legalLocalClassFlags()
TypeSystem
legalLocalClassFlags
in interface TypeSystem
public Flags legalInterfaceFieldFlags()
TypeSystem
legalInterfaceFieldFlags
in interface TypeSystem
public void checkMethodFlags(Flags f) throws SemanticException
TypeSystem
f
are legal method flags.checkMethodFlags
in interface TypeSystem
SemanticException
public void checkLocalFlags(Flags f) throws SemanticException
TypeSystem
f
are legal local variable flags.checkLocalFlags
in interface TypeSystem
SemanticException
public void checkFieldFlags(Flags f) throws SemanticException
TypeSystem
f
are legal field flags.checkFieldFlags
in interface TypeSystem
SemanticException
public void checkConstructorFlags(Flags f) throws SemanticException
TypeSystem
f
are legal constructor flags.checkConstructorFlags
in interface TypeSystem
SemanticException
public void checkInitializerFlags(Flags f) throws SemanticException
TypeSystem
f
are legal initializer flags.checkInitializerFlags
in interface TypeSystem
SemanticException
public void checkTopLevelClassFlags(Flags f) throws SemanticException
TypeSystem
f
are legal top-level class flags.checkTopLevelClassFlags
in interface TypeSystem
SemanticException
public void checkMemberClassFlags(Flags f) throws SemanticException
TypeSystem
f
are legal member class flags.checkMemberClassFlags
in interface TypeSystem
SemanticException
public void checkLocalClassFlags(Flags f) throws SemanticException
TypeSystem
f
are legal local class flags.checkLocalClassFlags
in interface TypeSystem
SemanticException
protected void checkClassFlagsConflict(Flags f) throws SemanticException
SemanticException
public void checkAccessFlags(Flags f) throws SemanticException
TypeSystem
f
are legal access flags.checkAccessFlags
in interface TypeSystem
SemanticException
protected java.util.List<ReferenceType> abstractSuperInterfaces(ReferenceType rt)
ct
that may contain abstract methods that must be
implemented by ct
. The list returned also contains
rt
.public void checkClassConformance(ClassType ct) throws SemanticException
TypeSystem
ct
implements all abstract methods required;
that is, if it is a concrete class, then it must implement all
interfaces and abstract methods that it or its superclasses declare.checkClassConformance
in interface TypeSystem
SemanticException
protected boolean returnTypesConsistent(MethodInstance mi, MethodInstance mj)
public void checkInterfaceFieldFlags(ClassType ct) throws SemanticException
TypeSystem
ct
is an interface, its fields' flags is a subset
of public, static, final.checkInterfaceFieldFlags
in interface TypeSystem
SemanticException
public MethodInstance findImplementingMethod(ClassType ct, MethodInstance mi)
TypeSystem
mi
in the class ct
or a supertype thereof. Since we are
looking for implementations, ct
cannot be an interface.
The first potentially satisfying method is returned, that is, the method
that is visible from ct
, with the correct signature, in
the most precise class in the class hierarchy starting from
ct
.findImplementingMethod
in interface TypeSystem
ct
or a supertype thereof, null if none exists.public Type staticTarget(Type t)
TypeSystem
t
, modified as necessary to make it a legal
static target.staticTarget
in interface TypeSystem
protected void initFlags()
public Flags createNewFlag(java.lang.String name, Flags after)
TypeSystem
createNewFlag
in interface TypeSystem
name
- the name of the flagafter
- print the new flag after these flagspublic Flags NoFlags()
NoFlags
in interface TypeSystem
public Flags Public()
Public
in interface TypeSystem
public Flags Private()
Private
in interface TypeSystem
public Flags Protected()
Protected
in interface TypeSystem
public Flags Static()
Static
in interface TypeSystem
public Flags Final()
Final
in interface TypeSystem
public Flags Synchronized()
Synchronized
in interface TypeSystem
public Flags Transient()
Transient
in interface TypeSystem
public Flags Native()
Native
in interface TypeSystem
public Flags Interface()
Interface
in interface TypeSystem
public Flags Abstract()
Abstract
in interface TypeSystem
public Flags Volatile()
Volatile
in interface TypeSystem
public Flags StrictFP()
StrictFP
in interface TypeSystem
public Flags flagsForBits(int bits)
TypeSystem
flagsForBits
in interface TypeSystem
public Flags flagsForName(java.lang.String name)
public java.lang.String toString()
toString
in class java.lang.Object