public class CS2PivotConversion extends AbstractBase2PivotConversion
Modifier and Type | Class and Description |
---|---|
static class |
CS2PivotConversion.CacheKey<T> |
AbstractConversion.Predicate<T extends org.eclipse.emf.ecore.EObject>
Modifier and Type | Field and Description |
---|---|
static TracingOption |
CONTINUATION |
protected CS2Pivot |
converter |
protected java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> |
csResources |
metaModelManager
Constructor and Description |
---|
CS2PivotConversion(CS2Pivot converter,
org.eclipse.xtext.diagnostics.IDiagnosticConsumer diagnosticsConsumer,
java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources) |
Modifier and Type | Method and Description |
---|---|
OCLExpression |
addBadExpressionError(ModelElementCS csElement,
java.lang.String boundMessage) |
void |
addDiagnostic(ElementCS csElement,
java.lang.String boundMessage) |
void |
addDiagnostic(ModelElementCS csElement,
org.eclipse.emf.common.util.Diagnostic diagnostic) |
void |
addWarning(ModelElementCS csElement,
java.lang.String message,
java.lang.Object... bindings) |
java.lang.String |
bind(org.eclipse.emf.ecore.EObject csContext,
java.lang.String messageTemplate,
java.lang.Object... bindings) |
boolean |
checkForNoErrors(java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources) |
Dependency |
createTypeIsReferenceableDependency(TypeRefCS csTemplateParameter) |
protected void |
diagnoseContinuationFailure(java.util.List<BasicContinuation<?>> continuations) |
void |
garbageCollect(java.util.Map<? extends org.eclipse.emf.ecore.resource.Resource,? extends org.eclipse.emf.ecore.resource.Resource> cs2pivotResourceMap)
Prune the pivots to eliminate:
- redundant orphans - e.g.
|
protected void |
gatherNewPackage(java.util.Set<Package> newPackages,
org.eclipse.emf.ecore.EObject pivot) |
protected void |
gatherNewPackages(java.util.Set<Package> newPackages,
org.eclipse.emf.ecore.resource.Resource csResource)
Add any packages and nested packages pivoted by csResource to newPackages.
|
protected void |
gatherOldPackages(java.util.List<? extends Package> pkgs)
Add any packages and nested packages in eObjects to oldPackages.
|
CS2Pivot |
getConverter() |
<T> T |
getIntermediate(CS2PivotConversion.CacheKey<T> key) |
Package |
getOldPackageByQualifiedName(PackageCS csElement) |
Package |
getOldPackageBySimpleName(java.lang.String name) |
protected java.lang.String |
getQualifiedName(java.lang.StringBuilder s,
Package pkg) |
protected java.lang.String |
getQualifiedName(java.lang.StringBuilder s,
PackageCS csPackage) |
protected java.util.List<TemplateBindingCS> |
getTemplateBindings(ElementCS csElement) |
protected java.util.List<TemplateSignature> |
getTemplateSignatures(Element pivotElement) |
InterDependency<BasePreOrderVisitor.TemplateSignatureContinuation> |
getTypesHaveSignaturesInterDependency() |
void |
handleVisitNamedElement(NamedElementCS csNamedElement,
NamedElement pivotElement) |
void |
installPivotReference(ElementRefCS csElement,
Element newPivotElement,
org.eclipse.emf.ecore.EReference eReference) |
void |
installPivotTypeWithMultiplicity(Type pivotType,
TypedRefCS csElement) |
void |
installPivotUsage(ModelElementCS csElement,
Element newPivotElement) |
protected void |
installRootContents(org.eclipse.emf.ecore.resource.Resource csResource) |
void |
installRootElement(org.eclipse.emf.ecore.resource.Resource csResource,
Element pivotElement) |
boolean |
isInReturnTypeWithUnresolvedParameters(ElementCS csElement) |
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 |
refreshComments(Element pivotElement,
ElementCS csElement) |
void |
refreshContextVariable(ExpressionInOCL pivotSpecification) |
<T extends Element> |
refreshList(java.lang.Class<T> pivotClass,
java.util.List<T> pivotElements,
java.util.List<? extends PivotableElementCS> csElements) |
<T extends Element> |
refreshModelElement(java.lang.Class<T> pivotClass,
org.eclipse.emf.ecore.EClass pivotEClass,
ModelElementCS csElement)
Return a pivotEClass instance cast to pivotClass registered for csElement.getCSI().
|
<T extends Element> |
refreshPivotList(java.lang.Class<T> pivotClass,
java.util.List<? super T> pivotElements,
java.util.List<? extends ModelElementCS> csElements) |
Type |
refreshRequiredType(TypedMultiplicityElement pivotElement,
TypedElementCS csTypedElement) |
void |
refreshTemplateSignature(TemplateableElementCS csTemplateableElement,
TemplateableElement pivotTemplateableElement) |
protected void |
resetPivotMappings(java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources) |
void |
setReferredIteration(LoopExp expression,
Iteration iteration) |
void |
setReferredOperation(OperationCallExp expression,
Operation operation) |
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) |
boolean |
update()
Sequence the update passes to make the pivot match the CS.
|
protected void |
visitContainment(org.eclipse.emf.ecore.EObject eObject,
java.util.List<BasicContinuation<?>> continuations) |
protected void |
visitInPostOrder(org.eclipse.emf.ecore.EObject eObject,
java.util.List<BasicContinuation<?>> continuations) |
protected void |
visitInPreOrder(org.eclipse.emf.ecore.EObject eObject,
java.util.List<BasicContinuation<?>> continuations) |
<T extends Element> |
visitLeft2Right(java.lang.Class<T> pivotClass,
VisitableCS csObject) |
addUnderspecifiedTypedElement, refreshName, refreshNsURI, resolveUnderspecifiedType, resolveUnderspecifiedTypes, setBehavioralType, setClassifierContext, setContextVariable, setOperationContext, setParameterVariables, setParameterVariables, setPropertyContext, setResultVariable, setType, setType
basicGet, getEPackage, getMetaModelManager, isId, refreshList, refreshSet
@NonNull public static final TracingOption CONTINUATION
@NonNull protected final CS2Pivot converter
@NonNull protected final java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources
public CS2PivotConversion(@NonNull CS2Pivot converter, @NonNull org.eclipse.xtext.diagnostics.IDiagnosticConsumer diagnosticsConsumer, @NonNull java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources)
@NonNull public OCLExpression addBadExpressionError(@NonNull ModelElementCS csElement, @NonNull java.lang.String boundMessage)
public void addDiagnostic(@NonNull ModelElementCS csElement, @NonNull org.eclipse.emf.common.util.Diagnostic diagnostic)
public void addDiagnostic(@NonNull ElementCS csElement, @NonNull java.lang.String boundMessage)
public void addWarning(@NonNull ModelElementCS csElement, java.lang.String message, java.lang.Object... bindings)
@NonNull public java.lang.String bind(@NonNull org.eclipse.emf.ecore.EObject csContext, java.lang.String messageTemplate, java.lang.Object... bindings)
public boolean checkForNoErrors(@NonNull java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources)
public Dependency createTypeIsReferenceableDependency(@NonNull TypeRefCS csTemplateParameter)
protected void diagnoseContinuationFailure(@NonNull java.util.List<BasicContinuation<?>> continuations)
public void garbageCollect(@NonNull java.util.Map<? extends org.eclipse.emf.ecore.resource.Resource,? extends org.eclipse.emf.ecore.resource.Resource> cs2pivotResourceMap)
protected void gatherNewPackage(@NonNull java.util.Set<Package> newPackages, @NonNull org.eclipse.emf.ecore.EObject pivot)
protected void gatherNewPackages(@NonNull java.util.Set<Package> newPackages, @NonNull org.eclipse.emf.ecore.resource.Resource csResource)
protected void gatherOldPackages(@NonNull java.util.List<? extends Package> pkgs)
@NonNull public final CS2Pivot getConverter()
public <T> T getIntermediate(@NonNull CS2PivotConversion.CacheKey<T> key)
@Nullable public Package getOldPackageByQualifiedName(@NonNull PackageCS csElement)
@Nullable public Package getOldPackageBySimpleName(@NonNull java.lang.String name)
@NonNull protected java.lang.String getQualifiedName(@NonNull java.lang.StringBuilder s, @NonNull Package pkg)
@NonNull protected java.lang.String getQualifiedName(@NonNull java.lang.StringBuilder s, @NonNull PackageCS csPackage)
@NonNull protected java.util.List<TemplateBindingCS> getTemplateBindings(@NonNull ElementCS csElement)
@NonNull protected java.util.List<TemplateSignature> getTemplateSignatures(@NonNull Element pivotElement)
@NonNull public InterDependency<BasePreOrderVisitor.TemplateSignatureContinuation> getTypesHaveSignaturesInterDependency()
public void handleVisitNamedElement(@NonNull NamedElementCS csNamedElement, @NonNull NamedElement pivotElement)
public void installPivotReference(@NonNull ElementRefCS csElement, @NonNull Element newPivotElement, org.eclipse.emf.ecore.EReference eReference)
public void installPivotUsage(@NonNull ModelElementCS csElement, @NonNull Element newPivotElement)
protected void installRootContents(@NonNull org.eclipse.emf.ecore.resource.Resource csResource)
public void installPivotTypeWithMultiplicity(@NonNull Type pivotType, @NonNull TypedRefCS csElement)
public void installRootElement(@NonNull org.eclipse.emf.ecore.resource.Resource csResource, @NonNull Element pivotElement)
public boolean isInReturnTypeWithUnresolvedParameters(@NonNull ElementCS csElement)
@Nullable protected java.util.List<BasicContinuation<?>> progressContinuations(@NonNull java.util.List<BasicContinuation<?>> continuations)
continuations
- public <T> T putIntermediate(CS2PivotConversion.CacheKey<T> key, T object)
public void refreshContextVariable(@NonNull ExpressionInOCL pivotSpecification)
public <T extends Element> void refreshList(@NonNull java.lang.Class<T> pivotClass, java.util.List<T> pivotElements, java.util.List<? extends PivotableElementCS> csElements)
@Nullable public <T extends Element> T refreshModelElement(@NonNull java.lang.Class<T> pivotClass, org.eclipse.emf.ecore.EClass pivotEClass, @Nullable ModelElementCS csElement)
An existing element is re-used else an new instance is created.
The pivot element is installed as the original object of csElement.
T
- pivotClass
- pivotEClass
- csElement
- public <T extends Element> void refreshPivotList(@NonNull java.lang.Class<T> pivotClass, java.util.List<? super T> pivotElements, java.util.List<? extends ModelElementCS> csElements)
public Type refreshRequiredType(@NonNull TypedMultiplicityElement pivotElement, @NonNull TypedElementCS csTypedElement)
public void refreshTemplateSignature(@NonNull TemplateableElementCS csTemplateableElement, @NonNull TemplateableElement pivotTemplateableElement)
protected void resetPivotMappings(@NonNull java.util.Collection<? extends org.eclipse.emf.ecore.resource.Resource> csResources)
public void setReferredIteration(@NonNull LoopExp expression, @Nullable Iteration iteration)
public void setReferredOperation(@NonNull OperationCallExp expression, @Nullable Operation operation)
protected void specializeTemplateBindings(@NonNull java.util.List<TemplateBinding> templateBindings, @NonNull java.util.List<TemplateSignature> templateSignatures, @NonNull java.util.List<TemplateBindingCS> csTemplateBindings)
templateBindings
- templateSignatures
- protected void specializeTemplateParameterSubstitutions(@NonNull java.util.List<TemplateParameterSubstitution> templateParameterSubstitutions, @NonNull java.util.List<TemplateParameter> templateParameters, @NonNull java.util.List<TemplateParameterSubstitutionCS> csTemplateParameterSubstitutions)
eList
- templateSignature
- templateBinding
- @Nullable protected TemplateableElement specializeTemplates(@NonNull TypedTypeRefCS csElement)
public boolean update()
csResources
- protected void visitContainment(@NonNull org.eclipse.emf.ecore.EObject eObject, @NonNull java.util.List<BasicContinuation<?>> continuations)
protected void visitInPostOrder(@NonNull org.eclipse.emf.ecore.EObject eObject, @NonNull java.util.List<BasicContinuation<?>> continuations)
protected void visitInPreOrder(@NonNull org.eclipse.emf.ecore.EObject eObject, @NonNull java.util.List<BasicContinuation<?>> continuations)
public <T extends Element> T visitLeft2Right(@NonNull java.lang.Class<T> pivotClass, @NonNull VisitableCS csObject)