Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## jif.types
Interface JifTypeSystem

All Superinterfaces:
  polyglot.ext.param.types.ParamTypeSystem, polyglot.types.TypeSystem

All Known Implementing Classes:
  JifTypeSystem_c

    public interface JifTypeSystem

extends polyglot.ext.param.types.ParamTypeSystem

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

### Label

    polyglot.types.PrimitiveType Label()

  Returns the "label" type.

### Principal

    polyglot.types.PrimitiveType Principal()

  Returns the "principal" type.

### PrincipalClass

    polyglot.types.Type PrincipalClass()

  Returns the class jif.lang.Principal.

### labeledType

    LabeledType labeledType(polyglot.util.Position pos,
                            polyglot.types.Type type,
                            Label label)

  Returns a labeled type, type{label}.

### nullInstantiate

    polyglot.types.ClassType nullInstantiate(polyglot.util.Position pos,
                                             polyglot.ext.param.types.PClass pc)

### paramInstance

    ParamInstance paramInstance(polyglot.util.Position pos,
                                JifClassType container,
                                ParamInstance.Kind kind,
                                java.lang.String name)

  Constructs a parameter instance for a class parameter declaration

### principalInstance

    PrincipalInstance principalInstance(polyglot.util.Position pos,
                                        ExternalPrincipal principal)

  Constructs a principal instance for an external principal.

### isPrincipal

    boolean isPrincipal(polyglot.types.Type t)

  Tests if the type is "principal".

### isLabel

    boolean isLabel(polyglot.types.Type t)

  Tests if the type is "label".

### pathMap

    PathMap pathMap()

### pathMap

    PathMap pathMap(Path path,
                    Label L)

### exceptionPath

    ExceptionPath exceptionPath(polyglot.types.Type type)

### gotoPath

    Path gotoPath(polyglot.ast.Branch.Kind kind,
                  java.lang.String target)

### unknownParam

    Param unknownParam(polyglot.util.Position pos)

### principalParam

    ParamPrincipal principalParam(polyglot.util.Position pos,
                                  ParamInstance pi)

### dynamicPrincipal

    DynamicPrincipal dynamicPrincipal(polyglot.util.Position pos,
                                      AccessPath path)

### externalPrincipal

    ExternalPrincipal externalPrincipal(polyglot.util.Position pos,
                                        java.lang.String name)

### unknownPrincipal

    UnknownPrincipal unknownPrincipal(polyglot.util.Position pos)

### freshLabelVariable

    VarLabel freshLabelVariable(polyglot.util.Position pos,
                                java.lang.String s,
                                java.lang.String description)

### topLabel

    Label topLabel(polyglot.util.Position pos)

### bottomLabel

    Label bottomLabel(polyglot.util.Position pos)

### notTaken

    Label notTaken(polyglot.util.Position pos)

### runtimeLabel

    Label runtimeLabel(polyglot.util.Position pos)

### topLabel

    Label topLabel()

### bottomLabel

    Label bottomLabel()

### notTaken

    Label notTaken()

### runtimeLabel

    Label runtimeLabel()

### covariantLabel

    CovariantParamLabel covariantLabel(polyglot.util.Position pos,
                                       ParamInstance pi)

### paramLabel

    ParamLabel paramLabel(polyglot.util.Position pos,
                          ParamInstance pi)

### policyLabel

    PolicyLabel policyLabel(polyglot.util.Position pos,
                            Principal owner,
                            java.util.Collection readers)

### joinLabel

    Label joinLabel(polyglot.util.Position pos,
                    java.util.Collection components)

### dynamicLabel

    DynamicLabel dynamicLabel(polyglot.util.Position pos,
                              AccessPath path)

### argLabel

    ArgLabel argLabel(polyglot.util.Position pos,
                      polyglot.types.VarInstance li)

### thisLabel

    ThisLabel thisLabel(polyglot.util.Position pos,
                        JifClassType ct)

### thisLabel

    ThisLabel thisLabel(JifClassType ct)

### unknownLabel

    UnknownLabel unknownLabel(polyglot.util.Position pos)

### join

    Label join(Label L1,
               Label L2)

  Returns the join of L1 and L2.

### leq

    boolean leq(Label L1,
                Label L2,
                LabelEnv env)

  Returns true iff L1 <= L2 in `ph`.

### leq

    boolean leq(Label L1,
                Label L2)

### actsForConstraint

    ActsForConstraint actsForConstraint(polyglot.util.Position pos,
                                        Principal actor,
                                        Principal granter,
                                        boolean isEquiv)

  Construct an acts-for constraint.

### labelLeAssertion

    LabelLeAssertion labelLeAssertion(polyglot.util.Position pos,
                                      Label lhs,
                                      Label rhs)

  Construct an acts-for constraint.

### authConstraint

    AuthConstraint authConstraint(polyglot.util.Position pos,
                                  java.util.List principals)

  Construct an authority constraint.

### callerConstraint

    CallerConstraint callerConstraint(polyglot.util.Position pos,
                                      java.util.List principals)

  Construct a caller constraint.

### labelOfField

    Label labelOfField(polyglot.types.FieldInstance vi,
                       Label pc)

  Get the label of the field, folding in the PC if appropriate.

### labelOfLocal

    Label labelOfLocal(polyglot.types.LocalInstance vi,
                       Label pc)

  Get the label of the local, folding in the PC if appropriate.

### labelOfType

    Label labelOfType(polyglot.types.Type type)

  Get the label of the type, or bottom if unlabeled

### labelOfType

    Label labelOfType(polyglot.types.Type type,
                      Label defaultLabel)

  Get the label of the type, or `defaultLabel` if unlabeled.

### unlabel

    polyglot.types.Type unlabel(polyglot.types.Type type)

  Remove the label from a type, if any.

### isLabeled

    boolean isLabeled(polyglot.types.Type type)

  Returns true if the type is labeled.

### isJifClass

    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).

### isParamsRuntimeRep

    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.

### hasUntrustedAncestor

    polyglot.types.ClassType hasUntrustedAncestor(polyglot.types.Type t)

  Check if the class has an untrusted non-jif ancestor. An untrusted non-jif ancestor is any non-jif ancestor that is not one of java.lang.Object, java.lang.Throwable, java.lang.Error, java.lang.Exception, java.lang.IllegalArgumentException, java.lang.IllegalStateException, java.lang.IndexOutOfBoundsException, java.lang.RuntimeException or java.lang.SecurityException.

  Parameters:
    `t` - Type to check
  Returns:
    null if ct has no untrusted non-Jif ancestor, and the ClassType of an untrusted non-Jif ancestor otherwise.

### abstractSuperInterfaces

    java.util.List abstractSuperInterfaces(polyglot.types.ReferenceType rt)

  Exposes utility method of TypeSystem_c

### isAccessible

    boolean isAccessible(polyglot.types.MemberInstance mi,
                         polyglot.types.ClassType contextClass)

  Exposes utility method of TypeSystem_c

  Specified by:
    `isAccessible` in interface `polyglot.types.TypeSystem`

### solver

    Solver solver(java.lang.String solverName)

  Returns a new label constraint system solver.

### defaultSignature

    DefaultSignature defaultSignature()

### equalsNoStrip

    boolean equalsNoStrip(polyglot.types.TypeObject t1,
                          polyglot.types.TypeObject t2)

  Compares t1 to t2 without stripping off all the parameters and labels

  Parameters:
    `t1` -
    `t2` -
  Returns:

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD