jif.types.principal

## Class VarPrincipal_c

- java.lang.Object
- - polyglot.types.TypeObject_c
  - - jif.types.Param_c
    - - jif.types.principal.Principal_c
      - - jif.types.principal.VarPrincipal_c

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Cloneable, ActsForParam, Variable, Param, Principal, VarPrincipal, polyglot.types.TypeObject, polyglot.util.Copy<polyglot.types.TypeObject>

      public class VarPrincipal_c
      extends Principal_c
      implements VarPrincipal

  An implementation of the `VarPrincipal` interface.
  See Also:
    Serialized Form

- - ### Nested Class Summary

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

      `polyglot.util.Copy.Util`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected java.lang.String` | `description`

    - ### Fields inherited from class jif.types.principal.Principal_c

      `variables`

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

      `position, ts`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `VarPrincipal_c(java.lang.String name, java.lang.String description, JifTypeSystem ts, polyglot.util.Position pos)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `equalsImpl(polyglot.types.TypeObject o)`
    `int` | `hashCode()`
    `boolean` | `isCanonical()`
    `boolean` | `isRuntimeRepresentable()`
    `boolean` | `mustRuntimeRepresentable()` Does this var label need to map to a runtime representable label?
    `java.lang.String` | `name()`
    `protected void` | `setDescription(java.lang.String description)`
    `void` | `setMustRuntimeRepresentable()` Set the mustRuntimeRepresentable flag, meaning that any solution for this VarLabel must be to a runtime representable label.
    `java.lang.String` | `toString()`
    `java.util.Set<Variable>` | `variables()` The set of variables that this label contains including variables contained in upper bounds of arg labels.

    - ### Methods inherited from class jif.types.principal.Principal_c

      `hasVariables, isBottomPrincipal, isTopPrincipal, labelCheck, simplify, subst, throwTypes, toJava`

    - ### Methods inherited from class jif.types.Param_c

      `typeSystem`

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

      `copy, equals, position`

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

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

    - ### Methods inherited from interface jif.types.principal.Principal

      `hasVariables, isBottomPrincipal, isTopPrincipal, labelCheck, simplify, subst, throwTypes`

    - ### Methods inherited from interface jif.types.ActsForParam

      `toJava`

    - ### Methods inherited from interface jif.types.Param

      `typeSystem`

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

      `position`

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

      `copy`

- - ### Field Detail

    - #### description

          protected java.lang.String description

  - ### Constructor Detail

    - #### VarPrincipal_c

          public VarPrincipal_c(java.lang.String name,
                                java.lang.String description,
                                JifTypeSystem ts,
                                polyglot.util.Position pos)

  - ### Method Detail

    - #### setDescription

          protected void setDescription(java.lang.String description)

    - #### isCanonical

          public boolean isCanonical()

      Specified by:
        `isCanonical` in interface `Param`
      Specified by:
        `isCanonical` in interface `polyglot.types.TypeObject`
      Specified by:
        `isCanonical` in class `Principal_c`

    - #### setMustRuntimeRepresentable

          public void setMustRuntimeRepresentable()

      Description copied from interface: `Variable`
      Set the mustRuntimeRepresentable flag, meaning that any solution for this VarLabel must be to a runtime representable label.
      Specified by:
        `setMustRuntimeRepresentable` in interface `Variable`

    - #### mustRuntimeRepresentable

          public boolean mustRuntimeRepresentable()

      Description copied from interface: `Variable`
      Does this var label need to map to a runtime representable label?
      Specified by:
        `mustRuntimeRepresentable` in interface `Variable`

    - #### equalsImpl

          public boolean equalsImpl(polyglot.types.TypeObject o)

      Specified by:
        `equalsImpl` in interface `polyglot.types.TypeObject`
      Specified by:
        `equalsImpl` in class `Principal_c`

    - #### hashCode

          public int hashCode()

      Specified by:
        `hashCode` in class `Principal_c`

    - #### variables

          public java.util.Set<Variable> variables()

      Description copied from interface: `Principal`
      The set of variables that this label contains including variables contained in upper bounds of arg labels.
      Specified by:
        `variables` in interface `Principal`
      Overrides:
        `variables` in class `Principal_c`

    - #### name

          public java.lang.String name()

      Specified by:
        `name` in interface `Variable`

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`

    - #### isRuntimeRepresentable

          public boolean isRuntimeRepresentable()

      Specified by:
        `isRuntimeRepresentable` in interface `Param`
      Specified by:
        `isRuntimeRepresentable` in class `Principal_c`