|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
This class represents the Jif security label.
| Method Summary | |
Label |
bound(VarMap ub,
java.util.Set visited)
Gets the upper bound of this label. |
java.util.Collection |
components()
Retrieve the collection of components. |
java.lang.String |
componentString()
|
java.lang.String |
description()
|
Label |
description(java.lang.String d)
|
Label |
fold(UID uid)
Substitutes any occurences of |
boolean |
hasVariables()
Does this label (or any of its components) contain any label variables? |
boolean |
isBottom()
Is this label equivalent to bottom? |
boolean |
isComparable()
Is this label comparable to other labels? |
boolean |
isCovariant()
Is this label covariant? |
boolean |
isEnumerable()
Are the components of this label enumerable? |
boolean |
isInvariant()
Is this label invariant? |
boolean |
isMeetable()
Can this label be used in a meet operation with another label? |
boolean |
isSingleton()
Does this label represent only a single label? |
boolean |
isTop()
Is this label equivalent to top? |
Label |
join(Label L)
Returns the join of this label and L. |
Label |
join(Label L,
PrincipalHierarchy ph)
Returns the join of this label and L, and simplifies it, based on the given PrincipalHierarchy |
Label |
labelOf()
Gets labelOf this label. |
boolean |
leq_(Label L)
|
boolean |
leq_(Label L,
LabelEnv env)
Implementation of leq, should only be called by JifTypeSystem |
Label |
meet_(Label L,
PrincipalHierarchy ph)
Implementation of the meet operation, should only be called by JifTypeSystem |
Label |
meet(Label L)
Returns the meet of this label and L. |
Label |
meet(Label L,
PrincipalHierarchy ph)
Returns the meet of this label and L, and simplifies it, based on the given PrincipalHierarchy |
Label |
minus(Label L)
Returns a copy of this Label, with the Label L removed from the components. |
Label |
simplify()
Returns a simplified copy of this Label. |
Label |
singletonComponent()
Retrieve the singleton component that this label represents. |
Label |
subst(LabelSubstitution substitution)
Accepts a LabelSubstitution and returns the result of substituting according to the given LabelSubstitution. |
Label |
subst(UID uid,
Label L)
Substitutes any occurences of |
polyglot.ast.Expr |
toJava(JifToJavaRewriter rw)
|
void |
translate(polyglot.types.Resolver c,
polyglot.util.CodeWriter w)
|
java.util.Collection |
variables()
The collection of variables contained by this label (or any of its components). |
| Methods inherited from interface jif.types.Param |
isCanonical, isRuntimeRepresentable |
| Methods inherited from interface polyglot.types.TypeObject |
equalsImpl, position, typeSystem |
| Methods inherited from interface polyglot.util.Copy |
copy |
| Method Detail |
public Label bound(VarMap ub,
java.util.Set visited)
ub - the upper bound map for variable labelsvisited - the set of UIDs visited.
if the upper bound is <dynamic uid...>,
visited,
visited. public boolean isBottom()
For example, a JoinLabel with no components would return true for this method.
public boolean isTop()
For example, a JoinLabel with two components, one of which is Top, would return true for this method.
public boolean isEnumerable()
For example, Singletons are enumerable, JoinLabels are enumerable, RuntimeLabel (the label of all runtime representable components) is not enumerable. NOTE: The components of a label are not neccessarily stuck together with a join operation. For example, the MeetLabel uses the meet operation between its components.
public java.util.Collection components()
public boolean isSingleton()
For example, a JoinLabel with more than one component returns false, a MeetLabel with more than one component returns false, most other Labels return true.
public Label singletonComponent()
public boolean isInvariant()
public boolean isCovariant()
public boolean hasVariables()
public java.util.Collection variables()
public Label subst(LabelSubstitution substitution)
substitution - the LabelSubstitution to use
public Label labelOf()
public Label subst(UID uid,
Label L)
public Label fold(UID uid)
public Label join(Label L)
public Label join(Label L,
PrincipalHierarchy ph)
public boolean isMeetable()
For example, UnknownLabel returns false. Most other Labels return true.
public Label meet(Label L)
public Label meet(Label L,
PrincipalHierarchy ph)
public Label minus(Label L)
InternalCompilerError - if Label L is not a component of this
labelpublic Label simplify()
public boolean isComparable()
For example, an UnknownLabel is not comparable to others, neither is a VarLabel. Most other labels are.
public void translate(polyglot.types.Resolver c,
polyglot.util.CodeWriter w)
public Label meet_(Label L,
PrincipalHierarchy ph)
L - label to meet with.ph - the principal hierarchy in which to perform the meet. This
param may be null, in which case perform all meets possible that
are indpependent of the principal hierarchy.
public boolean leq_(Label L,
LabelEnv env)
L - the label to determine if this label is leq to.public boolean leq_(Label L)
public java.lang.String componentString()
public java.lang.String description()
public Label description(java.lang.String d)
public polyglot.ast.Expr toJava(JifToJavaRewriter rw)
throws polyglot.types.SemanticException
polyglot.types.SemanticException
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||