LabelEnv.SearchState
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<AccessPath,AccessPath> |
accessPathEquivReps
A map from AccessPath to representatives of the
equivalent set of the AcessPath.
|
protected java.lang.StringBuffer |
displayLabelAssertions |
protected boolean |
hasVariables
Do any of the assertions have variables in them?
|
protected java.util.List<LabelLeAssertion> |
labelAssertions |
protected LabelEnv_c |
parent |
protected PrincipalHierarchy |
ph |
protected Solver |
solver |
protected static java.util.Collection<java.lang.String> |
topics
Topics to report
|
protected JifTypeSystem |
ts |
protected boolean |
useCache |
Modifier | Constructor and Description |
---|---|
|
LabelEnv_c(JifTypeSystem ts,
boolean useCache) |
protected |
LabelEnv_c(JifTypeSystem ts,
PrincipalHierarchy ph,
java.util.List<LabelLeAssertion> assertions,
java.lang.String displayLabelAssertions,
boolean hasVariables,
boolean useCache,
java.util.Map<AccessPath,AccessPath> accessPathEquivReps,
LabelEnv_c parent) |
Modifier and Type | Method and Description |
---|---|
boolean |
actsFor(Principal p,
Principal q) |
void |
addActsFor(Principal p1,
Principal p2) |
void |
addAssertionLE(Label L1,
Label L2) |
void |
addEquiv(AccessPath p,
AccessPath q) |
void |
addEquiv(Label L1,
Label L2) |
void |
addEquiv(Principal p1,
Principal p2) |
protected void |
cacheResult(jif.types.hierarchy.LabelEnv_c.LeqGoal g,
LabelEnv.SearchState s,
boolean result) |
protected java.lang.Boolean |
checkCache(jif.types.hierarchy.LabelEnv_c.LeqGoal g) |
LabelEnv_c |
copy() |
java.util.Map<java.lang.String,java.util.List<java.lang.String>> |
definitions(VarMap bounds,
java.util.Set<Label> seenComponents)
Returns a Map of Strings to List[String]s which is the descriptions of any
components that appear in the environment.
|
protected java.util.Set<java.io.Serializable> |
equivAccessPaths(AccessPathRoot p) |
boolean |
equivalentAccessPaths(AccessPath p,
AccessPath q)
This method checks if two access paths are equivalent.
|
Label |
findLowerBound(Label L)
Finds a PairLabel lower bound.
|
protected Label |
findLowerBound(Label L,
java.util.Collection<java.io.Serializable> seen,
boolean noArgLabels) |
Label |
findNonArgLabelUpperBound(Label L)
Finds an upper bound that does not contain arg labels.
|
Label |
findUpperBound(Label L)
Finds a PairLabel upper bound.
|
protected Label |
findUpperBound(Label L,
java.util.Collection<Label> seen,
boolean noArgLabels) |
protected LabelEnv.SearchState |
freshSearchState() |
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?
|
java.util.Collection<LabelLeAssertion> |
labelAssertions()
The collection of label assertions
|
boolean |
leq(ConfPolicy p1,
ConfPolicy p2,
LabelEnv.SearchState state) |
boolean |
leq(IntegPolicy p1,
IntegPolicy p2,
LabelEnv.SearchState state) |
boolean |
leq(Label L1,
Label L2) |
boolean |
leq(Label L1,
Label L2,
LabelEnv.SearchState state)
Recursive implementation of L1 <= L2.
|
boolean |
leq(Policy p1,
Policy p2) |
boolean |
leq(Policy p1,
Policy p2,
LabelEnv.SearchState state_) |
PrincipalHierarchy |
ph() |
PrincipalHierarchy |
principalHierarchy()
The static principal hierarchy
|
void |
setSolver(Solver s)
Set the solver used for this Label Environment.
|
java.lang.String |
toString() |
Label |
triggerTransforms(Label label)
Trigger the transformation of WritersToReaders labels.
|
protected final PrincipalHierarchy ph
protected final java.util.List<LabelLeAssertion> labelAssertions
protected final java.lang.StringBuffer displayLabelAssertions
protected final JifTypeSystem ts
protected final java.util.Map<AccessPath,AccessPath> accessPathEquivReps
protected final LabelEnv_c parent
protected Solver solver
protected boolean hasVariables
protected static java.util.Collection<java.lang.String> topics
protected final boolean useCache
public LabelEnv_c(JifTypeSystem ts, boolean useCache)
protected LabelEnv_c(JifTypeSystem ts, PrincipalHierarchy ph, java.util.List<LabelLeAssertion> assertions, java.lang.String displayLabelAssertions, boolean hasVariables, boolean useCache, java.util.Map<AccessPath,AccessPath> accessPathEquivReps, LabelEnv_c parent)
public void setSolver(Solver s)
LabelEnv
public PrincipalHierarchy principalHierarchy()
LabelEnv
principalHierarchy
in interface LabelEnv
public java.util.Collection<LabelLeAssertion> labelAssertions()
LabelEnv
labelAssertions
in interface LabelEnv
public PrincipalHierarchy ph()
public boolean hasVariables()
LabelEnv
hasVariables
in interface LabelEnv
public LabelEnv_c copy()
public boolean equivalentAccessPaths(AccessPath p, AccessPath q)
LabelEnv
equivalentAccessPaths
in interface LabelEnv
public void addEquiv(AccessPath p, AccessPath q)
protected java.util.Set<java.io.Serializable> equivAccessPaths(AccessPathRoot p)
public boolean leq(Label L1, Label L2, LabelEnv.SearchState state)
protected java.lang.Boolean checkCache(jif.types.hierarchy.LabelEnv_c.LeqGoal g)
protected void cacheResult(jif.types.hierarchy.LabelEnv_c.LeqGoal g, LabelEnv.SearchState s, boolean result)
public boolean leq(Policy p1, Policy p2, LabelEnv.SearchState state_)
public boolean leq(ConfPolicy p1, ConfPolicy p2, LabelEnv.SearchState state)
public boolean leq(IntegPolicy p1, IntegPolicy p2, LabelEnv.SearchState state)
public boolean isEmpty()
public Label findLowerBound(Label L)
findLowerBound
in interface LabelEnv
protected Label findLowerBound(Label L, java.util.Collection<java.io.Serializable> seen, boolean noArgLabels)
public Label findUpperBound(Label L)
findUpperBound
in interface LabelEnv
public Label findNonArgLabelUpperBound(Label L)
findNonArgLabelUpperBound
in interface LabelEnv
protected Label findUpperBound(Label L, java.util.Collection<Label> seen, boolean noArgLabels)
public java.lang.String toString()
toString
in class java.lang.Object
public java.util.Map<java.lang.String,java.util.List<java.lang.String>> definitions(VarMap bounds, java.util.Set<Label> seenComponents)
definitions
in interface LabelEnv
public Label triggerTransforms(Label label)
triggerTransforms
in interface LabelEnv
protected LabelEnv.SearchState freshSearchState()