jif.types.label
Class MeetPolicy_c

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

public abstract class MeetPolicy_c
extends Policy_c

Represents the meet of a number of policies.

See Also:
Serialized Form

Field Summary
 
Fields inherited from class polyglot.types.TypeObject_c
position, ts
 
Constructor Summary
MeetPolicy_c(java.util.Set components, JifTypeSystem ts, polyglot.util.Position pos)
           
 
Method Summary
protected abstract  Policy constructMeetPolicy(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()
           
 PathMap labelCheck(JifContext A, LabelChecker lc)
           
protected  boolean leq_(Policy p, LabelEnv env, LabelEnv.SearchState state)
           
 java.util.Collection meetComponents()
           
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

MeetPolicy_c

public MeetPolicy_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)

meetComponents

public java.util.Collection meetComponents()

simplifyImpl

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

constructMeetPolicy

protected abstract Policy constructMeetPolicy(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()