|
|||||||||
| 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.SemanticExceptionjava.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 | ||||||||