|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||
java.lang.Objectpolyglot.ext.jl.types.TypeObject_c
jif.types.label.Label_c
jif.types.label.ParamLabel_c
An implementation of the ParamLabel interface.
| Field Summary |
|---|
| Fields inherited from class jif.types.label.Label_c |
|---|
description, toJava |
| Fields inherited from class polyglot.ext.jl.types.TypeObject_c |
|---|
position, ts |
| Constructor Summary | |
|---|---|
ParamLabel_c(ParamInstance paramInstance,
JifTypeSystem ts,
polyglot.util.Position pos)
|
|
| Method Summary | |
|---|---|
java.lang.String |
componentString(java.util.Set printedLabels)
|
boolean |
equalsImpl(polyglot.types.TypeObject o)
|
int |
hashCode()
|
boolean |
isCanonical()
|
boolean |
isComparable()
Is this label comparable to other labels? |
boolean |
isCovariant()
Is this label covariant? |
boolean |
isDisambiguated()
Are the components of this label all disambiguated? |
boolean |
isEnumerable()
Are the components of this label enumerable? |
boolean |
isRuntimeRepresentable()
|
PathMap |
labelCheck(JifContext A)
Label check the label, which will determine how much information may be gained if the label is evaluated at runtime. |
boolean |
leq_(Label L,
LabelEnv env)
Implementation of leq, should only be called by JifTypeSystem |
ParamInstance |
paramInstance()
|
| Methods inherited from class jif.types.label.Label_c |
|---|
components, componentString, description, hasVariables, isBottom, isInvariant, isSingleton, isTop, join, setDescription, simplify, singletonComponent, subst, throwTypes, toJava, toString, toString, variables |
| Methods inherited from class polyglot.ext.jl.types.TypeObject_c |
|---|
copy, equals, position, typeSystem |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Methods inherited from interface jif.types.label.Label |
|---|
components, componentString, description, hasVariables, isBottom, isInvariant, isSingleton, isTop, join, setDescription, simplify, singletonComponent, subst, throwTypes, toJava, toString, variables |
| Methods inherited from interface polyglot.types.TypeObject |
|---|
position, typeSystem |
| Methods inherited from interface polyglot.util.Copy |
|---|
copy |
| Constructor Detail |
public ParamLabel_c(ParamInstance paramInstance,
JifTypeSystem ts,
polyglot.util.Position pos)
| Method Detail |
public ParamInstance paramInstance()
paramInstance in interface ParamLabelpublic boolean isRuntimeRepresentable()
isRuntimeRepresentable in interface Labelpublic boolean isCovariant()
Label
isCovariant in interface Labelpublic boolean isComparable()
LabelFor example, an UnknownLabel is not comparable to others, neither is a VarLabel. Most other labels are.
isComparable in interface Labelpublic boolean isCanonical()
isCanonical in interface Parampublic boolean isDisambiguated()
Label
isDisambiguated in interface Labelpublic boolean isEnumerable()
LabelFor 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.
isEnumerable in interface Labelpublic int hashCode()
public boolean equalsImpl(polyglot.types.TypeObject o)
equalsImpl in interface polyglot.types.TypeObjectequalsImpl in class Label_cpublic java.lang.String componentString(java.util.Set printedLabels)
componentString in interface LabelcomponentString in class Label_cpublic PathMap labelCheck(JifContext A)
Label
boolean{Alice:} secret = ...;
final label{Alice:} lb = secret?new label{}:new label{Bob:};
boolean{} leak = false;
if ((*lb} <= new label{}) { // evaluation of lb reveals
// information at level {Alice:}
leak = true;
}
labelCheck in interface LabellabelCheck in class Label_c
public boolean leq_(Label L,
LabelEnv env)
Label
leq_ in interface LabelL - the label to determine if this label is leq to. This label
always satisfies !this.equals(L)env - the label environment (including principal hierarchy). Will
always be non-null.
|
|||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||||