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, setTypebasicGet, 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)