jif.types
Class JifSubst_c

java.lang.Object
  extended by polyglot.ext.param.types.Subst_c
      extended by jif.types.JifSubst_c
All Implemented Interfaces:
java.io.Serializable, JifSubst, polyglot.ext.param.types.Subst

public class JifSubst_c
extends polyglot.ext.param.types.Subst_c
implements JifSubst

See Also:
Serialized Form

Nested Class Summary
 class JifSubst_c.ConstraintXform
           
 class JifSubst_c.LabelXform
           
 class JifSubst_c.PrincipalXform
           
protected  class JifSubst_c.SubstLabelSubst
          This class is a LabelSubstitution that performs substitutions on Labels and Principals.
 
Nested classes/interfaces inherited from class polyglot.ext.param.types.Subst_c
polyglot.ext.param.types.Subst_c.ConstructorXform, polyglot.ext.param.types.Subst_c.FieldXform, polyglot.ext.param.types.Subst_c.MethodXform, polyglot.ext.param.types.Subst_c.TypeXform
 
Field Summary
protected  JifSubst_c.SubstLabelSubst substLabelSubst
          An instance of the nested class SubstLabelSubst, to be used by substLabel(Label) and substPrincipal(Principal).
 
Fields inherited from class polyglot.ext.param.types.Subst_c
cache, subst, ts
 
Constructor Summary
JifSubst_c(JifTypeSystem ts, java.util.Map subst, java.util.Map cache)
           
 
Method Summary
protected  boolean cacheTypeEquality(polyglot.types.Type t1, polyglot.types.Type t2)
           
 Param get(ParamInstance pi)
           
 void put(ParamInstance pi, Param param)
           
protected  Label subLabel(Label label, ParamInstance pi)
          Return the substitution of uid, or label if not found.
protected  Principal subPrincipal(Principal principal, ParamInstance pi)
          Return the substitution of uid, or principal if not found.
 polyglot.types.ClassType substClassType(polyglot.types.ClassType t)
           
 Assertion substConstraint(Assertion constraint)
           
 java.util.List substConstraintList(java.util.List constraints)
           
 polyglot.types.ConstructorInstance substConstructor(polyglot.types.ConstructorInstance ci)
           
 polyglot.types.FieldInstance substField(polyglot.types.FieldInstance fi)
          Perform substititions on a field.
 Label substLabel(Label label)
           
 java.util.List substLabelList(java.util.List labels)
           
 polyglot.types.MethodInstance substMethod(polyglot.types.MethodInstance mi)
           
 Principal substPrincipal(Principal principal)
           
 java.util.List substPrincipalList(java.util.List principals)
           
protected  java.lang.Object substSubstValue(java.lang.Object value)
           
 polyglot.types.Type uncachedSubstType(polyglot.types.Type t)
           
 
Methods inherited from class polyglot.ext.param.types.Subst_c
cacheGet, cachePut, entries, equals, hashCode, substConstructorList, substFieldList, substitutions, substMethodList, substPClass, substType, substTypeList, toString, typeSystem
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface polyglot.ext.param.types.Subst
entries, substConstructorList, substFieldList, substitutions, substMethodList, substPClass, substType, substTypeList, typeSystem
 

Field Detail

substLabelSubst

protected JifSubst_c.SubstLabelSubst substLabelSubst
An instance of the nested class SubstLabelSubst, to be used by substLabel(Label) and substPrincipal(Principal).

Constructor Detail

JifSubst_c

public JifSubst_c(JifTypeSystem ts,
                  java.util.Map subst,
                  java.util.Map cache)
Method Detail

get

public Param get(ParamInstance pi)
Specified by:
get in interface JifSubst

put

public void put(ParamInstance pi,
                Param param)
Specified by:
put in interface JifSubst

cacheTypeEquality

protected boolean cacheTypeEquality(polyglot.types.Type t1,
                                    polyglot.types.Type t2)
Overrides:
cacheTypeEquality in class polyglot.ext.param.types.Subst_c

uncachedSubstType

public polyglot.types.Type uncachedSubstType(polyglot.types.Type t)
Overrides:
uncachedSubstType in class polyglot.ext.param.types.Subst_c

substClassType

public polyglot.types.ClassType substClassType(polyglot.types.ClassType t)
Overrides:
substClassType in class polyglot.ext.param.types.Subst_c

substMethod

public polyglot.types.MethodInstance substMethod(polyglot.types.MethodInstance mi)
Specified by:
substMethod in interface polyglot.ext.param.types.Subst
Overrides:
substMethod in class polyglot.ext.param.types.Subst_c

substConstructor

public polyglot.types.ConstructorInstance substConstructor(polyglot.types.ConstructorInstance ci)
Specified by:
substConstructor in interface polyglot.ext.param.types.Subst
Overrides:
substConstructor in class polyglot.ext.param.types.Subst_c

substField

public polyglot.types.FieldInstance substField(polyglot.types.FieldInstance fi)
Perform substititions on a field.

Specified by:
substField in interface polyglot.ext.param.types.Subst
Overrides:
substField in class polyglot.ext.param.types.Subst_c

substConstraintList

public java.util.List substConstraintList(java.util.List constraints)
Specified by:
substConstraintList in interface JifSubst

substLabelList

public java.util.List substLabelList(java.util.List labels)
Specified by:
substLabelList in interface JifSubst

substPrincipalList

public java.util.List substPrincipalList(java.util.List principals)
Specified by:
substPrincipalList in interface JifSubst

substConstraint

public Assertion substConstraint(Assertion constraint)
Specified by:
substConstraint in interface JifSubst

substLabel

public Label substLabel(Label label)
Specified by:
substLabel in interface JifSubst

substPrincipal

public Principal substPrincipal(Principal principal)
Specified by:
substPrincipal in interface JifSubst

subLabel

protected Label subLabel(Label label,
                         ParamInstance pi)
Return the substitution of uid, or label if not found.


subPrincipal

protected Principal subPrincipal(Principal principal,
                                 ParamInstance pi)
Return the substitution of uid, or principal if not found.


substSubstValue

protected java.lang.Object substSubstValue(java.lang.Object value)
Overrides:
substSubstValue in class polyglot.ext.param.types.Subst_c