|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface JifTypeSystem
Jif type system.
Field Summary |
---|
Fields inherited from interface polyglot.types.TypeSystem |
---|
SERIALIZE_MEMBERS_WITH_CONTAINER |
Method Summary | |
---|---|
java.util.List |
abstractSuperInterfaces(polyglot.types.ReferenceType rt)
Exposes utility method of TypeSystem_c |
boolean |
actsFor(Principal p,
Principal q)
Returns true iff p actsfor q in the empty environment. |
ActsForConstraint |
actsForConstraint(polyglot.util.Position pos,
Principal actor,
Principal granter,
boolean isEquiv)
Construct an acts-for constraint. |
ArgLabel |
argLabel(polyglot.util.Position pos,
polyglot.types.LocalInstance li,
polyglot.types.CodeInstance ci)
|
ArgLabel |
argLabel(polyglot.util.Position pos,
ParamInstance li)
|
AuthConstraint |
authConstraint(polyglot.util.Position pos,
java.util.List principals)
Construct an authority constraint. |
AutoEndorseConstraint |
autoEndorseConstraint(polyglot.util.Position pos,
Label endorseTo)
Construct an autoendorse constraint. |
ConfPolicy |
bottomConfPolicy(polyglot.util.Position pos)
|
IntegPolicy |
bottomIntegPolicy(polyglot.util.Position pos)
|
Label |
bottomLabel()
|
Label |
bottomLabel(polyglot.util.Position pos)
|
BottomPrincipal |
bottomPrincipal(polyglot.util.Position pos)
|
CallerConstraint |
callerConstraint(polyglot.util.Position pos,
java.util.List principals)
Construct a caller constraint. |
Label |
callSitePCLabel(JifProcedureInstance pi)
|
ConfPolicy |
confProjection(Label L)
|
Principal |
conjunctivePrincipal(polyglot.util.Position pos,
java.util.Collection principals)
|
Principal |
conjunctivePrincipal(polyglot.util.Position pos,
Principal conjunctLeft,
Principal conjunctRight)
|
ConstArrayType |
constArrayOf(polyglot.util.Position pos,
polyglot.types.Type type)
|
ConstArrayType |
constArrayOf(polyglot.util.Position pos,
polyglot.types.Type type,
int dims)
|
ConstArrayType |
constArrayOf(polyglot.util.Position position,
polyglot.types.Type type,
int dims,
boolean castableToNonConst)
|
ConstArrayType |
constArrayOf(polyglot.util.Position position,
polyglot.types.Type type,
int dims,
boolean castableToNonConst,
boolean recurseIntoBaseType)
|
ConstArrayType |
constArrayOf(polyglot.types.Type type)
|
ConstArrayType |
constArrayOf(polyglot.types.Type type,
int dims)
|
CovariantParamLabel |
covariantLabel(polyglot.util.Position pos,
ParamInstance pi)
|
LabelEnv |
createLabelEnv()
|
Solver |
createSolver(java.lang.String solverName)
Returns a new label constraint system solver. |
DefaultSignature |
defaultSignature()
|
Principal |
disjunctivePrincipal(polyglot.util.Position pos,
java.util.Collection principals)
|
Principal |
disjunctivePrincipal(polyglot.util.Position pos,
Principal disjunctLeft,
Principal disjunctRight)
|
DynamicLabel |
dynamicLabel(polyglot.util.Position pos,
AccessPath path)
|
DynamicPrincipal |
dynamicPrincipal(polyglot.util.Position pos,
AccessPath path)
|
boolean |
equalsNoStrip(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
Compares t1 to t2 without stripping off all the parameters and labels |
boolean |
equalsStrip(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
Compares t1 to t2, stripping off all the parameters and labels |
ExceptionPath |
exceptionPath(polyglot.types.Type type)
|
ExternalPrincipal |
externalPrincipal(polyglot.util.Position pos,
java.lang.String name)
|
VarLabel |
freshLabelVariable(polyglot.util.Position pos,
java.lang.String s,
java.lang.String description)
|
VarPrincipal |
freshPrincipalVariable(polyglot.util.Position pos,
java.lang.String s,
java.lang.String description)
|
Path |
gotoPath(polyglot.ast.Branch.Kind kind,
java.lang.String target)
|
polyglot.types.ClassType |
hasUntrustedAncestor(polyglot.types.Type t)
Check if the class has an untrusted non-jif ancestor. |
IntegPolicy |
integProjection(Label L)
|
boolean |
isAccessible(polyglot.types.MemberInstance mi,
polyglot.types.ClassType contextClass)
Exposes utility method of TypeSystem_c |
boolean |
isJifClass(polyglot.types.Type t)
Returns true if the type is a Jif class (will return false if the type is just a jif signature for a java class). |
boolean |
isLabel(polyglot.types.Type t)
Tests if the type is "label". |
boolean |
isLabeled(polyglot.types.Type type)
Returns true if the type is labeled. |
boolean |
isMarkerFieldName(java.lang.String s)
Is the string s a special marker field name? |
boolean |
isParamsRuntimeRep(polyglot.types.Type t)
Returns true if the type is a Jif class, or if it is a non-Jif class that represents parameters at runtime. |
boolean |
isPrincipal(polyglot.types.Type t)
Tests if the type is "principal". |
JifMethodInstance |
jifMethodInstance(polyglot.util.Position pos,
polyglot.types.ReferenceType container,
polyglot.types.Flags flags,
polyglot.types.Type returnType,
java.lang.String name,
Label startLabel,
boolean isDefaultStartLabel,
java.util.List formalTypes,
java.util.List formalArgLabels,
Label endLabel,
boolean isDefaultEndLabel,
java.util.List excTypes,
java.util.List constraints)
|
ConfPolicy |
join(ConfPolicy p1,
ConfPolicy p2)
|
IntegPolicy |
join(IntegPolicy p1,
IntegPolicy p2)
|
Label |
join(Label L1,
Label L2)
Returns the join of L1 and L2. |
ConfPolicy |
joinConfPolicy(polyglot.util.Position pos,
java.util.Set components)
|
IntegPolicy |
joinIntegPolicy(polyglot.util.Position pos,
java.util.Set components)
|
Label |
joinLabel(polyglot.util.Position pos,
java.util.Set components)
|
polyglot.types.PrimitiveType |
Label()
Returns the "label" type. |
LabeledType |
labeledType(polyglot.util.Position pos,
polyglot.types.Type type,
Label label)
Returns a labeled type, type{label}. |
LabelLeAssertion |
labelLeAssertion(polyglot.util.Position pos,
Label lhs,
Label rhs)
Construct an acts-for constraint. |
Label |
labelOfField(polyglot.types.FieldInstance vi,
Label pc)
Get the label of the field, folding in the PC if appropriate. |
Label |
labelOfLocal(polyglot.types.LocalInstance vi,
Label pc)
Get the label of the local, folding in the PC if appropriate. |
Label |
labelOfType(polyglot.types.Type type)
Get the label of the type, or bottom if unlabeled |
Label |
labelOfType(polyglot.types.Type type,
Label defaultLabel)
Get the label of the type, or defaultLabel if unlabeled. |
LabelTypeCheckUtil |
labelTypeCheckUtil()
|
boolean |
leq(Label L1,
Label L2)
Returns true iff L1 <= L2 in the empty environment. |
boolean |
leq(Policy p1,
Policy p2)
|
ConfPolicy |
meet(ConfPolicy p1,
ConfPolicy p2)
|
IntegPolicy |
meet(IntegPolicy p1,
IntegPolicy p2)
|
Label |
meet(Label L1,
Label L2)
Returns the meet of L1 and L2. |
ConfPolicy |
meetConfPolicy(polyglot.util.Position pos,
java.util.Set components)
|
IntegPolicy |
meetIntegPolicy(polyglot.util.Position pos,
java.util.Set components)
|
Label |
meetLabel(polyglot.util.Position pos,
java.util.Set components)
|
Label |
noComponentsLabel()
|
Label |
noComponentsLabel(polyglot.util.Position pos)
|
Label |
notTaken()
|
Label |
notTaken(polyglot.util.Position pos)
|
polyglot.types.ClassType |
nullInstantiate(polyglot.util.Position pos,
polyglot.ext.param.types.PClass pc)
|
PairLabel |
pairLabel(polyglot.util.Position pos,
ConfPolicy confPol,
IntegPolicy integPol)
|
ParamInstance |
paramInstance(polyglot.util.Position pos,
JifClassType container,
ParamInstance.Kind kind,
java.lang.String name)
Constructs a parameter instance for a class parameter declaration |
ParamLabel |
paramLabel(polyglot.util.Position pos,
ParamInstance pi)
|
PathMap |
pathMap()
|
PathMap |
pathMap(Path path,
Label L)
|
Label |
pathToLabel(polyglot.util.Position pos,
AccessPath path)
|
Principal |
pathToPrincipal(polyglot.util.Position pos,
AccessPath path)
|
polyglot.types.PrimitiveType |
Principal()
Returns the "principal" type. |
polyglot.types.Type |
PrincipalClass()
Returns the class jif.lang.Principal. |
PrincipalInstance |
principalInstance(polyglot.util.Position pos,
ExternalPrincipal principal)
Constructs a principal instance for an external principal. |
ParamPrincipal |
principalParam(polyglot.util.Position pos,
ParamInstance pi)
|
ReaderPolicy |
readerPolicy(polyglot.util.Position pos,
Principal owner,
java.util.Collection readers)
|
ReaderPolicy |
readerPolicy(polyglot.util.Position pos,
Principal owner,
Principal reader)
|
ThisLabel |
thisLabel(polyglot.types.ArrayType ct)
|
ThisLabel |
thisLabel(JifClassType ct)
|
ThisLabel |
thisLabel(polyglot.util.Position pos,
JifClassType ct)
|
ConfPolicy |
topConfPolicy(polyglot.util.Position pos)
|
IntegPolicy |
topIntegPolicy(polyglot.util.Position pos)
|
Label |
topLabel()
|
Label |
topLabel(polyglot.util.Position pos)
|
TopPrincipal |
topPrincipal(polyglot.util.Position pos)
|
UnknownLabel |
unknownLabel(polyglot.util.Position pos)
|
Param |
unknownParam(polyglot.util.Position pos)
|
UnknownPrincipal |
unknownPrincipal(polyglot.util.Position pos)
|
polyglot.types.Type |
unlabel(polyglot.types.Type type)
Remove the label from a type, if any. |
WriterPolicy |
writerPolicy(polyglot.util.Position pos,
Principal owner,
java.util.Collection writers)
|
WriterPolicy |
writerPolicy(polyglot.util.Position pos,
Principal owner,
Principal writer)
|
WritersToReadersLabel |
writersToReadersLabel(polyglot.util.Position pos,
Label L)
|
Methods inherited from interface polyglot.ext.param.types.ParamTypeSystem |
---|
instantiate, mutablePClass, subst, subst, subst |
Methods inherited from interface polyglot.types.TypeSystem |
---|
Abstract, ArithmeticException, arrayOf, arrayOf, arrayOf, arrayOf, ArrayStoreException, Boolean, Byte, callValid, canCoerceToString, canOverride, Char, checkAccessFlags, checkClassConformance, checkConstructorFlags, checkCycles, checkFieldFlags, checkInitializerFlags, checkLocalClassFlags, checkLocalFlags, checkMemberClassFlags, checkMethodFlags, checkOverride, checkTopLevelClassFlags, Class, classAccessible, classAccessible, classAccessibleFromPackage, ClassCastException, classContextResolver, classContextResolver, classFileLazyClassInitializer, Cloneable, constructorInstance, createClassContextResolver, createClassType, createClassType, createClassType, createClassType, createContext, createNewFlag, createPackage, createPackage, createPackageContextResolver, defaultClassInitializer, defaultConstructor, defaultPackageImports, descendsFrom, deserializedClassInitializer, Double, equals, Error, Exception, extensionInfo, fieldInstance, Final, findConstructor, findConstructor, findField, findField, findField, findImplementingMethod, findMemberClass, findMemberClass, findMemberClass, findMethod, findMethod, flagsForBits, Float, forName, getTransformedClassName, getTypeEncoderRootSet, hasEnclosingInstance, hasFormals, hasMethod, hasMethodNamed, implemented, importTable, importTable, initialize, initializerInstance, Int, Interface, interfaces, isAccessible, isCanonical, isCastValid, isEnclosed, isImplicitCastValid, isSameMethod, isSubtype, isThrowable, isUncheckedException, leastCommonAncestor, legalAbstractMethodFlags, legalAccessFlags, legalConstructorFlags, legalFieldFlags, legalInitializerFlags, legalInterfaceFlags, legalLocalClassFlags, legalLocalFlags, legalMemberClassFlags, legalMethodFlags, legalTopLevelClassFlags, loadedResolver, localInstance, Long, methodCallValid, methodInstance, moreSpecific, Native, NoFlags, Null, NullPointerException, numericConversionValid, numericConversionValid, Object, OutOfBoundsException, overrides, packageContextResolver, packageContextResolver, packageContextResolver, packageEquals, packageExists, packageForName, packageForName, parsedResolver, placeHolder, placeHolder, primitiveForName, Private, promote, promote, Protected, Public, restoreSystemResolver, RuntimeException, saveSystemResolver, Serializable, Short, Static, staticTarget, StrictFP, String, superType, Synchronized, systemResolver, Throwable, throwsSubset, Transient, translateArray, translateClass, translatePackage, translatePrimitive, typeEquals, typeForName, uncheckedExceptions, unknownPackage, unknownQualifier, unknownType, Void, Volatile, wrapperTypeString |
Method Detail |
---|
polyglot.types.PrimitiveType Label()
polyglot.types.PrimitiveType Principal()
polyglot.types.Type PrincipalClass()
LabeledType labeledType(polyglot.util.Position pos, polyglot.types.Type type, Label label)
polyglot.types.ClassType nullInstantiate(polyglot.util.Position pos, polyglot.ext.param.types.PClass pc)
ParamInstance paramInstance(polyglot.util.Position pos, JifClassType container, ParamInstance.Kind kind, java.lang.String name)
PrincipalInstance principalInstance(polyglot.util.Position pos, ExternalPrincipal principal)
ConstArrayType constArrayOf(polyglot.types.Type type)
ConstArrayType constArrayOf(polyglot.util.Position pos, polyglot.types.Type type)
ConstArrayType constArrayOf(polyglot.types.Type type, int dims)
ConstArrayType constArrayOf(polyglot.util.Position pos, polyglot.types.Type type, int dims)
ConstArrayType constArrayOf(polyglot.util.Position position, polyglot.types.Type type, int dims, boolean castableToNonConst)
ConstArrayType constArrayOf(polyglot.util.Position position, polyglot.types.Type type, int dims, boolean castableToNonConst, boolean recurseIntoBaseType)
JifMethodInstance jifMethodInstance(polyglot.util.Position pos, polyglot.types.ReferenceType container, polyglot.types.Flags flags, polyglot.types.Type returnType, java.lang.String name, Label startLabel, boolean isDefaultStartLabel, java.util.List formalTypes, java.util.List formalArgLabels, Label endLabel, boolean isDefaultEndLabel, java.util.List excTypes, java.util.List constraints)
boolean isPrincipal(polyglot.types.Type t)
boolean isLabel(polyglot.types.Type t)
PathMap pathMap()
PathMap pathMap(Path path, Label L)
ExceptionPath exceptionPath(polyglot.types.Type type)
Path gotoPath(polyglot.ast.Branch.Kind kind, java.lang.String target)
Param unknownParam(polyglot.util.Position pos)
ParamPrincipal principalParam(polyglot.util.Position pos, ParamInstance pi)
DynamicPrincipal dynamicPrincipal(polyglot.util.Position pos, AccessPath path)
ExternalPrincipal externalPrincipal(polyglot.util.Position pos, java.lang.String name)
UnknownPrincipal unknownPrincipal(polyglot.util.Position pos)
TopPrincipal topPrincipal(polyglot.util.Position pos)
BottomPrincipal bottomPrincipal(polyglot.util.Position pos)
Principal conjunctivePrincipal(polyglot.util.Position pos, Principal conjunctLeft, Principal conjunctRight)
Principal conjunctivePrincipal(polyglot.util.Position pos, java.util.Collection principals)
Principal disjunctivePrincipal(polyglot.util.Position pos, Principal disjunctLeft, Principal disjunctRight)
Principal disjunctivePrincipal(polyglot.util.Position pos, java.util.Collection principals)
Principal pathToPrincipal(polyglot.util.Position pos, AccessPath path)
VarPrincipal freshPrincipalVariable(polyglot.util.Position pos, java.lang.String s, java.lang.String description)
VarLabel freshLabelVariable(polyglot.util.Position pos, java.lang.String s, java.lang.String description)
Label topLabel(polyglot.util.Position pos)
Label bottomLabel(polyglot.util.Position pos)
Label noComponentsLabel(polyglot.util.Position pos)
Label notTaken(polyglot.util.Position pos)
Label topLabel()
Label bottomLabel()
Label noComponentsLabel()
Label notTaken()
CovariantParamLabel covariantLabel(polyglot.util.Position pos, ParamInstance pi)
ParamLabel paramLabel(polyglot.util.Position pos, ParamInstance pi)
DynamicLabel dynamicLabel(polyglot.util.Position pos, AccessPath path)
ArgLabel argLabel(polyglot.util.Position pos, polyglot.types.LocalInstance li, polyglot.types.CodeInstance ci)
ArgLabel argLabel(polyglot.util.Position pos, ParamInstance li)
Label callSitePCLabel(JifProcedureInstance pi)
ThisLabel thisLabel(polyglot.util.Position pos, JifClassType ct)
ThisLabel thisLabel(JifClassType ct)
ThisLabel thisLabel(polyglot.types.ArrayType ct)
UnknownLabel unknownLabel(polyglot.util.Position pos)
PairLabel pairLabel(polyglot.util.Position pos, ConfPolicy confPol, IntegPolicy integPol)
WritersToReadersLabel writersToReadersLabel(polyglot.util.Position pos, Label L)
Label pathToLabel(polyglot.util.Position pos, AccessPath path)
ReaderPolicy readerPolicy(polyglot.util.Position pos, Principal owner, Principal reader)
ReaderPolicy readerPolicy(polyglot.util.Position pos, Principal owner, java.util.Collection readers)
WriterPolicy writerPolicy(polyglot.util.Position pos, Principal owner, Principal writer)
WriterPolicy writerPolicy(polyglot.util.Position pos, Principal owner, java.util.Collection writers)
ConfPolicy bottomConfPolicy(polyglot.util.Position pos)
IntegPolicy bottomIntegPolicy(polyglot.util.Position pos)
ConfPolicy topConfPolicy(polyglot.util.Position pos)
IntegPolicy topIntegPolicy(polyglot.util.Position pos)
boolean leq(Label L1, Label L2)
boolean actsFor(Principal p, Principal q)
Label join(Label L1, Label L2)
Label joinLabel(polyglot.util.Position pos, java.util.Set components)
Label meet(Label L1, Label L2)
Label meetLabel(polyglot.util.Position pos, java.util.Set components)
boolean leq(Policy p1, Policy p2)
ConfPolicy joinConfPolicy(polyglot.util.Position pos, java.util.Set components)
IntegPolicy joinIntegPolicy(polyglot.util.Position pos, java.util.Set components)
ConfPolicy meetConfPolicy(polyglot.util.Position pos, java.util.Set components)
IntegPolicy meetIntegPolicy(polyglot.util.Position pos, java.util.Set components)
ConfPolicy join(ConfPolicy p1, ConfPolicy p2)
ConfPolicy meet(ConfPolicy p1, ConfPolicy p2)
IntegPolicy join(IntegPolicy p1, IntegPolicy p2)
IntegPolicy meet(IntegPolicy p1, IntegPolicy p2)
ConfPolicy confProjection(Label L)
IntegPolicy integProjection(Label L)
ActsForConstraint actsForConstraint(polyglot.util.Position pos, Principal actor, Principal granter, boolean isEquiv)
LabelLeAssertion labelLeAssertion(polyglot.util.Position pos, Label lhs, Label rhs)
AuthConstraint authConstraint(polyglot.util.Position pos, java.util.List principals)
CallerConstraint callerConstraint(polyglot.util.Position pos, java.util.List principals)
AutoEndorseConstraint autoEndorseConstraint(polyglot.util.Position pos, Label endorseTo)
Label labelOfField(polyglot.types.FieldInstance vi, Label pc)
Label labelOfLocal(polyglot.types.LocalInstance vi, Label pc)
Label labelOfType(polyglot.types.Type type)
Label labelOfType(polyglot.types.Type type, Label defaultLabel)
defaultLabel
if unlabeled.
polyglot.types.Type unlabel(polyglot.types.Type type)
boolean isLabeled(polyglot.types.Type type)
boolean isJifClass(polyglot.types.Type t)
boolean isParamsRuntimeRep(polyglot.types.Type t)
polyglot.types.ClassType hasUntrustedAncestor(polyglot.types.Type t)
t
- Type to check
java.util.List abstractSuperInterfaces(polyglot.types.ReferenceType rt)
boolean isAccessible(polyglot.types.MemberInstance mi, polyglot.types.ClassType contextClass)
isAccessible
in interface polyglot.types.TypeSystem
Solver createSolver(java.lang.String solverName)
LabelEnv createLabelEnv()
DefaultSignature defaultSignature()
boolean equalsNoStrip(polyglot.types.TypeObject t1, polyglot.types.TypeObject t2)
boolean equalsStrip(polyglot.types.TypeObject t1, polyglot.types.TypeObject t2)
LabelTypeCheckUtil labelTypeCheckUtil()
boolean isMarkerFieldName(java.lang.String s)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |