jif.types.hierarchy
Interface LabelEnv

All Known Implementing Classes:
LabelEnv_c

public interface LabelEnv


Nested Class Summary
static interface LabelEnv.SearchState
          Encapsulates the solvers search state.
 
Method Summary
 boolean actsFor(Principal p, Principal q)
           
 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 equivalentAccessPaths(AccessPath p, AccessPath q)
           
 Label findNonArgLabelUpperBound(Label L)
          Finds an upper bound for L that does not have any arg labels in it.
 Label findUpperBound(Label L)
          Finds an upper bound for L using the assertions in this 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)
           
 boolean leq(Policy p1, Policy p2)
           
 boolean leq(Policy p1, Policy p2, LabelEnv.SearchState state)
           
 void setSolver(Solver solver)
          Set the solver used for this Label Environment.
 Label triggerTransforms(Label label)
          Trigger any writersToReaders transforms in label, and return the result.
 

Method Detail

leq

boolean leq(Label L1,
            Label L2)

leq

boolean leq(Label L1,
            Label L2,
            LabelEnv.SearchState state)

leq

boolean leq(Policy p1,
            Policy p2)

leq

boolean leq(Policy p1,
            Policy p2,
            LabelEnv.SearchState state)

actsFor

boolean actsFor(Principal p,
                Principal q)

findUpperBound

Label findUpperBound(Label L)
Finds an upper bound for L using the assertions in this environment. May return the top label if there is insufficient information to determine a more precise bound.


findNonArgLabelUpperBound

Label findNonArgLabelUpperBound(Label L)
Finds an upper bound for L that does not have any arg labels in it. May return the top label if there is insufficient information to determine a more precise bound.


definitions

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.


triggerTransforms

Label triggerTransforms(Label label)
Trigger any writersToReaders transforms in label, and return the result.


isEmpty

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


hasVariables

boolean hasVariables()
Do any of the assertions in this label environment contain variables?


setSolver

void setSolver(Solver solver)
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.


equivalentAccessPaths

boolean equivalentAccessPaths(AccessPath p,
                              AccessPath q)