diff options
author | Ed Willink | 2017-02-02 15:03:42 +0000 |
---|---|---|
committer | Ed Willink | 2017-02-02 15:03:42 +0000 |
commit | a86d53d1e1158c07cd2c8b0140b2d99ee46d35f2 (patch) | |
tree | eebad2745c766625bd882cde4dac717ceb541719 | |
parent | 9e13de1933259fcb7e34ed13ec3e42e1fb7579ad (diff) | |
download | org.eclipse.qvtd-a86d53d1e1158c07cd2c8b0140b2d99ee46d35f2.tar.gz org.eclipse.qvtd-a86d53d1e1158c07cd2c8b0140b2d99ee46d35f2.tar.xz org.eclipse.qvtd-a86d53d1e1158c07cd2c8b0140b2d99ee46d35f2.zip |
[511536] Rationalize some QVTbaseUtil basicGet methods
19 files changed, 94 insertions, 79 deletions
diff --git a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java index 18357a64c..a30e5d948 100644 --- a/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java +++ b/plugins/org.eclipse.qvtd.codegen/src/org/eclipse/qvtd/codegen/qvti/analyzer/QVTiAS2CGVisitor.java @@ -487,11 +487,9 @@ public class QVTiAS2CGVisitor extends AS2CGVisitor implements QVTimperativeVisit if (pOperation instanceof Function) { if (cgSource == null) { // FIXME workaround for BUG 481664 Transformation asTransformation = QVTbaseUtil.getContainingTransformation(asOperationCallExp); - if (asTransformation != null) { - VariableDeclaration asThis = QVTbaseUtil.getContextVariable(standardLibrary, asTransformation); - VariableExp asThisExp = PivotUtil.createVariableExp(asThis); - cgSource = doVisit(CGValuedElement.class, asThisExp); - } + VariableDeclaration asThis = QVTbaseUtil.getContextVariable(standardLibrary, asTransformation); + VariableExp asThisExp = PivotUtil.createVariableExp(asThis); + cgSource = doVisit(CGValuedElement.class, asThisExp); } CGFunctionCallExp cgFunctionCallExp = QVTiCGModelFactory.eINSTANCE.createCGFunctionCallExp(); cgFunctionCallExp.setReferredOperation(pOperation); diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ExpressionAnalyzer.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ExpressionAnalyzer.java index 693154d27..4b8be33f7 100644 --- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ExpressionAnalyzer.java +++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/ExpressionAnalyzer.java @@ -783,11 +783,9 @@ public class ExpressionAnalyzer extends AbstractExtendingQVTcoreVisitor<@NonNull OCLExpression ownedSource = operationCallExp.getOwnedSource(); if (ownedSource instanceof VariableExp) { Transformation transformation = QVTbaseUtil.getContainingTransformation(operationCallExp); - if (transformation != null) { - Variable thisVariable = QVTbaseUtil.getContextVariable(scheduler.getStandardLibrary(), transformation); - if (((VariableExp)ownedSource).getReferredVariable() == thisVariable) { - ownedSource = null; - } + Variable thisVariable = QVTbaseUtil.getContextVariable(scheduler.getStandardLibrary(), transformation); + if (((VariableExp)ownedSource).getReferredVariable() == thisVariable) { + ownedSource = null; } } String operationName = ClassUtil.nonNullState(referredOperation.getName()); diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/analysis/OperationDependencyAnalysis.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/analysis/OperationDependencyAnalysis.java index a3a8500c6..0e386ce48 100644 --- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/analysis/OperationDependencyAnalysis.java +++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtp2qvts/analysis/OperationDependencyAnalysis.java @@ -1305,10 +1305,8 @@ public class OperationDependencyAnalysis if (operation instanceof Function) { Function function = (Function)operation; Transformation transformation = QVTbaseUtil.getContainingTransformation(function); - if (transformation != null) { - Variable thisVariable = QVTbaseUtil.getContextVariable(operationDependencyAnalysis.metamodelManager.getStandardLibrary(), transformation); - visitor.addVariable(thisVariable, ClassUtil.nonNullState(sourceAndArgumentPaths.get(0))); - } + Variable thisVariable = QVTbaseUtil.getContextVariable(operationDependencyAnalysis.metamodelManager.getStandardLibrary(), transformation); + visitor.addVariable(thisVariable, ClassUtil.nonNullState(sourceAndArgumentPaths.get(0))); ownedParameters = function.getOwnedParameters(); ownedBody = function.getQueryExpression(); } @@ -1560,9 +1558,6 @@ public class OperationDependencyAnalysis protected @NonNull NavigationDependencyStep createPropertyDependencyStep(@NonNull Property containmentProperty, @NonNull OperationCallExp oclContainerCallExp) { DomainUsage usage = getUsage(containmentProperty); - if (usage == null) { - usage = getUsage(containmentProperty); - } DependencyStepFactory factory = getDependencyStepFactory(usage); return factory.createPropertyDependencyStep(containmentProperty, oclContainerCallExp); } diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/VariablesAnalysis.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/VariablesAnalysis.java index f48d59d85..392948de7 100644 --- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/VariablesAnalysis.java +++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtr2qvtc/VariablesAnalysis.java @@ -230,7 +230,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp; // this.cMiddleRealizedVariable = addCoreRealizedVariable("trace", traceClass); - this.rThisVariable = QVTbaseUtil.getContextVariable(environmentFactory.getStandardLibrary(), ClassUtil.nonNullState(QVTbaseUtil.getContainingTransformation(rEnforcedDomain))); + this.rThisVariable = QVTbaseUtil.getContextVariable(environmentFactory.getStandardLibrary(), QVTbaseUtil.getContainingTransformation(rEnforcedDomain)); this.cThisVariable = QVTbaseUtil.getContextVariable(environmentFactory.getStandardLibrary(), cTransformation); ThisVariableAnalysis thisVariableAnalysis = new ThisVariableAnalysis(this, rThisVariable, cThisVariable); addVariableAnalysis(thisVariableAnalysis); @@ -452,7 +452,7 @@ import org.eclipse.qvtd.pivot.qvttemplate.TemplateExp; protected @NonNull VariableAnalysis getVariableAnalysis(@NonNull Variable relationVariable) { VariableAnalysis analysis = rVariable2analysis.get(relationVariable); if (analysis == null) { - assert QVTbaseUtil.getContainingTransformation(relationVariable) instanceof RelationalTransformation; + assert QVTbaseUtil.basicGetContainingTransformation(relationVariable) instanceof RelationalTransformation; analysis = new RelationVariableAnalysis(this, relationVariable); rVariable2analysis.put(relationVariable, analysis); } diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java index 8d23031a3..5cebc792d 100644 --- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java +++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/BasicRegion2Mapping.java @@ -555,12 +555,10 @@ public class BasicRegion2Mapping extends AbstractRegion2Mapping SchedulerConstants scheduler = getRegion().getMultiRegion().getSchedulerConstants(); StandardLibrary standardLibrary = scheduler.getStandardLibrary(); Transformation pTransformation = QVTbaseUtil.getContainingTransformation(pVariableExp); - if (pTransformation != null) { - Variable pThisVariable = QVTbaseUtil.getContextVariable(standardLibrary, pTransformation); - if (pVariableExp.getReferredVariable() == pThisVariable) { - VariableDeclaration iThisVariable = QVTbaseUtil.getContextVariable(standardLibrary, visitor.getTransformation()); - return PivotUtil.createVariableExp(iThisVariable); - } + Variable pThisVariable = QVTbaseUtil.getContextVariable(standardLibrary, pTransformation); + if (pVariableExp.getReferredVariable() == pThisVariable) { + VariableDeclaration iThisVariable = QVTbaseUtil.getContextVariable(standardLibrary, visitor.getTransformation()); + return PivotUtil.createVariableExp(iThisVariable); } } if (node != null) { diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTiVisitor.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTiVisitor.java index 046c17f39..e73eb516b 100644 --- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTiVisitor.java +++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvts2qvti/QVTs2QVTiVisitor.java @@ -156,7 +156,7 @@ public class QVTs2QVTiVisitor extends QVTimperativeHelper implements Visitor<Ele } Operation iOperation = qvtpOperation2qvtiOperation.get(pOperation); if (iOperation == null) { - Transformation containingTransformation = QVTbaseUtil.getContainingTransformation(pOperation); + Transformation containingTransformation = QVTbaseUtil.basicGetContainingTransformation(pOperation); if (containingTransformation == qvtpTransformation) { iOperation = EcoreUtil.copy(pOperation); assert iOperation != null; diff --git a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtu2qvtm/QVTu2QVTm.java b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtu2qvtm/QVTu2QVTm.java index 7b05993f1..60203bd6e 100644 --- a/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtu2qvtm/QVTu2QVTm.java +++ b/plugins/org.eclipse.qvtd.compiler/src/org/eclipse/qvtd/compiler/internal/qvtu2qvtm/QVTu2QVTm.java @@ -607,8 +607,7 @@ public class QVTu2QVTm extends AbstractQVTc2QVTc mMapping.setName(name); super.synthesize(mMapping); Transformation uTransformation = QVTbaseUtil.getContainingTransformation(uMapping); - assert uTransformation != null; - for (@NonNull TypedModel uTypedModel : ClassUtil.nullFree(uTransformation.getModelParameter())) { + for (@NonNull TypedModel uTypedModel : QVTbaseUtil.getModelParameters(uTransformation)) { MergedDomain mergedDomain = uTypedModel2mergedDomain.get(uTypedModel); if (mergedDomain != null) { CoreDomain mDomain = mergedDomain.synthesize(); diff --git a/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/attributes/TypedModelAttribution.java b/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/attributes/TypedModelAttribution.java index be6670fb1..c8d6a2d95 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/attributes/TypedModelAttribution.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/attributes/TypedModelAttribution.java @@ -28,10 +28,8 @@ public class TypedModelAttribution extends AbstractAttribution public ScopeView computeLookup(@NonNull EObject target, @NonNull EnvironmentView environmentView, @NonNull ScopeView scopeView) { TypedModel typedModel = (TypedModel)target; BaseModel model = QVTbaseUtil.getContainingModel(typedModel); - if (model != null) { - for (Import _import : model.getOwnedImports()) { - environmentView.addElement(_import.getName(), _import.getImportedNamespace()); - } + for (Import _import : model.getOwnedImports()) { + environmentView.addElement(_import.getName(), _import.getImportedNamespace()); } return scopeView.getParent(); } diff --git a/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/QVTbaseUtil.java b/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/QVTbaseUtil.java index 24072a3ac..1085af3b5 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/QVTbaseUtil.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtbase/src/org/eclipse/qvtd/pivot/qvtbase/utilities/QVTbaseUtil.java @@ -25,9 +25,6 @@ import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.resource.Resource; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; -import org.eclipse.ocl.pivot.Comment; -import org.eclipse.ocl.pivot.Element; -import org.eclipse.ocl.pivot.Import; import org.eclipse.ocl.pivot.Model; import org.eclipse.ocl.pivot.OCLExpression; import org.eclipse.ocl.pivot.Operation; @@ -86,6 +83,42 @@ public class QVTbaseUtil extends PivotUtil } } + public static @Nullable Domain basicGetContainingDomain(@Nullable EObject eObject) { + for ( ; eObject != null; eObject = eObject.eContainer()) { + if (eObject instanceof Domain) { + return (Domain) eObject; + } + } + return null; + } + + public static @Nullable BaseModel basicGetContainingModel(@Nullable EObject eObject) { + for ( ; eObject != null; eObject = eObject.eContainer()) { + if (eObject instanceof BaseModel) { + return (BaseModel) eObject; + } + } + return null; + } + + public static @Nullable Rule basicGetContainingRule(@Nullable EObject eObject) { + for ( ; eObject != null; eObject = eObject.eContainer()) { + if (eObject instanceof Rule) { + return (Rule) eObject; + } + } + return null; + } + + public static @Nullable Transformation basicGetContainingTransformation(@Nullable EObject eObject) { + for ( ; eObject != null; eObject = eObject.eContainer()) { + if (eObject instanceof Transformation) { + return (Transformation) eObject; + } + } + return null; + } + /** * Return all transformations in asModel. */ @@ -167,40 +200,40 @@ public class QVTbaseUtil extends PivotUtil return ClassUtil.nonNullState(asPredicate.getConditionExpression()); } - public static @Nullable Domain getContainingDomain(@Nullable EObject eObject) { + public static @NonNull Domain getContainingDomain(@Nullable EObject eObject) { for ( ; eObject != null; eObject = eObject.eContainer()) { if (eObject instanceof Domain) { return (Domain) eObject; } } - return null; + throw new IllegalStateException(); } - public static @Nullable BaseModel getContainingModel(@Nullable EObject eObject) { + public static @NonNull BaseModel getContainingModel(@Nullable EObject eObject) { for ( ; eObject != null; eObject = eObject.eContainer()) { if (eObject instanceof BaseModel) { return (BaseModel) eObject; } } - return null; + throw new IllegalStateException(); } - public static @Nullable Rule getContainingRule(@Nullable EObject eObject) { + public static @NonNull Rule getContainingRule(@Nullable EObject eObject) { for ( ; eObject != null; eObject = eObject.eContainer()) { if (eObject instanceof Rule) { return (Rule) eObject; } } - return null; + throw new IllegalStateException(); } - public static @Nullable Transformation getContainingTransformation(@Nullable EObject eObject) { + public static @NonNull Transformation getContainingTransformation(@Nullable EObject eObject) { for ( ; eObject != null; eObject = eObject.eContainer()) { if (eObject instanceof Transformation) { return (Transformation) eObject; } } - return null; + throw new IllegalStateException(); } /** @@ -298,14 +331,6 @@ public class QVTbaseUtil extends PivotUtil return ClassUtil.nullFree(asTransformation.getModelParameter()); } - public static @NonNull Iterable<@NonNull Comment> getOwnedComments(@NonNull Element asElement) { - return ClassUtil.nullFree(asElement.getOwnedComments()); - } - - public static @NonNull Iterable<@NonNull Import> getOwnedImports(@NonNull Model asModel) { - return ClassUtil.nullFree(asModel.getOwnedImports()); - } - public static @NonNull List<@NonNull Operation> getOwnedOperations(@NonNull Transformation asTransformation) { return ClassUtil.nullFree(asTransformation.getOwnedOperations()); } @@ -314,14 +339,14 @@ public class QVTbaseUtil extends PivotUtil // return ClassUtil.nullFree(asPattern.getPredicate()); // } - public static org.eclipse.ocl.pivot.@NonNull Package getOwningPackage(org.eclipse.ocl.pivot.@NonNull Class asClass) { - return ClassUtil.nonNullState(asClass.getOwningPackage()); - } - public static @NonNull Iterable<@NonNull Predicate> getPredicates(@NonNull Pattern asPattern) { return ClassUtil.nullFree(asPattern.getPredicate()); } + public static @NonNull OCLExpression getQueryExpression(@NonNull Function asFunction) { + return ClassUtil.nonNullState(asFunction.getQueryExpression()); + } + public static @NonNull Variable getReferredVariable(@NonNull VariableExp asVariableExp) { return (Variable) ClassUtil.nonNullState(asVariableExp.getReferredVariable()); } @@ -500,7 +525,7 @@ public class QVTbaseUtil extends PivotUtil if (missingSources != null) { StandardLibrary standardLibrary = environmentFactory.getStandardLibrary(); for (OperationCallExp operationCallExp : missingSources) { - Transformation transformation = QVTbaseUtil.getContainingTransformation(operationCallExp); + Transformation transformation = QVTbaseUtil.basicGetContainingTransformation(operationCallExp); if (transformation != null) { VariableDeclaration thisVariable = QVTbaseUtil.getContextVariable(standardLibrary, transformation); operationCallExp.setOwnedSource(PivotUtil.createVariableExp(thisVariable)); diff --git a/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/analysis/AbstractDomainUsageAnalysis.java b/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/analysis/AbstractDomainUsageAnalysis.java index a9688eea8..7023f5902 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/analysis/AbstractDomainUsageAnalysis.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/analysis/AbstractDomainUsageAnalysis.java @@ -147,7 +147,7 @@ public abstract class AbstractDomainUsageAnalysis extends AbstractExtendingQVTco } protected @NonNull DomainUsage getDomainUsage(@Nullable EObject object) { - Domain domain = QVTcoreUtil.getContainingDomain(object); + Domain domain = QVTcoreUtil.basicGetContainingDomain(object); if (domain != null) { return visit(domain.getTypedModel()); } diff --git a/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/attributes/BottomPatternAttribution.java b/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/attributes/BottomPatternAttribution.java index 7237e810b..1b6593967 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/attributes/BottomPatternAttribution.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/attributes/BottomPatternAttribution.java @@ -33,12 +33,10 @@ public class BottomPatternAttribution extends AbstractAttribution if (area instanceof Mapping) { Mapping mapping = (Mapping)area;; Transformation transformation = QVTbaseUtil.getContainingTransformation(mapping); - if (transformation != null) { - for (TypedModel typedModel : transformation.getModelParameter()) { - for (org.eclipse.ocl.pivot.Package pPackage : typedModel.getUsedPackage()) { - environmentView.addNamedElement(pPackage); - environmentView.addNamedElements(pPackage.getOwnedClasses()); - } + for (TypedModel typedModel : transformation.getModelParameter()) { + for (org.eclipse.ocl.pivot.Package pPackage : typedModel.getUsedPackage()) { + environmentView.addNamedElement(pPackage); + environmentView.addNamedElements(pPackage.getOwnedClasses()); } } QVTcoreEnvironmentUtil.addMiddleBottomVariables(environmentView, mapping); diff --git a/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/attributes/GuardPatternAttribution.java b/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/attributes/GuardPatternAttribution.java index 1383515e0..2c95a431e 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/attributes/GuardPatternAttribution.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/attributes/GuardPatternAttribution.java @@ -33,14 +33,12 @@ public class GuardPatternAttribution extends AbstractAttribution if (area instanceof Mapping) { Mapping mapping = (Mapping)area;; Transformation transformation = QVTbaseUtil.getContainingTransformation(mapping); - if (transformation != null) { for (TypedModel typedModel : transformation.getModelParameter()) { for (org.eclipse.ocl.pivot.Package pPackage : typedModel.getUsedPackage()) { environmentView.addNamedElement(pPackage); environmentView.addNamedElements(pPackage.getOwnedClasses()); } } - } QVTcoreEnvironmentUtil.addMiddleGuardVariables(environmentView, mapping); } else { diff --git a/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/utilities/QVTcoreAS2XMIidVisitor.java b/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/utilities/QVTcoreAS2XMIidVisitor.java index 62707a655..014a54c10 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/utilities/QVTcoreAS2XMIidVisitor.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtcore/src/org/eclipse/qvtd/pivot/qvtcore/utilities/QVTcoreAS2XMIidVisitor.java @@ -82,8 +82,8 @@ public class QVTcoreAS2XMIidVisitor extends AbstractQVTcoreAS2XMIidVisitor @Override public @Nullable Boolean visitRealizedVariable(@NonNull RealizedVariable object) { if (object.eContainer() instanceof CorePattern) { - Rule rule = QVTcoreUtil.getContainingRule(object); - if((rule != null) && (rule.getName() != null)) { + Rule rule = QVTcoreUtil.basicGetContainingRule(object); + if ((rule != null) && (rule.getName() != null)) { String name = object.getName(); if (name != null) { s.append(VARIABLE_PREFIX); @@ -100,8 +100,8 @@ public class QVTcoreAS2XMIidVisitor extends AbstractQVTcoreAS2XMIidVisitor public @Nullable Boolean visitVariable(@NonNull Variable object) { EObject eContainer = object.eContainer(); if (eContainer instanceof CorePattern) { - Rule rule = QVTcoreUtil.getContainingRule(object); - if((rule != null) && (rule.getName() != null)) { + Rule rule = QVTcoreUtil.basicGetContainingRule(object); + if ((rule != null) && (rule.getName() != null)) { String name = object.getName(); if (name != null) { s.append(VARIABLE_PREFIX); diff --git a/plugins/org.eclipse.qvtd.pivot.qvtrelation/src/org/eclipse/qvtd/pivot/qvtrelation/utilities/QVTrelationUtil.java b/plugins/org.eclipse.qvtd.pivot.qvtrelation/src/org/eclipse/qvtd/pivot/qvtrelation/utilities/QVTrelationUtil.java index aedd38f4c..e310613e5 100644 --- a/plugins/org.eclipse.qvtd.pivot.qvtrelation/src/org/eclipse/qvtd/pivot/qvtrelation/utilities/QVTrelationUtil.java +++ b/plugins/org.eclipse.qvtd.pivot.qvtrelation/src/org/eclipse/qvtd/pivot/qvtrelation/utilities/QVTrelationUtil.java @@ -107,6 +107,15 @@ public class QVTrelationUtil extends QVTtemplateUtil throw new IllegalStateException(); } + public static @NonNull RelationalTransformation getContainingTransformation(@Nullable EObject eObject) { + for ( ; eObject != null; eObject = eObject.eContainer()) { + if (eObject instanceof RelationalTransformation) { + return (RelationalTransformation) eObject; + } + } + throw new IllegalStateException(); + } + public static org.eclipse.ocl.pivot.@NonNull Class getIdentifies(@NonNull Key rKey) { return ClassUtil.nonNullState(rKey.getIdentifies()); } diff --git a/plugins/org.eclipse.qvtd.umlx/src/org/eclipse/qvtd/umlx/utilities/UMLXServices.java b/plugins/org.eclipse.qvtd.umlx/src/org/eclipse/qvtd/umlx/utilities/UMLXServices.java index 1b93ca64d..bf3aa1e12 100644 --- a/plugins/org.eclipse.qvtd.umlx/src/org/eclipse/qvtd/umlx/utilities/UMLXServices.java +++ b/plugins/org.eclipse.qvtd.umlx/src/org/eclipse/qvtd/umlx/utilities/UMLXServices.java @@ -328,9 +328,9 @@ public class UMLXServices for (String line : ((RelPatternExpressionNode)context).getInitExpressionLines()) { if (!firstLine) { s.append("\n"); - s.append(line); - firstLine = false; } + s.append(line); + firstLine = false; } return s.toString(); } diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/src/org/eclipse/qvtd/xtext/qvtcore/cs2as/QVTcoreCSContainmentVisitor.java b/plugins/org.eclipse.qvtd.xtext.qvtcore/src/org/eclipse/qvtd/xtext/qvtcore/cs2as/QVTcoreCSContainmentVisitor.java index 9d1e0e111..cc4992b20 100644 --- a/plugins/org.eclipse.qvtd.xtext.qvtcore/src/org/eclipse/qvtd/xtext/qvtcore/cs2as/QVTcoreCSContainmentVisitor.java +++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/src/org/eclipse/qvtd/xtext/qvtcore/cs2as/QVTcoreCSContainmentVisitor.java @@ -125,7 +125,7 @@ public class QVTcoreCSContainmentVisitor extends AbstractQVTcoreCSContainmentVis if (pDomain != null) { TypedModel direction = csElement.getDirection(); if (direction == null) { - Transformation transformation = QVTbaseUtil.getContainingTransformation(pDomain); + Transformation transformation = QVTbaseUtil.basicGetContainingTransformation(pDomain); if (transformation != null) { direction = transformation.getModelParameter(null); } diff --git a/plugins/org.eclipse.qvtd.xtext.qvtcore/src/org/eclipse/qvtd/xtext/qvtcore/cs2as/QVTcoreCSLeft2RightVisitor.java b/plugins/org.eclipse.qvtd.xtext.qvtcore/src/org/eclipse/qvtd/xtext/qvtcore/cs2as/QVTcoreCSLeft2RightVisitor.java index 0f090021b..deb8994b2 100644 --- a/plugins/org.eclipse.qvtd.xtext.qvtcore/src/org/eclipse/qvtd/xtext/qvtcore/cs2as/QVTcoreCSLeft2RightVisitor.java +++ b/plugins/org.eclipse.qvtd.xtext.qvtcore/src/org/eclipse/qvtd/xtext/qvtcore/cs2as/QVTcoreCSLeft2RightVisitor.java @@ -23,7 +23,6 @@ import org.eclipse.ocl.pivot.PivotPackage; import org.eclipse.ocl.pivot.Type; import org.eclipse.ocl.pivot.Variable; import org.eclipse.ocl.pivot.VariableDeclaration; -import org.eclipse.ocl.pivot.utilities.ClassUtil; import org.eclipse.ocl.pivot.utilities.FeatureFilter; import org.eclipse.ocl.pivot.utilities.NameUtil; import org.eclipse.ocl.pivot.utilities.PivotUtil; @@ -59,7 +58,7 @@ public class QVTcoreCSLeft2RightVisitor extends AbstractQVTcoreCSLeft2RightVisit if (csParent instanceof MappingCS) { Mapping asMapping = PivotUtil.getPivot(Mapping.class, (MappingCS)csParent); if (asMapping != null) { - Transformation asTransformation = QVTbaseUtil.getContainingTransformation(asMapping); + Transformation asTransformation = QVTbaseUtil.basicGetContainingTransformation(asMapping); if (asTransformation != null) { next = asTransformation; } @@ -69,7 +68,7 @@ public class QVTcoreCSLeft2RightVisitor extends AbstractQVTcoreCSLeft2RightVisit else if (csParent instanceof QueryCS) { Function asFunction = PivotUtil.getPivot(Function.class, (QueryCS)csParent); if (asFunction != null) { - Transformation asTransformation = QVTbaseUtil.getContainingTransformation(asFunction);; + Transformation asTransformation = QVTbaseUtil.basicGetContainingTransformation(asFunction);; if (asTransformation != null) { next = asTransformation; } @@ -143,7 +142,7 @@ public class QVTcoreCSLeft2RightVisitor extends AbstractQVTcoreCSLeft2RightVisit context.setReferredOperation(operationCallExp, function); context.setType(operationCallExp, function.getType(), function.isIsRequired()); resolveOperationArgumentTypes(function.getOwnedParameters(), csRoundBracketedClause); - Transformation containingTransformation = ClassUtil.nonNullState(QVTbaseUtil.getContainingTransformation(function)); + Transformation containingTransformation = QVTbaseUtil.getContainingTransformation(function); VariableDeclaration contextVariable = QVTbaseUtil.getContextVariable(standardLibrary, containingTransformation); operationCallExp.setOwnedSource(PivotUtil.createVariableExp(contextVariable)); resolveOperationArguments(csRoundBracketedClause, function, operationCallExp); diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/as2cs/QVTimperativeDeclarationVisitor.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/as2cs/QVTimperativeDeclarationVisitor.java index 94b905ce3..8ba68f2a0 100644 --- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/as2cs/QVTimperativeDeclarationVisitor.java +++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/as2cs/QVTimperativeDeclarationVisitor.java @@ -342,7 +342,7 @@ public class QVTimperativeDeclarationVisitor extends QVTbaseDeclarationVisitor i if (asMapping != null) { @NonNull PathNameCS csPathName = BaseCSFactory.eINSTANCE.createPathNameCS(); csMappingCall.setOwnedPathName(csPathName); - context.refreshPathName(csPathName, asMapping, QVTbaseUtil.getContainingTransformation(asMappingCall)); + context.refreshPathName(csPathName, asMapping, QVTbaseUtil.basicGetContainingTransformation(asMappingCall)); } else { csMappingCall.setOwnedPathName(null); diff --git a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/cs2as/QVTimperativeCSLeft2RightVisitor.java b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/cs2as/QVTimperativeCSLeft2RightVisitor.java index c4fe9d739..e7da4dc3a 100644 --- a/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/cs2as/QVTimperativeCSLeft2RightVisitor.java +++ b/plugins/org.eclipse.qvtd.xtext.qvtimperative/src/org/eclipse/qvtd/xtext/qvtimperative/cs2as/QVTimperativeCSLeft2RightVisitor.java @@ -59,7 +59,7 @@ public class QVTimperativeCSLeft2RightVisitor extends AbstractQVTimperativeCSLef if (csParent instanceof MappingCS) { Mapping asMapping = PivotUtil.getPivot(Mapping.class, (MappingCS)csParent); if (asMapping != null) { - Transformation asTransformation = QVTbaseUtil.getContainingTransformation(asMapping); + Transformation asTransformation = QVTbaseUtil.basicGetContainingTransformation(asMapping); if (asTransformation != null) { next = asTransformation; } @@ -69,7 +69,7 @@ public class QVTimperativeCSLeft2RightVisitor extends AbstractQVTimperativeCSLef else if (csParent instanceof QueryCS) { Function asFunction = PivotUtil.getPivot(Function.class, (QueryCS)csParent); if (asFunction != null) { - Transformation asTransformation = QVTbaseUtil.getContainingTransformation(asFunction);; + Transformation asTransformation = QVTbaseUtil.basicGetContainingTransformation(asFunction);; if (asTransformation != null) { next = asTransformation; } |