|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Principal
The root interface of all kinds of Jif principals.
Method Summary | |
---|---|
boolean |
hasVariables()
Does the label contain any variables at all? This includes variables that are in bounds of arg labels. |
boolean |
isBottomPrincipal()
|
boolean |
isTopPrincipal()
|
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. |
Principal |
simplify()
Simplify the label, using the actsfor relation if needed |
Principal |
subst(LabelSubstitution labelSubst)
|
java.util.List |
throwTypes(polyglot.types.TypeSystem ts)
If the principal is runtime representable, when it is evaluated at runtime it may throw exceptions. |
polyglot.ast.Expr |
toJava(JifToJavaRewriter rw)
|
java.util.Set |
variables()
The set of variables that this label contains including variables contained in upper bounds of arg labels. |
Methods inherited from interface jif.types.Param |
---|
isCanonical, isRuntimeRepresentable |
Methods inherited from interface polyglot.types.TypeObject |
---|
equalsImpl, position, typeSystem |
Methods inherited from interface polyglot.util.Copy |
---|
copy |
Method Detail |
---|
Principal subst(LabelSubstitution labelSubst) throws polyglot.types.SemanticException
labelSubst
- The LabelSubstitution
to apply to this
principal
polyglot.types.SemanticException
PathMap labelCheck(JifContext A, LabelChecker lc)
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; }
Jif.labelCheck(LabelChecker)
,
Label.labelCheck(JifContext, LabelChecker)
polyglot.ast.Expr toJava(JifToJavaRewriter rw) throws polyglot.types.SemanticException
polyglot.types.SemanticException
java.util.List throwTypes(polyglot.types.TypeSystem ts)
boolean hasVariables()
java.util.Set variables()
boolean isTopPrincipal()
boolean isBottomPrincipal()
Principal simplify()
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |