public class CS2ASConversion extends AbstractBase2ASConversion
Modifier and Type | Class and Description |
---|---|
static class |
CS2ASConversion.CacheKey<T> |
AbstractConversion.Predicate<T extends org.eclipse.emf.ecore.EObject>
Modifier and Type | Field and Description |
---|---|
static TracingOption |
CONTINUATION |
protected CS2AS |
converter |
completeEnvironment, environmentFactory, metamodelManager, standardLibrary
Constructor and Description |
---|
CS2ASConversion(CS2AS converter,
org.eclipse.xtext.diagnostics.IDiagnosticConsumer diagnosticsConsumer) |
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(BaseCSResource csResource) |
Dependency |
createTypeIsReferenceableDependency(TypeRefCS csTemplateParameter)
Deprecated.
no longer used - code null test in caller
|
protected void |
diagnoseContinuationFailure(java.util.List<BasicContinuation<?>> continuations) |
void |
garbageCollect(java.util.Map<? extends org.eclipse.emf.ecore.resource.Resource,? extends ASResource> cs2asResourceMap)
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.
|
CS2AS |
getConverter() |
<T> T |
getIntermediate(CS2ASConversion.CacheKey<T> key) |
Package |
getOldPackageByQualifiedName(PackageCS csElement) |
Package |
getOldPackageBySimpleName(java.lang.String name) |
InterDependency<BaseCSPreOrderVisitor.OperatorExpContinuation<?>> |
getOperatorsHavePrecedenceInterDependency() |
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<BaseCSPreOrderVisitor.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(BaseCSResource csResource) |
void |
installRootElement(BaseCSResource csResource,
Element pivotElement) |
boolean |
isInReturnTypeWithUnresolvedParameters(ElementCS csElement) |
java.lang.Boolean |
isRequired(TypedRefCS csTypeRef) |
Iteration |
lookupIteration(ElementCS csElement,
PathNameCS csPathName,
ScopeFilter scopeFilter) |
Operation |
lookupOperation(ElementCS csElement,
PathNameCS csPathName,
ScopeFilter scopeFilter) |
Property |
lookupProperty(ElementCS csElement,
PathNameCS csPathName,
ScopeFilter scopeFilter) |
Type |
lookupType(ElementCS csElement,
PathNameCS csPathName) |
Type |
lookupTypeValue(ElementCS csElement,
PathNameCS csPathName) |
Element |
lookupUndecoratedName(ElementCS csElement,
PathNameCS csPathName) |
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(CS2ASConversion.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.lang.Iterable<? extends ModelElementCS> csElements) |
Type |
refreshRequiredType(TypedElement pivotElement,
TypedElementCS csTypedElement) |
void |
refreshRequiredType(TypedElement pivotElement,
TypedRefCS csTypeRef) |
void |
refreshTemplateSignature(TemplateableElementCS csTemplateableElement,
TemplateableElement pivotTemplateableElement) |
protected void |
resetPivotMappings(BaseCSResource csResource) |
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(BaseCSResource csResource)
Sequence the update passes to make the pivot match the CS.
|
protected void |
visitContainment(ElementCS csElement,
java.util.List<BasicContinuation<?>> continuations) |
protected void |
visitInPostOrder(ElementCS csElement,
java.util.List<BasicContinuation<?>> continuations) |
protected void |
visitInPreOrder(ElementCS csElement,
java.util.List<BasicContinuation<?>> continuations) |
<T extends Element> |
visitLeft2Right(java.lang.Class<T> pivotClass,
ElementCS csElement) |
addUnderspecifiedTypedElement, refreshName, refreshNsURI, setBehavioralType, setClassifierContext, setContextVariable, setOperationContext, setParameterVariables, setParameterVariables, setPropertyContext, setResultVariable, setType, setType, setType, setType
basicGet, getEnvironmentFactory, getEPackage, getMetamodelManager, getStandardLibrary, isId, refreshList, refreshSet
@NonNull public static final TracingOption CONTINUATION
@NonNull protected final CS2AS converter
public CS2ASConversion(@NonNull CS2AS converter, @NonNull org.eclipse.xtext.diagnostics.IDiagnosticConsumer diagnosticsConsumer)
@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 BaseCSResource csResource)
@Deprecated 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 ASResource> cs2asResourceMap)
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 CS2AS getConverter()
public <T> T getIntermediate(@NonNull CS2ASConversion.CacheKey<T> key)
public Package getOldPackageByQualifiedName(@NonNull PackageCS csElement)
public Package getOldPackageBySimpleName(@NonNull java.lang.String name)
@NonNull public InterDependency<BaseCSPreOrderVisitor.OperatorExpContinuation<?>> getOperatorsHavePrecedenceInterDependency()
@NonNull protected java.lang.String getQualifiedName(@NonNull java.lang.StringBuilder s, 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<BaseCSPreOrderVisitor.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 BaseCSResource csResource)
public void installPivotTypeWithMultiplicity(@Nullable Type pivotType, @NonNull TypedRefCS csElement)
public void installRootElement(@NonNull BaseCSResource csResource, @NonNull Element pivotElement)
public boolean isInReturnTypeWithUnresolvedParameters(@NonNull ElementCS csElement)
@Nullable public java.lang.Boolean isRequired(@NonNull TypedRefCS csTypeRef)
@Nullable public Iteration lookupIteration(@NonNull ElementCS csElement, @NonNull PathNameCS csPathName, @Nullable ScopeFilter scopeFilter)
@Nullable public Operation lookupOperation(@NonNull ElementCS csElement, @NonNull PathNameCS csPathName, @Nullable ScopeFilter scopeFilter)
@Nullable public Property lookupProperty(@NonNull ElementCS csElement, @NonNull PathNameCS csPathName, @Nullable ScopeFilter scopeFilter)
@Nullable public Type lookupType(@NonNull ElementCS csElement, @NonNull PathNameCS csPathName)
@Nullable public Type lookupTypeValue(@NonNull ElementCS csElement, @NonNull PathNameCS csPathName)
@Nullable public Element lookupUndecoratedName(@NonNull ElementCS csElement, @NonNull PathNameCS csPathName)
@Nullable protected java.util.List<BasicContinuation<?>> progressContinuations(@NonNull java.util.List<BasicContinuation<?>> continuations)
continuations
- public <T> T putIntermediate(CS2ASConversion.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)
@NonNull 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.
public <T extends Element> void refreshPivotList(@NonNull java.lang.Class<T> pivotClass, java.util.List<? super T> pivotElements, java.lang.Iterable<? extends ModelElementCS> csElements)
public Type refreshRequiredType(@NonNull TypedElement pivotElement, @NonNull TypedElementCS csTypedElement)
public void refreshRequiredType(@NonNull TypedElement pivotElement, @NonNull TypedRefCS csTypeRef)
public void refreshTemplateSignature(@NonNull TemplateableElementCS csTemplateableElement, @NonNull TemplateableElement pivotTemplateableElement)
protected void resetPivotMappings(@NonNull BaseCSResource csResource)
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)
@Nullable protected TemplateableElement specializeTemplates(@NonNull TypedTypeRefCS csElement)
public boolean update(@NonNull BaseCSResource csResource)
protected void visitContainment(@NonNull ElementCS csElement, @NonNull java.util.List<BasicContinuation<?>> continuations)
protected void visitInPostOrder(@NonNull ElementCS csElement, @NonNull java.util.List<BasicContinuation<?>> continuations)
protected void visitInPreOrder(@NonNull ElementCS csElement, @NonNull java.util.List<BasicContinuation<?>> continuations)