|
|||||||||
| 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.VarInstance li)
|
AuthConstraint |
authConstraint(polyglot.util.Position pos,
java.util.List principals)
Construct an authority constraint. |
Label |
bottomLabel()
|
Label |
bottomLabel(polyglot.util.Position pos)
|
CallerConstraint |
callerConstraint(polyglot.util.Position pos,
java.util.List principals)
Construct a caller constraint. |
CovariantParamLabel |
covariantLabel(polyglot.util.Position pos,
ParamInstance pi)
|
DefaultSignature |
defaultSignature()
|
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 |
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. |
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". |
Label |
join(Label L1,
Label L2)
Returns the join of L1 and L2. |
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. |
boolean |
leq(Label L1,
Label L2)
|
boolean |
leq(Label L1,
Label L2,
LabelEnv env)
Returns true iff L1 <= L2 in ph. |
Label |
notTaken()
|
Label |
notTaken(polyglot.util.Position pos)
|
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)
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)
|
PolicyLabel |
policyLabel(polyglot.util.Position pos,
Principal owner,
java.util.Collection readers)
|
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)
|
Label |
runtimeLabel()
|
Label |
runtimeLabel(polyglot.util.Position pos)
|
Solver |
solver(java.lang.String solverName)
Returns a new label constraint system solver. |
ThisLabel |
thisLabel(JifClassType ct)
|
ThisLabel |
thisLabel(polyglot.util.Position pos,
JifClassType ct)
|
Label |
topLabel()
|
Label |
topLabel(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. |
| 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)
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 notTaken(polyglot.util.Position pos)
Label runtimeLabel(polyglot.util.Position pos)
Label topLabel()
Label bottomLabel()
Label notTaken()
Label runtimeLabel()
CovariantParamLabel covariantLabel(polyglot.util.Position pos,
ParamInstance pi)
ParamLabel paramLabel(polyglot.util.Position pos,
ParamInstance pi)
PolicyLabel policyLabel(polyglot.util.Position pos,
Principal owner,
java.util.Collection readers)
Label joinLabel(polyglot.util.Position pos,
java.util.Collection components)
DynamicLabel dynamicLabel(polyglot.util.Position pos,
AccessPath path)
ArgLabel argLabel(polyglot.util.Position pos,
polyglot.types.VarInstance li)
ThisLabel thisLabel(polyglot.util.Position pos,
JifClassType ct)
ThisLabel thisLabel(JifClassType ct)
UnknownLabel unknownLabel(polyglot.util.Position pos)
Label join(Label L1,
Label L2)
boolean leq(Label L1,
Label L2,
LabelEnv env)
ph.
boolean leq(Label L1,
Label L2)
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)
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.TypeSystemSolver solver(java.lang.String solverName)
DefaultSignature defaultSignature()
boolean equalsNoStrip(polyglot.types.TypeObject t1,
polyglot.types.TypeObject t2)
t1 - t2 -
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||