jif.types.label
Class JoinPolicy_c

java.lang.Object
  extended by polyglot.types.TypeObject_c
      extended by jif.types.label.Policy_c
          extended by jif.types.label.JoinPolicy_c
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, Policy, polyglot.types.TypeObject, polyglot.util.Copy
Direct Known Subclasses:
JoinConfPolicy_c, JoinIntegPolicy_c

public abstract class JoinPolicy_c
extends Policy_c

Represents a join of a number of policies.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class polyglot.types.TypeObject_c
position, ts
 
Constructor Summary
JoinPolicy_c(java.util.Set components, JifTypeSystem ts, polyglot.util.Position pos)
           
 
Method Summary
protected abstract  Policy constructJoinPolicy(java.util.Set 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 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 throwTypes(polyglot.types.TypeSystem ts)
           
 java.lang.String toString(java.util.Set printedLabels)
           
 
Methods inherited from class jif.types.label.Policy_c
copy, simplify, toString
 
Methods inherited from class polyglot.types.TypeObject_c
equals, position, typeSystem
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface polyglot.types.TypeObject
position, typeSystem
 

Constructor Detail

JoinPolicy_c

public JoinPolicy_c(java.util.Set components,
                    JifTypeSystem ts,
                    polyglot.util.Position pos)
Method Detail

isSingleton

public boolean isSingleton()

isCanonical

public boolean isCanonical()

isRuntimeRepresentable

public boolean isRuntimeRepresentable()

equalsImpl

public boolean equalsImpl(polyglot.types.TypeObject o)
Specified by:
equalsImpl in interface polyglot.types.TypeObject
Specified by:
equalsImpl in class Policy_c

hashCode

public int hashCode()
Overrides:
hashCode in class polyglot.types.TypeObject_c

toString

public java.lang.String toString(java.util.Set printedLabels)
Specified by:
toString in interface Policy
Specified by:
toString in class Policy_c

leq_

protected boolean leq_(Policy p,
                       LabelEnv env,
                       LabelEnv.SearchState state)

joinComponents

public java.util.Collection joinComponents()

simplifyImpl

protected Policy simplifyImpl()
Specified by:
simplifyImpl in class Policy_c
Returns:
An equivalent label with fewer components by pulling out less restrictive policies.

constructJoinPolicy

protected abstract Policy constructJoinPolicy(java.util.Set components,
                                              polyglot.util.Position pos)

throwTypes

public java.util.List throwTypes(polyglot.types.TypeSystem ts)

subst

public Policy subst(LabelSubstitution substitution)
             throws polyglot.types.SemanticException
Throws:
polyglot.types.SemanticException

hasWritersToReaders

public boolean hasWritersToReaders()
Specified by:
hasWritersToReaders in interface Policy
Overrides:
hasWritersToReaders in class Policy_c

hasVariables

public boolean hasVariables()
Specified by:
hasVariables in interface Policy
Overrides:
hasVariables in class Policy_c

labelCheck

public PathMap labelCheck(JifContext A,
                          LabelChecker lc)

isTop

public boolean isTop()

isBottom

public boolean isBottom()