public abstract class JoinPolicy_c<P extends Policy> extends Policy_c implements JoinPolicy<P>
| Constructor and Description |
|---|
JoinPolicy_c(java.util.Set<P> components,
JifTypeSystem ts,
polyglot.util.Position pos) |
| Modifier and Type | Method and Description |
|---|---|
protected abstract Policy |
constructJoinPolicy(java.util.Set<P> components,
polyglot.util.Position pos) |
boolean |
equalsImpl(polyglot.types.TypeObject o) |
int |
hashCode() |
boolean |
hasVariables() |
boolean |
hasWritersToReaders() |
boolean |
isBottom() |
boolean |
isCanonical() |
boolean |
isRuntimeRepresentable() |
boolean |
isSingleton() |
boolean |
isTop() |
java.util.Collection<P> |
joinComponents() |
PathMap |
labelCheck(JifContext A,
LabelChecker lc) |
protected boolean |
leq_(Policy p,
LabelEnv env,
LabelEnv.SearchState state) |
protected Policy |
simplifyImpl() |
Policy |
subst(LabelSubstitution substitution) |
java.util.List<polyglot.types.Type> |
throwTypes(polyglot.types.TypeSystem ts) |
java.lang.String |
toString(java.util.Set<Label> printedLabels) |
protected void |
updateContextForComp(LabelChecker lc,
JifContext A,
PathMap Xprev)
Utility method for updating the context for checking a join component.
|
public JoinPolicy_c(java.util.Set<P> components, JifTypeSystem ts, polyglot.util.Position pos)
public boolean isSingleton()
isSingleton in interface Policypublic boolean isCanonical()
isCanonical in interface PolicyisCanonical in interface polyglot.types.TypeObjectpublic boolean isRuntimeRepresentable()
isRuntimeRepresentable in interface Policypublic boolean equalsImpl(polyglot.types.TypeObject o)
equalsImpl in interface polyglot.types.TypeObjectequalsImpl in class Policy_cpublic int hashCode()
hashCode in class polyglot.types.TypeObject_cpublic java.lang.String toString(java.util.Set<Label> printedLabels)
protected boolean leq_(Policy p, LabelEnv env, LabelEnv.SearchState state)
public java.util.Collection<P> joinComponents()
joinComponents in interface JoinPolicy<P extends Policy>protected Policy simplifyImpl()
simplifyImpl in class Policy_cprotected abstract Policy constructJoinPolicy(java.util.Set<P> components, polyglot.util.Position pos)
public java.util.List<polyglot.types.Type> throwTypes(polyglot.types.TypeSystem ts)
throwTypes in interface Policypublic Policy subst(LabelSubstitution substitution) throws polyglot.types.SemanticException
public boolean hasWritersToReaders()
hasWritersToReaders in interface PolicyhasWritersToReaders in class Policy_cpublic boolean hasVariables()
hasVariables in interface PolicyhasVariables in class Policy_cpublic PathMap labelCheck(JifContext A, LabelChecker lc)
labelCheck in interface Policyprotected void updateContextForComp(LabelChecker lc, JifContext A, PathMap Xprev)