public class ParamPrincipal_c extends Principal_c implements ParamPrincipal
ParamPrincipal interface.variables| Constructor and Description |
|---|
ParamPrincipal_c(ParamInstance paramInstance,
JifTypeSystem ts,
polyglot.util.Position pos) |
| Modifier and Type | Method and Description |
|---|---|
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() |
hasVariables, isBottomPrincipal, isTopPrincipal, simplify, subst, throwTypes, toJava, variablestypeSystemclone, finalize, getClass, notify, notifyAll, wait, wait, waithasVariables, isBottomPrincipal, isTopPrincipal, simplify, subst, throwTypes, variablestoJavatypeSystempublic ParamPrincipal_c(ParamInstance paramInstance, JifTypeSystem ts, polyglot.util.Position pos)
public ParamInstance paramInstance()
paramInstance in interface ParamPrincipalpublic boolean isRuntimeRepresentable()
isRuntimeRepresentable in interface ParamisRuntimeRepresentable in class Principal_cpublic boolean isCanonical()
isCanonical in interface ParamisCanonical in interface polyglot.types.TypeObjectisCanonical in class Principal_cpublic java.lang.String toString()
toString in class java.lang.Objectpublic boolean equalsImpl(polyglot.types.TypeObject o)
equalsImpl in interface polyglot.types.TypeObjectequalsImpl in class Principal_cpublic int hashCode()
hashCode in class Principal_cpublic PathMap labelCheck(JifContext A, LabelChecker lc)
Principal
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;
}
labelCheck in interface PrincipallabelCheck in class Principal_cJifExt.labelCheck(LabelChecker),
Label.labelCheck(JifContext, LabelChecker)