jif.types

## Class JifSubstClassType_c

- java.lang.Object
- - polyglot.types.TypeObject_c
  - - polyglot.types.Type_c
    - - polyglot.types.ReferenceType_c
      - - polyglot.types.ClassType_c
        - - polyglot.ext.param.types.SubstClassType_c<ParamInstance,Param>
          - - jif.types.JifSubstClassType_c

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, JifClassType, JifSubstType, polyglot.ext.param.types.InstType<ParamInstance,Param>, polyglot.ext.param.types.SubstType<ParamInstance,Param>, polyglot.types.ClassType, polyglot.types.Declaration, polyglot.types.Importable, polyglot.types.MemberInstance, polyglot.types.Named, polyglot.types.Qualifier, polyglot.types.ReferenceType, polyglot.types.Type, polyglot.types.TypeObject, polyglot.util.Copy<polyglot.types.TypeObject>

      public class JifSubstClassType_c
      extends polyglot.ext.param.types.SubstClassType_c<ParamInstance,Param>
      implements JifSubstType

  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface polyglot.types.ClassType

      `polyglot.types.ClassType.Kind`

    - ### Nested classes/interfaces inherited from interface polyglot.util.Copy

      `polyglot.util.Copy.Util`

  - ### Field Summary

    - ### Fields inherited from class polyglot.ext.param.types.SubstClassType_c

      `base, constructors, fields, interfaces, memberClasses, methods, subst, substConstructors, substFields, substInterfaces, substMemberClasses, substMethods`

    - ### Fields inherited from class polyglot.types.ClassType_c

      `decl, memberCache`

    - ### Fields inherited from class polyglot.types.TypeObject_c

      `position, ts`

    - ### Fields inherited from interface polyglot.types.ClassType

      `ANONYMOUS, LOCAL, MEMBER, TOP_LEVEL`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JifSubstClassType_c(JifTypeSystem ts, polyglot.util.Position pos, polyglot.types.ClassType base, JifSubst subst)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<Param>` | `actuals()` Returns a list of `Param`s, being the parameters with which this class is instantiated.
    `java.util.List<Principal>` | `authority()` The principals that grant authority to objects of this class, that is, the principals listed in the authority clause.
    `java.util.List<Assertion>` | `constraints()` Constraints on the principal hierarchy.
    `java.util.List<Principal>` | `constructorCallAuthority()` The principals whose authority is required by the context that creates a new instance of this class.
    `java.util.List<? extends polyglot.types.FieldInstance>` | `fields()`
    `polyglot.ext.param.types.PClass<ParamInstance,Param>` | `instantiatedFrom()`
    `boolean` | `isUnsafe()` Returns whether this class has been label-checked.
    `ProviderLabel` | `provider()` Returns the provider label of the implementation of this class.
    `ThisLabel` | `thisLabel()` Returns this class's "this" label.
    `ThisLabel` | `thisLabel(polyglot.util.Position p)`
    `java.lang.String` | `toString()`
    `JifTypeSystem` | `typeSystem()`

    - ### Methods inherited from class polyglot.ext.param.types.SubstClassType_c

      `base, constructors, deepCopy, entries, equalsImpl, flags, fullName, hashCode, inStaticContext, interfaces, job, kind, memberClasses, methods, name, outer, package_, setContainer, setFlags, subst, superType, translate, typeEqualsImpl`

    - ### Methods inherited from class polyglot.types.ClassType_c

      `container, copy, declaration, descendsFromImpl, fieldNamed, hasEnclosingInstance, hasEnclosingInstanceImpl, isAnonymous, isCanonical, isCastValidImpl, isClass, isEnclosed, isEnclosedImpl, isImplicitCastValidImpl, isInner, isInnerClass, isLocal, isMember, isNested, isThrowable, isTopLevel, isUncheckedException, memberClassNamed, members, print, resolver, setDeclaration, toClass`

    - ### Methods inherited from class polyglot.types.ReferenceType_c

      `hasMethod, hasMethodImpl, isReference, methods, methodsNamed, toReference`

    - ### Methods inherited from class polyglot.types.Type_c

      `arrayOf, arrayOf, descendsFrom, isArray, isBoolean, isByte, isCastValid, isChar, isComparable, isDouble, isFloat, isImplicitCastValid, isInt, isIntOrLess, isLong, isLongOrLess, isNull, isNumeric, isPackage, isPrimitive, isShort, isSubtype, isSubtypeImpl, isType, isVoid, numericConversionValid, numericConversionValid, numericConversionValidImpl, numericConversionValidImpl, toArray, toNull, toPackage, toPrimitive, toType, typeEquals`

    - ### Methods inherited from class polyglot.types.TypeObject_c

      `equals, position`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface polyglot.types.ClassType

      `constructors, fieldNamed, hasEnclosingInstance, hasEnclosingInstanceImpl, inStaticContext, isAnonymous, isEnclosed, isEnclosedImpl, isInner, isInnerClass, isLocal, isMember, isNested, isTopLevel, kind, memberClasses, memberClassNamed, outer, resolver`

    - ### Methods inherited from interface polyglot.types.Importable

      `package_`

    - ### Methods inherited from interface polyglot.types.Named

      `fullName, name`

    - ### Methods inherited from interface polyglot.types.ReferenceType

      `hasMethod, hasMethodImpl, interfaces, members, methods, methods, methodsNamed, superType`

    - ### Methods inherited from interface polyglot.types.Type

      `arrayOf, arrayOf, descendsFrom, descendsFromImpl, isArray, isBoolean, isByte, isCastValid, isCastValidImpl, isChar, isClass, isComparable, isDouble, isFloat, isImplicitCastValid, isImplicitCastValidImpl, isInt, isIntOrLess, isLong, isLongOrLess, isNull, isNumeric, isPrimitive, isReference, isShort, isSubtype, isSubtypeImpl, isThrowable, isUncheckedException, isVoid, numericConversionValid, numericConversionValid, numericConversionValidImpl, numericConversionValidImpl, print, toArray, toClass, toNull, toPrimitive, toReference, translate, typeEquals, typeEqualsImpl`

    - ### Methods inherited from interface polyglot.types.Qualifier

      `isPackage, isType, toPackage, toType`

    - ### Methods inherited from interface polyglot.types.TypeObject

      `equalsImpl, isCanonical, position`

    - ### Methods inherited from interface polyglot.util.Copy

      `copy`

    - ### Methods inherited from interface polyglot.types.MemberInstance

      `container, flags, setContainer, setFlags`

    - ### Methods inherited from interface polyglot.types.Declaration

      `declaration, setDeclaration`

    - ### Methods inherited from interface polyglot.ext.param.types.SubstType

      `base, entries, subst`

- - ### Constructor Detail

    - #### JifSubstClassType_c

          public JifSubstClassType_c(JifTypeSystem ts,
                                     polyglot.util.Position pos,
                                     polyglot.types.ClassType base,
                                     JifSubst subst)

  - ### Method Detail

    - #### fields

          public java.util.List<? extends polyglot.types.FieldInstance> fields()

      Specified by:
        `fields` in interface `polyglot.types.ReferenceType`
      Overrides:
        `fields` in class `polyglot.ext.param.types.SubstClassType_c<ParamInstance,Param>`

    - #### instantiatedFrom

          public polyglot.ext.param.types.PClass<ParamInstance,Param> instantiatedFrom()

      Specified by:
        `instantiatedFrom` in interface `polyglot.ext.param.types.InstType<ParamInstance,Param>`

    - #### actuals

          public java.util.List<Param> actuals()

      Description copied from interface: `JifClassType`
      Returns a list of `Param`s, being the parameters with which this class is instantiated.
      Specified by:
        `actuals` in interface `JifClassType`
      Specified by:
        `actuals` in interface `polyglot.ext.param.types.InstType<ParamInstance,Param>`
      Returns:
        List of Param

    - #### typeSystem

          public JifTypeSystem typeSystem()

      Specified by:
        `typeSystem` in interface `JifClassType`
      Specified by:
        `typeSystem` in interface `polyglot.types.TypeObject`
      Overrides:
        `typeSystem` in class `polyglot.types.TypeObject_c`

    - #### authority

          public java.util.List<Principal> authority()

      Description copied from interface: `JifClassType`
      The principals that grant authority to objects of this class, that is, the principals listed in the authority clause.
      Specified by:
        `authority` in interface `JifClassType`

    - #### constraints

          public java.util.List<Assertion> constraints()

      Description copied from interface: `JifClassType`
      Constraints on the principal hierarchy.
      Specified by:
        `constraints` in interface `JifClassType`

    - #### constructorCallAuthority

          public java.util.List<Principal> constructorCallAuthority()

      Description copied from interface: `JifClassType`
      The principals whose authority is required by the context that creates a new instance of this class. More precisely, this is (possibly instantiated) parameter principals that are in the authority list. See Andrew's thesis, 4.6.2.
      Specified by:
        `constructorCallAuthority` in interface `JifClassType`

    - #### thisLabel

          public ThisLabel thisLabel()

      Description copied from interface: `JifClassType`
      Returns this class's "this" label.
      Specified by:
        `thisLabel` in interface `JifClassType`
      See Also:
        `ThisLabel`

    - #### thisLabel

          public ThisLabel thisLabel(polyglot.util.Position p)

      Specified by:
        `thisLabel` in interface `JifClassType`

    - #### toString

          public java.lang.String toString()

      Specified by:
        `toString` in interface `polyglot.types.Type`
      Overrides:
        `toString` in class `polyglot.ext.param.types.SubstClassType_c<ParamInstance,Param>`

    - #### provider

          public ProviderLabel provider()

      Description copied from interface: `JifClassType`
      Returns the provider label of the implementation of this class.
      Specified by:
        `provider` in interface `JifClassType`

    - #### isUnsafe

          public boolean isUnsafe()

      Description copied from interface: `JifClassType`
      Returns whether this class has been label-checked.
      Specified by:
        `isUnsafe` in interface `JifClassType`