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.principal
Class ParamPrincipal_c

    java.lang.Object
      polyglot.types.TypeObject_c
          jif.types.principal.Principal_c
              jif.types.principal.ParamPrincipal_c

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, Param, ParamPrincipal, Principal, polyglot.types.TypeObject, polyglot.util.Copy

    public class ParamPrincipal_c

extends Principal_c
implements ParamPrincipal

An implementation of the `ParamPrincipal` interface.

See Also:
  Serialized Form

Field Summary

Fields inherited from class jif.types.principal.Principal_c
`variables`

Fields inherited from class polyglot.types.TypeObject_c
`position, ts`

Constructor Summary
`ParamPrincipal_c(ParamInstance paramInstance, JifTypeSystem ts, polyglot.util.Position pos)`

Method Summary
`boolean` | `equalsImpl(polyglot.types.TypeObject o)`
`int` | `hashCode()`
`boolean` | `isCanonical()`
`boolean` | `isRuntimeRepresentable()`
`PathMap` | `labelCheck(JifContext A, LabelChecker lc)` Label check the principal, which will determine how much information may be gained if the principal is evaluated at runtime.
`ParamInstance` | `paramInstance()`
`java.lang.String` | `toString()`

Methods inherited from class jif.types.principal.Principal_c
`hasVariables, isBottomPrincipal, isTopPrincipal, simplify, subst, throwTypes, toJava, variables`

Methods inherited from class polyglot.types.TypeObject_c
`copy, equals, position, typeSystem`

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, simplify, subst, throwTypes, toJava, variables`

Methods inherited from interface polyglot.types.TypeObject
`position, typeSystem`

Methods inherited from interface polyglot.util.Copy
`copy`

Constructor Detail

### ParamPrincipal_c

    public ParamPrincipal_c(ParamInstance paramInstance,
                            JifTypeSystem ts,
                            polyglot.util.Position pos)

Method Detail

### paramInstance

    public ParamInstance paramInstance()

  Specified by:
    `paramInstance` in interface `ParamPrincipal`

### isRuntimeRepresentable

    public boolean isRuntimeRepresentable()

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

### 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`

### toString

    public java.lang.String toString()

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

### 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`

### labelCheck

    public PathMap labelCheck(JifContext A,
                              LabelChecker lc)

  Description copied from interface: `Principal`
  Label check the principal, which will determine how much information may be gained if the principal is evaluated at runtime. For example, given the dynamic principal p, where p is a local variable, evaluation of this label at runtime will reveal as much information as the label of p. For example, the following code is illegal, as the runtime evaluation of the principal reveals too much information

       boolean{Alice:} secret = ...;
       final principal{Alice:} p = secret?Bob:Chuck;
       boolean{} leak = false;
       if (p actsfor Bob) { // evaluation of p reveals
                            // information at level {Alice:}
           leak = true;
              }

  Specified by:
    `labelCheck` in interface `Principal`
  Overrides:
    `labelCheck` in class `Principal_c`
  See Also:
    `Jif.labelCheck(LabelChecker)`, `Label.labelCheck(JifContext, LabelChecker)`

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