jif.types.hierarchy
Class LabelEnv_c

java.lang.Object
  extended by jif.types.hierarchy.LabelEnv_c
All Implemented Interfaces:
LabelEnv

public class LabelEnv_c
extends java.lang.Object
implements LabelEnv

The wrapper of a set of assumptions that can be used to decide whether L1 <= L2.


Nested Class Summary
 
Nested classes/interfaces inherited from interface jif.types.hierarchy.LabelEnv
LabelEnv.SearchState
 
Constructor Summary
LabelEnv_c(JifTypeSystem ts, boolean useCache)
           
 
Method Summary
 void addActsFor(Principal p1, Principal p2)
           
 void addAssertionLE(Label L1, Label L2)
           
 void addAssertionLE(Label L1, Label L2, boolean updateDisplayString)
           
 void addEquiv(Label L1, Label L2)
           
 void addEquiv(Principal p1, Principal p2)
           
 LabelEnv copy()
           
 java.util.Map definitions(VarMap bounds, java.util.Set seenComponents)
          Returns a Map of Strings to List[String]s which is the descriptions of any components that appear in the environment.
 boolean hasVariables()
          Do any of the assertions in this label environment contain variables?
 boolean isEmpty()
          Is this enviornment empty, or does is contain some constraints?
 boolean leq(Label L1, Label L2)
           
 boolean leq(Label L1, Label L2, LabelEnv.SearchState state)
          Recursive implementation of L1 <= L2.
 PrincipalHierarchy ph()
           
 void setSolver(Solver s)
          Set the solver used for this Label Environment.
 java.lang.String toString()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

LabelEnv_c

public LabelEnv_c(JifTypeSystem ts,
                  boolean useCache)
Method Detail

setSolver

public void setSolver(Solver s)
Description copied from interface: LabelEnv
Set the solver used for this Label Environment. When necessary, the label environment will use the variable bounds of label variables when determining if constraints are satisfied.

Specified by:
setSolver in interface LabelEnv

ph

public PrincipalHierarchy ph()
Specified by:
ph in interface LabelEnv

hasVariables

public boolean hasVariables()
Description copied from interface: LabelEnv
Do any of the assertions in this label environment contain variables?

Specified by:
hasVariables in interface LabelEnv

addActsFor

public void addActsFor(Principal p1,
                       Principal p2)
Specified by:
addActsFor in interface LabelEnv

addEquiv

public void addEquiv(Principal p1,
                     Principal p2)
Specified by:
addEquiv in interface LabelEnv

addAssertionLE

public void addAssertionLE(Label L1,
                           Label L2)
Specified by:
addAssertionLE in interface LabelEnv

addAssertionLE

public void addAssertionLE(Label L1,
                           Label L2,
                           boolean updateDisplayString)

addEquiv

public void addEquiv(Label L1,
                     Label L2)
Specified by:
addEquiv in interface LabelEnv

copy

public LabelEnv copy()
Specified by:
copy in interface LabelEnv

leq

public boolean leq(Label L1,
                   Label L2)
Specified by:
leq in interface LabelEnv

leq

public boolean leq(Label L1,
                   Label L2,
                   LabelEnv.SearchState state)
Recursive implementation of L1 <= L2.

Specified by:
leq in interface LabelEnv

isEmpty

public boolean isEmpty()
Is this enviornment empty, or does is contain some constraints?

Specified by:
isEmpty in interface LabelEnv

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

definitions

public java.util.Map definitions(VarMap bounds,
                                 java.util.Set seenComponents)
Returns a Map of Strings to List[String]s which is the descriptions of any components that appear in the environment. This map is used for verbose output to the user, to help explain the meaning of constraints and labels. Seen components is a Set of Labels whose definitions will not be displayed.

Specified by:
definitions in interface LabelEnv