jif.types.label

## Interface Policy

- All Superinterfaces:
    java.lang.Cloneable, polyglot.util.Copy<polyglot.types.TypeObject>, java.io.Serializable, polyglot.types.TypeObject
  All Known Subinterfaces:
    ConfPolicy, ConfProjectionPolicy, IntegPolicy, JoinConfPolicy, JoinPolicy<P>, MeetConfPolicy, ReaderPolicy, WriterPolicy
  All Known Implementing Classes:
    ConfProjectionPolicy_c, IntegProjectionPolicy_c, JoinConfPolicy_c, JoinIntegPolicy_c, JoinPolicy_c, MeetConfPolicy_c, MeetIntegPolicy_c, MeetPolicy_c, Policy_c, ReaderPolicy_c, WriterPolicy_c

      public interface Policy
      extends polyglot.types.TypeObject

  This class is the common super class for integrity polices and confidentiality policies.

- - ### Nested Class Summary

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

      `polyglot.util.Copy.Util`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `boolean` | `hasVariables()`
    `boolean` | `hasWritersToReaders()`
    `boolean` | `isBottom()`
    `boolean` | `isCanonical()`
    `boolean` | `isRuntimeRepresentable()`
    `boolean` | `isSingleton()`
    `boolean` | `isTop()`
    `PathMap` | `labelCheck(JifContext A, LabelChecker lc)`
    `Policy` | `simplify()`
    `Policy` | `subst(LabelSubstitution substitution)`
    `java.util.List<polyglot.types.Type>` | `throwTypes(polyglot.types.TypeSystem ts)`
    `java.lang.String` | `toString(java.util.Set<Label> printedLabels)`

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

      `equalsImpl, position, typeSystem`

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

      `copy`

- - ### Method Detail

    - #### isCanonical

          boolean isCanonical()

      Specified by:
        `isCanonical` in interface `polyglot.types.TypeObject`

    - #### isSingleton

          boolean isSingleton()

    - #### isRuntimeRepresentable

          boolean isRuntimeRepresentable()

    - #### isTop

          boolean isTop()

    - #### isBottom

          boolean isBottom()

    - #### hasVariables

          boolean hasVariables()

    - #### hasWritersToReaders

          boolean hasWritersToReaders()

    - #### throwTypes

          java.util.List<polyglot.types.Type> throwTypes(polyglot.types.TypeSystem ts)

    - #### subst

          Policy subst(LabelSubstitution substitution)
                throws polyglot.types.SemanticException

      Throws:
        `polyglot.types.SemanticException`

    - #### simplify

          Policy simplify()

    - #### toString

          java.lang.String toString(java.util.Set<Label> printedLabels)

      Parameters:
        `printedLabels` - the set of labels for which auxiliary information should be omitted.

    - #### labelCheck

          PathMap labelCheck(JifContext A,
                             LabelChecker lc)