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
Fields inherited from class polyglot.types.TypeObject_c |
position, ts |
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 polyglot.types.TypeObject |
position, typeSystem |
Methods inherited from interface polyglot.util.Copy |
copy |
ParamPrincipal_c
public ParamPrincipal_c(ParamInstance paramInstance,
JifTypeSystem ts,
polyglot.util.Position pos)
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)