|
|||||||||
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 |
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)
|
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)
|
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 |
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". |
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.Collection components)
|
IntegPolicy |
joinIntegPolicy(polyglot.util.Position pos,
java.util.Collection components)
|
Label |
joinLabel(polyglot.util.Position pos,
java.util.Collection 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 env . |
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.Collection components)
|
IntegPolicy |
meetIntegPolicy(polyglot.util.Position pos,
java.util.Collection components)
|
Label |
meetLabel(polyglot.util.Position pos,
java.util.Collection 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(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, 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)
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)
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)
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)
env
.
Label join(Label L1, Label L2)
Label joinLabel(polyglot.util.Position pos, java.util.Collection components)
Label meet(Label L1, Label L2)
Label meetLabel(polyglot.util.Position pos, java.util.Collection components)
boolean leq(Policy p1, Policy p2)
ConfPolicy joinConfPolicy(polyglot.util.Position pos, java.util.Collection components)
IntegPolicy joinIntegPolicy(polyglot.util.Position pos, java.util.Collection components)
ConfPolicy meetConfPolicy(polyglot.util.Position pos, java.util.Collection components)
IntegPolicy meetIntegPolicy(polyglot.util.Position pos, java.util.Collection 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()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |