|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object jif.types.label.AccessPath
public abstract class AccessPath
An AccessPath represents a final access path. A final access path is of the form "R.f1. ... .fn", where "R" is one of
AccessPaths are used in the Jif type system to represent dynamic principals and dynamic labels.
For technical reasons, there are two subclasses of AccessPath that do not
directly represent final access paths.
AccessPathConstant
is used to
represent label or principal expressions, such as "new label {Alice:}" or
"Alice". (@link jif.types.label.AccessPathUninterpreted AccessPathUninterpreted}
is used to represent non-final access paths, for example "this.m()".
Constructor Summary | |
---|---|
protected |
AccessPath(polyglot.util.Position pos)
|
Method Summary | |
---|---|
java.lang.Object |
copy()
|
abstract boolean |
equals(java.lang.Object o)
|
abstract boolean |
equivalentTo(AccessPath p,
LabelEnv env)
|
java.lang.String |
exprString()
|
abstract int |
hashCode()
|
abstract boolean |
isCanonical()
|
abstract boolean |
isNeverNull()
|
abstract boolean |
isUninterpreted()
|
abstract PathMap |
labelcheck(JifContext A,
LabelChecker lc)
|
polyglot.util.Position |
position()
|
abstract AccessPathRoot |
root()
|
abstract AccessPath |
subst(AccessPathRoot r,
AccessPath e)
Return the result of substituting the root r with the access path e. |
java.util.List |
throwTypes(polyglot.types.TypeSystem ts)
Return a list of types that may be thrown as a result of the runtime evaluation of this path. |
abstract polyglot.types.Type |
type()
The type of the access path (when the access path is regarded as an expression). |
void |
verify(JifContext A)
Go through the path, check that all the type information is set correctly, and check that every field access is to a final field, and any local used is final |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
protected AccessPath(polyglot.util.Position pos)
Method Detail |
---|
public abstract boolean equals(java.lang.Object o)
equals
in class java.lang.Object
public abstract boolean isCanonical()
public abstract boolean isUninterpreted()
public abstract AccessPath subst(AccessPathRoot r, AccessPath e)
public abstract polyglot.types.Type type()
public abstract int hashCode()
hashCode
in class java.lang.Object
public abstract boolean isNeverNull()
public abstract PathMap labelcheck(JifContext A, LabelChecker lc)
public abstract AccessPathRoot root()
public final polyglot.util.Position position()
public void verify(JifContext A) throws polyglot.types.SemanticException
A
-
polyglot.types.SemanticException
public java.lang.String exprString()
public java.util.List throwTypes(polyglot.types.TypeSystem ts)
public java.lang.Object copy()
copy
in interface polyglot.util.Copy
public abstract boolean equivalentTo(AccessPath p, LabelEnv env)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |