Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## jif.extension
Class JifDowngradeStmtExt

    java.lang.Object
      polyglot.ast.Ext_c
          jif.ast.Jif_c
              jif.extension.JifStmtExt_c
                  jif.extension.JifDowngradeStmtExt

All Implemented Interfaces:
  java.lang.Cloneable, Jif, JifStmtExt, polyglot.ast.Ext, polyglot.util.Copy

Direct Known Subclasses:
  JifDeclassifyStmtExt, JifEndorseStmtExt

    public abstract class JifDowngradeStmtExt

extends JifStmtExt_c

The Jif extension of the `DeclassifyStmt` node.

See Also:
  `DeclassifyStmt`

Field Summary

Fields inherited from class jif.extension.JifStmtExt_c
`stmtDel`

Fields inherited from class jif.ast.Jif_c
`toJava, X`

Fields inherited from class polyglot.ast.Ext_c
`ext, node`

Constructor Summary
`JifDowngradeStmtExt(ToJavaExt toJava)`

Method Summary
`protected JifContext` | `bodyContext(LabelChecker lc, JifContext A, Label downgradeFrom, Label downgradeTo)`
`protected void` | `checkAdditionalConstraints(LabelChecker lc, JifContext A, Label labelFrom, Label labelTo, polyglot.util.Position pos)` Check any additional constraints
`protected abstract void` | `checkAuthority(LabelChecker lc, JifContext A, Label labelFrom, Label labelTo, polyglot.util.Position pos)` Check the authority condition
`protected polyglot.ast.Stmt` | `checkBody(LabelChecker lc, JifContext A, Label downgradeFrom, Label downgradeTo)`
`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 void` | `checkPCconstraint(LabelChecker lc, JifContext A, Label pc, Label downgradeFrom, boolean boundSpecified)`
`protected abstract void` | `checkRobustness(LabelChecker lc, JifContext A, Label labelFrom, Label labelTo, polyglot.util.Position pos)` Check the robustness condition
`protected JifContext` | `declassifyConstraintContext(JifContext A)`
`protected PathMap` | `initPathMap(LabelChecker lc)`
`polyglot.ast.Node` | `labelCheckStmt(LabelChecker lc)`

Methods inherited from class jif.extension.JifStmtExt_c
`copy, init, labelCheck, stmtDel, stmtDel`

Methods inherited from class jif.ast.Jif_c
`checkAndRemoveThrowType, checkThrowTypes, getPathMap, integerBoundsCalculated, toJava, toJava, updatePathMap, X, X`

Methods inherited from class polyglot.ast.Ext_c
`dump, ext, ext, node, toString`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface polyglot.ast.Ext
`dump, ext, ext, node`

Constructor Detail

### JifDowngradeStmtExt

    public JifDowngradeStmtExt(ToJavaExt toJava)

Method Detail

### declassifyConstraintContext

    protected JifContext declassifyConstraintContext(JifContext A)
                                              throws polyglot.types.SemanticException

  Throws:
    `polyglot.types.SemanticException`

### labelCheckStmt

    public final polyglot.ast.Node labelCheckStmt(LabelChecker lc)
                                           throws polyglot.types.SemanticException

  Specified by:
    `labelCheckStmt` in interface `JifStmtExt`
  Specified by:
    `labelCheckStmt` in class `JifStmtExt_c`
  Throws:
    `polyglot.types.SemanticException`

### checkPCconstraint

    protected void checkPCconstraint(LabelChecker lc,
                                     JifContext A,
                                     Label pc,
                                     Label downgradeFrom,
                                     boolean boundSpecified)
                              throws polyglot.types.SemanticException

  Throws:
    `polyglot.types.SemanticException`

### checkBody

    protected polyglot.ast.Stmt checkBody(LabelChecker lc,
                                          JifContext A,
                                          Label downgradeFrom,
                                          Label downgradeTo)
                                   throws polyglot.types.SemanticException

  Throws:
    `polyglot.types.SemanticException`

### bodyContext

    protected JifContext bodyContext(LabelChecker lc,
                                     JifContext A,
                                     Label downgradeFrom,
                                     Label downgradeTo)

### initPathMap

    protected PathMap initPathMap(LabelChecker lc)
                           throws polyglot.types.SemanticException

  Throws:
    `polyglot.types.SemanticException`

### checkOneDimenOnly

    protected abstract void checkOneDimenOnly(LabelChecker lc,
                                              JifContext A,
                                              Label labelFrom,
                                              Label labelTo,
                                              polyglot.util.Position pos)
                                       throws polyglot.types.SemanticException

  Check that only the integrity/confidentiality is downgraded, and not the other dimension.

  Parameters:
    `lc` -
    `labelFrom` -
    `labelTo` -
  Throws:
    `polyglot.types.SemanticException`

### checkAuthority

    protected abstract void checkAuthority(LabelChecker lc,
                                           JifContext A,
                                           Label labelFrom,
                                           Label labelTo,
                                           polyglot.util.Position pos)
                                    throws polyglot.types.SemanticException

  Check the authority condition

  Parameters:
    `lc` -
    `labelFrom` -
    `labelTo` -
  Throws:
    `polyglot.types.SemanticException`

### checkRobustness

    protected abstract void checkRobustness(LabelChecker lc,
                                            JifContext A,
                                            Label labelFrom,
                                            Label labelTo,
                                            polyglot.util.Position pos)
                                     throws polyglot.types.SemanticException

  Check the robustness condition

  Parameters:
    `lc` -
    `labelFrom` -
    `labelTo` -
  Throws:
    `polyglot.types.SemanticException`

### checkAdditionalConstraints

    protected void checkAdditionalConstraints(LabelChecker lc,
                                              JifContext A,
                                              Label labelFrom,
                                              Label labelTo,
                                              polyglot.util.Position pos)
                                       throws polyglot.types.SemanticException

  Check any additional constraints

  Parameters:
    `lc` -
    `labelFrom` -
    `labelTo` -
  Throws:
    `polyglot.types.SemanticException`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD