org.eclipse.ocl.examples.xtext.base.cs2pivot
Class CS2PivotConversion

java.lang.Object
  extended by org.eclipse.emf.ecore.util.EcoreUtil
      extended by org.eclipse.ocl.examples.pivot.utilities.AbstractConversion
          extended by org.eclipse.ocl.examples.xtext.base.cs2pivot.CS2PivotConversion

public class CS2PivotConversion
extends AbstractConversion


Nested Class Summary
static class CS2PivotConversion.CacheKey<T>
           
 
Nested classes/interfaces inherited from class org.eclipse.ocl.examples.pivot.utilities.AbstractConversion
AbstractConversion.Predicate<T extends org.eclipse.emf.ecore.EObject>
 
Nested classes/interfaces inherited from class org.eclipse.emf.ecore.util.EcoreUtil
org.eclipse.emf.ecore.util.EcoreUtil.AbstractFilteredSettingsIterator<E>, org.eclipse.emf.ecore.util.EcoreUtil.ContentTreeIterator<E>, org.eclipse.emf.ecore.util.EcoreUtil.Copier, org.eclipse.emf.ecore.util.EcoreUtil.CrossReferencer, org.eclipse.emf.ecore.util.EcoreUtil.EGenericTypeConverter, org.eclipse.emf.ecore.util.EcoreUtil.EqualityHelper, org.eclipse.emf.ecore.util.EcoreUtil.ExternalCrossReferencer, org.eclipse.emf.ecore.util.EcoreUtil.FilteredSettingsIterator, org.eclipse.emf.ecore.util.EcoreUtil.ProperContentIterator<E>, org.eclipse.emf.ecore.util.EcoreUtil.ProxyCrossReferencer, org.eclipse.emf.ecore.util.EcoreUtil.UnresolvedProxyCrossReferencer, org.eclipse.emf.ecore.util.EcoreUtil.UsageCrossReferencer
 
Field Summary
static TracingOption CONTINUATION
           
protected  CS2Pivot converter
           
protected  java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources
           
protected  java.util.Map<java.lang.String,MonikeredElementCS> moniker2CSmap
           
protected  java.util.Map<java.lang.String,MonikeredElement> newMoniker2PivotMap
          The evolving mapping from monikers to pivot elements during an update.
protected  java.util.Map<Pivotable,Package> oldCS2PivotMap
           
protected  java.util.Map<java.lang.String,MonikeredElement> oldMoniker2PivotMap
          The mapping from monikers to pivot elements prior to the start of the update.
protected  TypeManager typeManager
           
 
Fields inherited from class org.eclipse.emf.ecore.util.EcoreUtil
GEN_MODEL_PACKAGE_NS_URI, GET, IS_SET, SET, UNSET
 
Constructor Summary
CS2PivotConversion(CS2Pivot converter, org.eclipse.xtext.diagnostics.IDiagnosticConsumer diagnosticsConsumer, java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources)
           
 
Method Summary
 OclExpression addBadExpressionError(ModelElementCS csElement, java.lang.String boundMessage)
           
 InvalidType addBadTypeError(ModelElementCS csElement, java.lang.String message, java.lang.Object... bindings)
           
 void addDiagnostic(ModelElementCS csElement, org.eclipse.emf.common.util.Diagnostic diagnostic)
           
 void addDiagnostic(ModelElementCS csElement, java.lang.String boundMessage)
           
protected  void addUnderspecifiedTypedElement(TypedElement pivotElement)
           
 void addWarning(ModelElementCS csElement, java.lang.String message, java.lang.Object... bindings)
           
 boolean checkForNoErrors(java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources)
           
 void checkMonikers()
           
protected  void diagnoseContinuationFailure(java.util.List<BasicContinuation<?>> continuations)
           
 void garbageCollect(java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> pivotResources)
           
protected  void gatherNewPackages(java.util.Set<Package> newPackages, java.util.List<? extends org.eclipse.emf.ecore.EObject> csElements)
          Add any packages and nested packages pivoted by csObjects to newPackages.
protected  void gatherOldPackages(java.util.List<? extends org.eclipse.emf.ecore.EObject> eObjects)
          Add any packages and nested packages in eObjects to oldPackages.
 CS2Pivot getConverter()
           
<T> T
getIntermediate(CS2PivotConversion.CacheKey<T> key)
           
 BaseCSVisitor<MonikeredElement,CS2PivotConversion> getLeft2RightVisitor(org.eclipse.emf.ecore.EPackage ePackage)
           
 InterDependency<BasePreOrderVisitor.OperationContinuation<?>> getOperationsHaveTemplateParametersInterDependency()
           
 InterDependency<BasePreOrderVisitor.PackageContentContinuation> getPackagesHaveTypesInterDependency()
           
<T extends Element>
T
getPivotElement(java.lang.Class<T> pivotClass, java.lang.String moniker)
           
 MonikeredElement getPivotElement(java.lang.String moniker)
           
 BaseCSVisitor<Continuation<?>,CS2PivotConversion> getPostOrderVisitor(org.eclipse.emf.ecore.EPackage ePackage)
           
 BaseCSVisitor<Continuation<?>,CS2PivotConversion> getPreOrderVisitor(org.eclipse.emf.ecore.EPackage ePackage)
           
protected  java.lang.String getQualifiedName(java.lang.StringBuffer s, Package pkg)
           
protected  java.lang.String getQualifiedName(java.lang.StringBuffer s, PackageCS csPackage)
           
protected  java.util.List<TemplateBindingCS> getTemplateBindings(ElementCS csElement)
           
protected  java.util.List<TemplateSignature> getTemplateSignatures(Element pivotElement)
           
 TypeManager getTypeManager()
           
 InterDependency<BasePreOrderVisitor.TemplateSignatureContinuation> getTypesHaveSignaturesInterDependency()
           
 InterDependency<BasePreOrderVisitor.TemplateBindingContinuation> getTypesHaveSpecializationsInterDependency()
           
 void handleVisitNamedElement(NamedElementCS csNamedElement, NamedElement pivotElement)
           
 void installPivotElement(ModelElementCS csElement, Element newPivotElement)
           
 void installResidualMonikers(MonikeredElement monikeredElement)
           
protected  void installRootContents(org.eclipse.emf.ecore.resource.Resource csResource)
           
protected  java.util.List<BasicContinuation<?>> progressContinuations(java.util.List<BasicContinuation<?>> continuations)
          Invoke all of the continuations that can execute, returning the list of continuations till to perform, some of which may be ones that were blocked by unsatisfied dependencies, others of which may be further continuations resulting from only partial progress.
<T> T
putIntermediate(CS2PivotConversion.CacheKey<T> key, T object)
           
 void putPivotElement(MonikeredElement pivotElement)
           
 void putPivotElement(java.lang.String moniker, MonikeredElement pivotElement)
           
protected  void refreshComments(Element pivotElement, ElementCS csElement)
           
<T extends OclExpression>
T
refreshExpression(java.lang.Class<T> pivotClass, org.eclipse.emf.ecore.EClass pivotEClass, MonikeredElementCS csElement)
           
<T extends Element>
void
refreshList(java.lang.Class<T> pivotClass, java.util.List<T> pivotElements, java.util.List<? extends MonikeredElementCS> csElements)
           
<T extends MonikeredElement>
T
refreshMonikeredElement(java.lang.Class<T> pivotClass, org.eclipse.emf.ecore.EClass pivotEClass, MonikeredElementCS csElement)
          Return a pivotEClass instance cast to pivotClass registered for csElement.getMoniker().
<T extends MonikeredElement>
T
refreshMonikeredElement(java.lang.Class<T> pivotClass, org.eclipse.emf.ecore.EClass pivotEClass, java.lang.String moniker)
           
<T> void
refreshMultiplicity(MultiplicityElement pivotElement, TypedElementCS csTypedElement)
           
 void refreshName(NamedElement pivotNamedElement, java.lang.String newName)
           
<T extends NamedElement>
T
refreshNamedElement(java.lang.Class<T> pivotClass, org.eclipse.emf.ecore.EClass pivotEClass, NamedElementCS csElement)
           
<T extends Package>
T
refreshPackage(java.lang.Class<T> pivotClass, org.eclipse.emf.ecore.EClass pivotEClass, PackageCS csElement)
           
<T extends Element>
void
refreshPivotList(java.lang.Class<T> pivotClass, java.util.List<? super T> pivotElements, java.util.List<? extends ModelElementCS> csElements)
           
 void refreshTemplateSignature(TemplateableElementCS csTemplateableElement, TemplateableElement pivotTemplateableElement)
           
<T extends TypedMultiplicityElement>
T
refreshTypedMultiplicityElement(java.lang.Class<T> pivotClass, org.eclipse.emf.ecore.EClass pivotEClass, TypedElementCS csTypedElement)
           
 void reputPivotElement(java.lang.String moniker, MonikeredElement pivotElement)
           
protected  void resetPivotMappings(java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources)
           
 void resolveIterationSpecialization(LoopExp expression)
          The iteration was initially specialized without knowledge of the body type.
 void resolveIterationUnderspecification(LoopExp expression)
          The iteration was initially specialized without knowledge of the body type.
 void resolveNamespaces(java.util.List<Namespace> namespaces)
           
protected  Type resolveUnderspecifiedType(Type type)
           
protected  void resolveUnderspecifiedTypes()
           
 void reusePivotElement(ModelElementCS csElement, Element newPivotElement)
          Install a CS to Pivot mapping for which the CS element does not have a matching moniker.
 void setReferredIteration(LoopExp expression, Iteration iteration)
           
 void setReferredOperation(OperationCallExp expression, Operation operation)
           
 void setType(TypedElement pivotElement, Type type)
          Set the type and so potentially satisfy some TypeOfDependency.
 void setTypeWithMultiplicity(TypedElement typedElement, TypedMultiplicityElement typedMultiplicityElement)
           
protected  void specializeTemplateBindings(java.util.List<TemplateBinding> templateBindings, java.util.List<TemplateSignature> templateSignatures, java.util.List<TemplateBindingCS> csTemplateBindings)
          Update a list of TemplateBinding to match a list of TemplateSignature by moving/adding/removing existing entries.
protected  void specializeTemplateParameterSubstitutions(java.util.List<TemplateParameterSubstitution> templateParameterSubstitutions, java.util.List<TemplateParameter> templateParameters, java.util.List<TemplateParameterSubstitutionCS> csTemplateParameterSubstitutions)
          Update a list of TemplateParameterSubstitution to match a list of TemplateParameter by moving/adding/removing existing entries.
protected  TemplateableElement specializeTemplates(TypedTypeRefCS csElement)
           
protected  java.lang.String trimString(java.lang.String string)
           
 boolean update()
          Sequence the update passes to make the pivot match the CS.
 void usePivotElement(ModelElementCS csElement, Element newPivotElement)
          Install a CS to Pivot mapping for which the CS element does not map to the pivot object.
protected  void visitInPostOrder(java.util.List<? extends org.eclipse.emf.ecore.EObject> eObjects, java.util.List<BasicContinuation<?>> continuations)
           
protected  void visitInPreOrder(java.util.List<? extends org.eclipse.emf.ecore.EObject> eObjects, java.util.List<BasicContinuation<?>> continuations)
           
<T extends MonikeredElement>
T
visitLeft2Right(java.lang.Class<T> pivotClass, VisitableCS csObject)
           
 
Methods inherited from class org.eclipse.ocl.examples.pivot.utilities.AbstractConversion
basicGet, getEPackage, isId, refreshList, refreshSet
 
Methods inherited from class org.eclipse.emf.ecore.util.EcoreUtil
computeDiagnostic, convertToString, copy, copyAll, create, createFromString, delete, delete, equals, filterDescendants, freeze, generateUUID, generateUUID, getAdapter, getAdapterFactory, getAllContents, getAllContents, getAllContents, getAllContents, getAllContents, getAllProperContents, getAllProperContents, getAllProperContents, getAllProperContents, getAnnotation, getConstraints, getDocumentation, getExistingAdapter, getID, getIdentification, getInvocationDelegateFactory, getInvocationDelegates, getObjectByType, getObjectsByType, getRegisteredAdapter, getRegisteredAdapter, getRootContainer, getRootContainer, getSettingDelegateFactory, getSettingDelegates, getURI, getValidationDelegates, indexOf, isAncestor, isAncestor, isAncestor, isAncestor, isInvariant, isSuppressedVisibility, isSuppressedVisibility, remove, remove, remove, replace, replace, replace, resolve, resolve, resolve, resolveAll, resolveAll, resolveAll, setAnnotation, setConstraints, setDocumentation, setEList, setEList, setID, setInvocationDelegates, setSettingDelegates, setSuppressedVisibility, setSuppressedVisibility, setValidationDelegates, toJavaInstanceTypeName, wrapperClassFor
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CONTINUATION

public static final TracingOption CONTINUATION

converter

protected final CS2Pivot converter

typeManager

protected final TypeManager typeManager

csResources

protected final java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources

oldCS2PivotMap

protected final java.util.Map<Pivotable,Package> oldCS2PivotMap

moniker2CSmap

protected final java.util.Map<java.lang.String,MonikeredElementCS> moniker2CSmap

oldMoniker2PivotMap

protected final java.util.Map<java.lang.String,MonikeredElement> oldMoniker2PivotMap
The mapping from monikers to pivot elements prior to the start of the update.


newMoniker2PivotMap

protected final java.util.Map<java.lang.String,MonikeredElement> newMoniker2PivotMap
The evolving mapping from monikers to pivot elements during an update.

Constructor Detail

CS2PivotConversion

public CS2PivotConversion(CS2Pivot converter,
                          org.eclipse.xtext.diagnostics.IDiagnosticConsumer diagnosticsConsumer,
                          java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources)
Method Detail

addBadExpressionError

public OclExpression addBadExpressionError(ModelElementCS csElement,
                                           java.lang.String boundMessage)

addDiagnostic

public void addDiagnostic(ModelElementCS csElement,
                          org.eclipse.emf.common.util.Diagnostic diagnostic)

addDiagnostic

public void addDiagnostic(ModelElementCS csElement,
                          java.lang.String boundMessage)

addBadTypeError

public InvalidType addBadTypeError(ModelElementCS csElement,
                                   java.lang.String message,
                                   java.lang.Object... bindings)

addUnderspecifiedTypedElement

protected void addUnderspecifiedTypedElement(TypedElement pivotElement)

addWarning

public void addWarning(ModelElementCS csElement,
                       java.lang.String message,
                       java.lang.Object... bindings)

checkForNoErrors

public boolean checkForNoErrors(java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources)

checkMonikers

public void checkMonikers()

diagnoseContinuationFailure

protected void diagnoseContinuationFailure(java.util.List<BasicContinuation<?>> continuations)

garbageCollect

public void garbageCollect(java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> pivotResources)

gatherNewPackages

protected void gatherNewPackages(java.util.Set<Package> newPackages,
                                 java.util.List<? extends org.eclipse.emf.ecore.EObject> csElements)
Add any packages and nested packages pivoted by csObjects to newPackages. This is invoked at the end of an update to identify redundant packages.


gatherOldPackages

protected void gatherOldPackages(java.util.List<? extends org.eclipse.emf.ecore.EObject> eObjects)
Add any packages and nested packages in eObjects to oldPackages. This is invoked at the start of an update to cache the packages for re-use.


getConverter

public final CS2Pivot getConverter()

getIntermediate

public <T> T getIntermediate(CS2PivotConversion.CacheKey<T> key)

getLeft2RightVisitor

public BaseCSVisitor<MonikeredElement,CS2PivotConversion> getLeft2RightVisitor(org.eclipse.emf.ecore.EPackage ePackage)

getOperationsHaveTemplateParametersInterDependency

public InterDependency<BasePreOrderVisitor.OperationContinuation<?>> getOperationsHaveTemplateParametersInterDependency()

getPackagesHaveTypesInterDependency

public InterDependency<BasePreOrderVisitor.PackageContentContinuation> getPackagesHaveTypesInterDependency()

getPivotElement

public <T extends Element> T getPivotElement(java.lang.Class<T> pivotClass,
                                             java.lang.String moniker)

getPivotElement

public MonikeredElement getPivotElement(java.lang.String moniker)

getPostOrderVisitor

public BaseCSVisitor<Continuation<?>,CS2PivotConversion> getPostOrderVisitor(org.eclipse.emf.ecore.EPackage ePackage)

getPreOrderVisitor

public BaseCSVisitor<Continuation<?>,CS2PivotConversion> getPreOrderVisitor(org.eclipse.emf.ecore.EPackage ePackage)

getQualifiedName

protected java.lang.String getQualifiedName(java.lang.StringBuffer s,
                                            Package pkg)

getQualifiedName

protected java.lang.String getQualifiedName(java.lang.StringBuffer s,
                                            PackageCS csPackage)

getTemplateBindings

protected java.util.List<TemplateBindingCS> getTemplateBindings(ElementCS csElement)

getTemplateSignatures

protected java.util.List<TemplateSignature> getTemplateSignatures(Element pivotElement)

getTypeManager

public final TypeManager getTypeManager()

getTypesHaveSignaturesInterDependency

public InterDependency<BasePreOrderVisitor.TemplateSignatureContinuation> getTypesHaveSignaturesInterDependency()

getTypesHaveSpecializationsInterDependency

public InterDependency<BasePreOrderVisitor.TemplateBindingContinuation> getTypesHaveSpecializationsInterDependency()

handleVisitNamedElement

public void handleVisitNamedElement(NamedElementCS csNamedElement,
                                    NamedElement pivotElement)

installPivotElement

public void installPivotElement(ModelElementCS csElement,
                                Element newPivotElement)

installResidualMonikers

public void installResidualMonikers(MonikeredElement monikeredElement)

installRootContents

protected void installRootContents(org.eclipse.emf.ecore.resource.Resource csResource)

progressContinuations

protected java.util.List<BasicContinuation<?>> progressContinuations(java.util.List<BasicContinuation<?>> continuations)
Invoke all of the continuations that can execute, returning the list of continuations till to perform, some of which may be ones that were blocked by unsatisfied dependencies, others of which may be further continuations resulting from only partial progress. Returns null if none of the continuations could execute.

Parameters:
continuations -
Returns:
continuations still to perform, null if stuck.

putIntermediate

public <T> T putIntermediate(CS2PivotConversion.CacheKey<T> key,
                             T object)

putPivotElement

public void putPivotElement(MonikeredElement pivotElement)

putPivotElement

public void putPivotElement(java.lang.String moniker,
                            MonikeredElement pivotElement)

refreshComments

protected void refreshComments(Element pivotElement,
                               ElementCS csElement)

refreshExpression

public <T extends OclExpression> T refreshExpression(java.lang.Class<T> pivotClass,
                                                     org.eclipse.emf.ecore.EClass pivotEClass,
                                                     MonikeredElementCS csElement)

refreshList

public <T extends Element> void refreshList(java.lang.Class<T> pivotClass,
                                            java.util.List<T> pivotElements,
                                            java.util.List<? extends MonikeredElementCS> csElements)

refreshMonikeredElement

public <T extends MonikeredElement> T refreshMonikeredElement(java.lang.Class<T> pivotClass,
                                                              org.eclipse.emf.ecore.EClass pivotEClass,
                                                              MonikeredElementCS csElement)
Return a pivotEClass instance cast to pivotClass registered for csElement.getMoniker().

An existing moniker element is re-used else an new instance is created.

The pivot element is installed as the original object of csElement.

Type Parameters:
T -
Parameters:
pivotClass -
pivotEClass -
csElement -
Returns:

refreshMonikeredElement

public <T extends MonikeredElement> T refreshMonikeredElement(java.lang.Class<T> pivotClass,
                                                              org.eclipse.emf.ecore.EClass pivotEClass,
                                                              java.lang.String moniker)

refreshName

public void refreshName(NamedElement pivotNamedElement,
                        java.lang.String newName)

refreshNamedElement

public <T extends NamedElement> T refreshNamedElement(java.lang.Class<T> pivotClass,
                                                      org.eclipse.emf.ecore.EClass pivotEClass,
                                                      NamedElementCS csElement)

refreshPackage

public <T extends Package> T refreshPackage(java.lang.Class<T> pivotClass,
                                            org.eclipse.emf.ecore.EClass pivotEClass,
                                            PackageCS csElement)

refreshPivotList

public <T extends Element> void refreshPivotList(java.lang.Class<T> pivotClass,
                                                 java.util.List<? super T> pivotElements,
                                                 java.util.List<? extends ModelElementCS> csElements)

refreshTemplateSignature

public void refreshTemplateSignature(TemplateableElementCS csTemplateableElement,
                                     TemplateableElement pivotTemplateableElement)

refreshTypedMultiplicityElement

public <T extends TypedMultiplicityElement> T refreshTypedMultiplicityElement(java.lang.Class<T> pivotClass,
                                                                              org.eclipse.emf.ecore.EClass pivotEClass,
                                                                              TypedElementCS csTypedElement)

refreshMultiplicity

public <T> void refreshMultiplicity(MultiplicityElement pivotElement,
                                    TypedElementCS csTypedElement)

resetPivotMappings

protected void resetPivotMappings(java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources)

resolveIterationSpecialization

public void resolveIterationSpecialization(LoopExp expression)
The iteration was initially specialized without knowledge of the body type. It may therefore need respecialization to correct typing providing by LambdaType bodies, such as those that propagate collect typing. It is also necessary to fudge the unmodelled collect flattening.


resolveIterationUnderspecification

public void resolveIterationUnderspecification(LoopExp expression)
The iteration was initially specialized without knowledge of the body type. It may therefore need respecialization to correct typing providing by LambdaType bodies, such as those that propagate collect typing. It is also necessary to fudge the unmodelled collect flattening.


resolveNamespaces

public void resolveNamespaces(java.util.List<Namespace> namespaces)

resolveUnderspecifiedTypes

protected void resolveUnderspecifiedTypes()

resolveUnderspecifiedType

protected Type resolveUnderspecifiedType(Type type)

reputPivotElement

public void reputPivotElement(java.lang.String moniker,
                              MonikeredElement pivotElement)

reusePivotElement

public void reusePivotElement(ModelElementCS csElement,
                              Element newPivotElement)
Install a CS to Pivot mapping for which the CS element does not have a matching moniker. This occurs where the CS requires multiple objects for a pivot object and so only one of the CS objects can have a matching moniker. e.g. NavigationArgCS


setReferredIteration

public void setReferredIteration(LoopExp expression,
                                 Iteration iteration)

setReferredOperation

public void setReferredOperation(OperationCallExp expression,
                                 Operation operation)

setType

public void setType(TypedElement pivotElement,
                    Type type)
Set the type and so potentially satisfy some TypeOfDependency. This method ensures that type is not set to null.

Parameters:
pivotExpression -
type -

setTypeWithMultiplicity

public void setTypeWithMultiplicity(TypedElement typedElement,
                                    TypedMultiplicityElement typedMultiplicityElement)

specializeTemplateBindings

protected void specializeTemplateBindings(java.util.List<TemplateBinding> templateBindings,
                                          java.util.List<TemplateSignature> templateSignatures,
                                          java.util.List<TemplateBindingCS> csTemplateBindings)
Update a list of TemplateBinding to match a list of TemplateSignature by moving/adding/removing existing entries. Once matched each TemplateBinding.signature references the corresponding TemplateSignature, and each TemplateBinding.parameterSubstitution.formal references the corresponding TemplateSignature.ownedParameter.

Parameters:
templateBindings -
templateSignatures -

specializeTemplateParameterSubstitutions

protected void specializeTemplateParameterSubstitutions(java.util.List<TemplateParameterSubstitution> templateParameterSubstitutions,
                                                        java.util.List<TemplateParameter> templateParameters,
                                                        java.util.List<TemplateParameterSubstitutionCS> csTemplateParameterSubstitutions)
Update a list of TemplateParameterSubstitution to match a list of TemplateParameter by moving/adding/removing existing entries. Once matched each TemplateParameterSubstitution.formal references the corresponding TemplateParameter.

Parameters:
eList -
templateSignature -
templateBinding -

specializeTemplates

protected TemplateableElement specializeTemplates(TypedTypeRefCS csElement)

trimString

protected java.lang.String trimString(java.lang.String string)

update

public boolean update()
Sequence the update passes to make the pivot match the CS.

Parameters:
csResources -

usePivotElement

public void usePivotElement(ModelElementCS csElement,
                            Element newPivotElement)
Install a CS to Pivot mapping for which the CS element does not map to the pivot object. This occurs where the pivot requires multiple objects for a CS object and so only one of the pivot objects can have a matching moniker. e.g. LetExpCS


visitLeft2Right

public <T extends MonikeredElement> T visitLeft2Right(java.lang.Class<T> pivotClass,
                                                      VisitableCS csObject)

visitInPostOrder

protected void visitInPostOrder(java.util.List<? extends org.eclipse.emf.ecore.EObject> eObjects,
                                java.util.List<BasicContinuation<?>> continuations)

visitInPreOrder

protected void visitInPreOrder(java.util.List<? extends org.eclipse.emf.ecore.EObject> eObjects,
                               java.util.List<BasicContinuation<?>> continuations)