public abstract class JifDowngradeExprExt extends JifExprExt
DowngradeExpr
node.DowngradeExpr
,
Serialized FormConstructor and Description |
---|
JifDowngradeExprExt(ToJavaExt toJava) |
Modifier and Type | Method and Description |
---|---|
protected abstract void |
checkAuthority(LabelChecker lc,
JifContext A,
Label labelFrom,
Label labelTo,
polyglot.util.Position pos)
Check the authority condition
|
protected void |
checkDowngradeFromBound(LabelChecker lc,
JifContext A,
PathMap Xe,
DowngradeExpr d,
Label downgradeFrom,
Label downgradeTo,
boolean boundSpecified) |
protected abstract void |
checkOneDimenOnly(LabelChecker lc,
JifContext A,
Label labelFrom,
Label labelTo,
polyglot.util.Position pos)
Check that only the integrity/confidentiality is downgraded, and not
the other dimension.
|
protected abstract void |
checkRobustness(LabelChecker lc,
JifContext A,
Label labelFrom,
Label labelTo,
polyglot.util.Position pos)
Check the robustness condition
|
protected JifContext |
declassifyConstraintContext(LabelChecker lc,
JifContext A,
Label downgradeFrom,
Label downgradeTo)
TODO: document me!
|
protected PathMap |
downgradeExprPathMap(LabelChecker lc,
PathMap Xe)
TODO: document me!
|
polyglot.ast.Node |
labelCheck(LabelChecker lc)
Label check the node to which this extension is attached.
|
void |
updateContextAfterExpr(LabelChecker lc,
JifContext A,
PathMap Xe)
Utility method for updating the context after checking the expression.
|
getNumericBounds, setNumericBounds
checkAndRemoveThrowType, checkThrowTypes, copy, dump, getPathMap, init, integerBoundsCalculated, toJava, toJava, updatePathMap, X, X
addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, ext, ext, extRewrite, extRewriteEnter, extRewriteOverride, initPred, lang, node, pred, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, print, printBlock, printSubStmt, superLang, throwTypes, toString, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
addDecls, buildTypes, buildTypesEnter, checkConstants, childExpectedType, copy, copy, disambiguate, disambiguateEnter, disambiguateOverride, dump, dump, dump, dump, enterChildScope, enterScope, exceptionCheck, exceptionCheckEnter, extRewrite, extRewriteEnter, extRewriteOverride, lang, prettyPrint, prettyPrint, prettyPrint, prettyPrint, prettyPrint, throwTypes, translate, typeCheck, typeCheckEnter, typeCheckOverride, visitChild, visitChildren, visitList
public JifDowngradeExprExt(ToJavaExt toJava)
protected JifContext declassifyConstraintContext(LabelChecker lc, JifContext A, Label downgradeFrom, Label downgradeTo) throws polyglot.types.SemanticException
polyglot.types.SemanticException
public polyglot.ast.Node labelCheck(LabelChecker lc) throws polyglot.types.SemanticException
JifExt
labelCheck
in interface JifExt
labelCheck
in class JifExt_c
polyglot.types.SemanticException
public void updateContextAfterExpr(LabelChecker lc, JifContext A, PathMap Xe)
protected void checkDowngradeFromBound(LabelChecker lc, JifContext A, PathMap Xe, DowngradeExpr d, Label downgradeFrom, Label downgradeTo, boolean boundSpecified) throws polyglot.types.SemanticException
polyglot.types.SemanticException
protected PathMap downgradeExprPathMap(LabelChecker lc, PathMap Xe) throws polyglot.types.SemanticException
polyglot.types.SemanticException
protected abstract void checkOneDimenOnly(LabelChecker lc, JifContext A, Label labelFrom, Label labelTo, polyglot.util.Position pos) throws polyglot.types.SemanticException
lc
- labelFrom
- labelTo
- polyglot.types.SemanticException
protected abstract void checkAuthority(LabelChecker lc, JifContext A, Label labelFrom, Label labelTo, polyglot.util.Position pos) throws polyglot.types.SemanticException
lc
- labelFrom
- labelTo
- polyglot.types.SemanticException
protected abstract void checkRobustness(LabelChecker lc, JifContext A, Label labelFrom, Label labelTo, polyglot.util.Position pos) throws polyglot.types.SemanticException
lc
- labelFrom
- labelTo
- polyglot.types.SemanticException