jif.types

## Class JifSubst_c

- java.lang.Object
- - polyglot.ext.param.types.Subst_c<ParamInstance,Param>
  - - jif.types.JifSubst_c

- All Implemented Interfaces:
    java.io.Serializable, JifSubst, polyglot.ext.param.types.Subst<ParamInstance,Param>

      public class JifSubst_c
      extends polyglot.ext.param.types.Subst_c<ParamInstance,Param>
      implements JifSubst

  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `class` | `JifSubst_c.ConstraintXform`
    `class` | `JifSubst_c.LabelXform`
    `class` | `JifSubst_c.PrincipalXform`
    `protected class` | `JifSubst_c.SubstLabelSubst` This class is a `LabelSubstitution` that performs substitutions on `Label`s and `Principal`s.

    - ### Nested classes/interfaces inherited from class polyglot.ext.param.types.Subst_c

      `polyglot.ext.param.types.Subst_c.CacheTypeWrapper, polyglot.ext.param.types.Subst_c.ConstructorXform<T extends polyglot.types.ConstructorInstance>, polyglot.ext.param.types.Subst_c.FieldXform<T extends polyglot.types.FieldInstance>, polyglot.ext.param.types.Subst_c.MethodXform<T extends polyglot.types.MethodInstance>, polyglot.ext.param.types.Subst_c.TypeXform<T extends polyglot.types.Type>`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected JifSubst_c.SubstLabelSubst` | `substLabelSubst` An instance of the nested class `SubstLabelSubst`, to be used by `substLabel(Label)` and `substPrincipal(Principal)`.

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

      `cache, subst, substClassTypeCache, ts`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `JifSubst_c(JifTypeSystem ts, java.util.Map<ParamInstance,? extends Param> subst)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `cacheTypeEquality(polyglot.types.Type t1, polyglot.types.Type t2)`
    `java.util.Iterator<java.util.Map.Entry<ParamInstance,Param>>` | `entries()`
    `Param` | `get(ParamInstance pi)`
    `protected Label` | `subLabel(Label label, ParamInstance pi)` Return the substitution of uid, or label if not found.
    `protected Principal` | `subPrincipal(Principal principal, ParamInstance pi)` Return the substitution of uid, or principal if not found.
    `<P extends ActsForParam> P` | `substActsForParam(P param)`
    `protected polyglot.types.ClassType` | `substClassTypeImpl(polyglot.types.ClassType t)`
    `<Actor extends ActsForParam,Granter extends ActsForParam> Assertion` | `substConstraint(Assertion constraint)`
    `java.util.List<Assertion>` | `substConstraintList(java.util.List<Assertion> constraints)`
    `<CI extends polyglot.types.ConstructorInstance> CI` | `substConstructor(CI ci)`
    `<FI extends polyglot.types.FieldInstance> FI` | `substField(FI fi)` Perform substititions on a field.
    `Label` | `substLabel(Label label)`
    `java.util.List<Label>` | `substLabelList(java.util.List<Label> labels)`
    `<MI extends polyglot.types.MethodInstance> MI` | `substMethod(MI mi)`
    `Principal` | `substPrincipal(Principal principal)`
    `java.util.List<Principal>` | `substPrincipalList(java.util.List<Principal> principals)`
    `protected Param` | `substSubstValue(Param value)`
    `polyglot.types.Type` | `uncachedSubstType(polyglot.types.Type t)`

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

      `cacheGet, cachePut, equals, hashCode, is_entry, substClassType, substConstructorList, substContainer, substFieldList, substitutions, substMethodList, substPClass, substType, substTypeList, toString, typeSystem, typeWrapper`

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

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

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

      `is_entry, substConstructorList, substFieldList, substitutions, substMethodList, substPClass, substType, substTypeList, typeSystem`

- - ### Field Detail

    - #### substLabelSubst

          protected JifSubst_c.SubstLabelSubst substLabelSubst

      An instance of the nested class `SubstLabelSubst`, to be used by `substLabel(Label)` and `substPrincipal(Principal)`.

  - ### Constructor Detail

    - #### JifSubst_c

          public JifSubst_c(JifTypeSystem ts,
                            java.util.Map<ParamInstance,? extends Param> subst)

  - ### Method Detail

    - #### entries

          public java.util.Iterator<java.util.Map.Entry<ParamInstance,Param>> entries()

      Specified by:
        `entries` in interface `polyglot.ext.param.types.Subst<ParamInstance,Param>`
      Overrides:
        `entries` in class `polyglot.ext.param.types.Subst_c<ParamInstance,Param>`

    - #### get

          public Param get(ParamInstance pi)

      Specified by:
        `get` in interface `JifSubst`

    - #### cacheTypeEquality

          protected boolean cacheTypeEquality(polyglot.types.Type t1,
                                              polyglot.types.Type t2)

      Overrides:
        `cacheTypeEquality` in class `polyglot.ext.param.types.Subst_c<ParamInstance,Param>`

    - #### uncachedSubstType

          public polyglot.types.Type uncachedSubstType(polyglot.types.Type t)

      Overrides:
        `uncachedSubstType` in class `polyglot.ext.param.types.Subst_c<ParamInstance,Param>`

    - #### substClassTypeImpl

          protected polyglot.types.ClassType substClassTypeImpl(polyglot.types.ClassType t)

      Overrides:
        `substClassTypeImpl` in class `polyglot.ext.param.types.Subst_c<ParamInstance,Param>`

    - #### substMethod

          public <MI extends polyglot.types.MethodInstance> MI substMethod(MI mi)

      Specified by:
        `substMethod` in interface `polyglot.ext.param.types.Subst<ParamInstance,Param>`
      Overrides:
        `substMethod` in class `polyglot.ext.param.types.Subst_c<ParamInstance,Param>`

    - #### substConstructor

          public <CI extends polyglot.types.ConstructorInstance> CI substConstructor(CI ci)

      Specified by:
        `substConstructor` in interface `polyglot.ext.param.types.Subst<ParamInstance,Param>`
      Overrides:
        `substConstructor` in class `polyglot.ext.param.types.Subst_c<ParamInstance,Param>`

    - #### substField

          public <FI extends polyglot.types.FieldInstance> FI substField(FI fi)

      Perform substititions on a field.
      Specified by:
        `substField` in interface `polyglot.ext.param.types.Subst<ParamInstance,Param>`
      Overrides:
        `substField` in class `polyglot.ext.param.types.Subst_c<ParamInstance,Param>`

    - #### substConstraintList

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

      Specified by:
        `substConstraintList` in interface `JifSubst`

    - #### substLabelList

          public java.util.List<Label> substLabelList(java.util.List<Label> labels)

      Specified by:
        `substLabelList` in interface `JifSubst`

    - #### substPrincipalList

          public java.util.List<Principal> substPrincipalList(java.util.List<Principal> principals)

      Specified by:
        `substPrincipalList` in interface `JifSubst`

    - #### substConstraint

          public <Actor extends ActsForParam,Granter extends ActsForParam> Assertion substConstraint(Assertion constraint)

      Specified by:
        `substConstraint` in interface `JifSubst`

    - #### substActsForParam

          public <P extends ActsForParam> P substActsForParam(P param)

    - #### substLabel

          public Label substLabel(Label label)

      Specified by:
        `substLabel` in interface `JifSubst`

    - #### substPrincipal

          public Principal substPrincipal(Principal principal)

      Specified by:
        `substPrincipal` in interface `JifSubst`

    - #### subLabel

          protected Label subLabel(Label label,
                                   ParamInstance pi)

      Return the substitution of uid, or label if not found.

    - #### subPrincipal

          protected Principal subPrincipal(Principal principal,
                                           ParamInstance pi)

      Return the substitution of uid, or principal if not found.

    - #### substSubstValue

          protected Param substSubstValue(Param value)

      Overrides:
        `substSubstValue` in class `polyglot.ext.param.types.Subst_c<ParamInstance,Param>`