Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java')
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java1066
1 files changed, 476 insertions, 590 deletions
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java
index 475018b33..eb4c15841 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java
@@ -31,6 +31,7 @@ import org.eclipse.ocl.pivot.library.LibraryIteration;
import org.eclipse.ocl.pivot.library.collection.CollectionIncludesOperation;
import org.eclipse.ocl.pivot.library.logical.BooleanAndOperation;
import org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation;
+import org.eclipse.ocl.pivot.library.logical.BooleanNotOperation;
import org.eclipse.ocl.pivot.library.logical.BooleanOrOperation;
import org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation;
import org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation;
@@ -46,12 +47,10 @@ import org.eclipse.ocl.pivot.utilities.ValueUtil;
import org.eclipse.ocl.pivot.values.InvalidValueException;
import org.eclipse.ocl.pivot.values.SetValue;
import org.eclipse.qvtd.umlx.RelDomainNode;
-import org.eclipse.qvtd.umlx.RelPatternClassNode;
import org.eclipse.qvtd.umlx.RelPatternEdge;
import org.eclipse.qvtd.umlx.RelPatternNode;
import org.eclipse.qvtd.umlx.UMLXPackage;
import org.eclipse.qvtd.umlx.UMLXTables;
-import org.eclipse.qvtd.umlx.UMLXTypedElement;
import org.eclipse.qvtd.umlx.util.UMLXVisitor;
/**
@@ -90,7 +89,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* @generated
* @ordered
*/
- protected RelPatternClassNode source;
+ protected RelPatternNode source;
/**
* The default value of the '{@link #getSourceIndex() <em>Source Index</em>}' attribute.
@@ -147,10 +146,10 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* @generated
*/
@Override
- public RelPatternClassNode getSource() {
+ public RelPatternNode getSource() {
if (source != null && source.eIsProxy()) {
InternalEObject oldSource = (InternalEObject)source;
- source = (RelPatternClassNode)eResolveProxy(oldSource);
+ source = (RelPatternNode)eResolveProxy(oldSource);
if (source != oldSource) {
if (eNotificationRequired())
eNotify(new ENotificationImpl(this, Notification.RESOLVE, UMLXPackage.REL_PATTERN_EDGE__SOURCE, oldSource, source));
@@ -164,7 +163,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
- public RelPatternClassNode basicGetSource() {
+ public RelPatternNode basicGetSource() {
return source;
}
@@ -173,8 +172,8 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
- public NotificationChain basicSetSource(RelPatternClassNode newSource, NotificationChain msgs) {
- RelPatternClassNode oldSource = source;
+ public NotificationChain basicSetSource(RelPatternNode newSource, NotificationChain msgs) {
+ RelPatternNode oldSource = source;
source = newSource;
if (eNotificationRequired()) {
ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, UMLXPackage.REL_PATTERN_EDGE__SOURCE, oldSource, newSource);
@@ -189,13 +188,13 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* @generated
*/
@Override
- public void setSource(RelPatternClassNode newSource) {
+ public void setSource(RelPatternNode newSource) {
if (newSource != source) {
NotificationChain msgs = null;
if (source != null)
- msgs = ((InternalEObject)source).eInverseRemove(this, UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING, RelPatternClassNode.class, msgs);
+ msgs = ((InternalEObject)source).eInverseRemove(this, UMLXPackage.REL_PATTERN_NODE__OUTGOING, RelPatternNode.class, msgs);
if (newSource != null)
- msgs = ((InternalEObject)newSource).eInverseAdd(this, UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING, RelPatternClassNode.class, msgs);
+ msgs = ((InternalEObject)newSource).eInverseAdd(this, UMLXPackage.REL_PATTERN_NODE__OUTGOING, RelPatternNode.class, msgs);
msgs = basicSetSource(newSource, msgs);
if (msgs != null) msgs.dispatch();
}
@@ -377,194 +376,57 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* @generated
*/
@Override
- public boolean validateCompatibleMemberPropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ public boolean validateSourceIsEClass(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
- * inv CompatibleMemberPropertyTarget:
- * let
- * severity : Integer[1] = 'RelPatternEdge::CompatibleMemberPropertyTarget'.getSeverity()
+ * inv SourceIsEClass:
+ * let severity : Integer[1] = 'RelPatternEdge::SourceIsEClass'.getSeverity()
* in
* if severity <= 0
* then true
* else
- * let result : Boolean[?] = referredEStructuralFeature = null and sourceIndex > 0 and
- * target.oclIsKindOf(RelPatternClassNode) implies
- * let
- * sourceEClass : ecore::EClass[1] = source.oclAsType(RelPatternClassNode)
- * .referredEClassifier.oclAsType(ecore::EClass)
- * in
- * let
- * targetEClass : ecore::EClass[1] = target.oclAsType(RelPatternClassNode)
- * .referredEClassifier.oclAsType(ecore::EClass)
- * in
- * sourceEClass->closure(eSuperTypes)
- * ->includes(targetEClass) or
- * targetEClass->closure(eSuperTypes)
- * ->includes(sourceEClass)
+ * let
+ * result : Boolean[?] = not source.isExpression() implies
+ * source.referredEClassifier.oclIsKindOf(ecore::EClassifier)
* in
- * 'RelPatternEdge::CompatibleMemberPropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
+ * 'RelPatternEdge::SourceIsEClass'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
* endif
*/
final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this);
final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver();
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull StandardLibrary standardLibrary = idResolver.getStandardLibrary();
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleMemberPropertyTarget);
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_SourceIsEClass);
final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue();
- /*@NonInvalid*/ boolean symbol_2;
+ /*@NonInvalid*/ boolean symbol_0;
if (le) {
- symbol_2 = ValueUtil.TRUE_VALUE;
+ symbol_0 = ValueUtil.TRUE_VALUE;
}
else {
/*@Caught*/ @Nullable Object CAUGHT_result;
try {
- final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature();
- final /*@NonInvalid*/ boolean eq = referredEStructuralFeature == null;
- /*@NonInvalid*/ boolean and;
- if (eq) {
- final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex();
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex);
- final /*@NonInvalid*/ boolean gt = OclComparableGreaterThanOperation.INSTANCE.evaluate(executor, BOXED_sourceIndex, UMLXTables.INT_0).booleanValue();
- and = gt;
- }
- else {
- and = ValueUtil.FALSE_VALUE;
- }
- /*@NonInvalid*/ boolean and_0;
- if (and) {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget();
- final /*@NonInvalid*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, target, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue();
- and_0 = oclIsKindOf;
- }
- else {
- and_0 = ValueUtil.FALSE_VALUE;
- }
- /*@Thrown*/ java.lang.@Nullable Boolean result;
- if (and_0) {
- /*@Caught*/ @NonNull Object CAUGHT_sourceEClass;
- try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_1 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource();
- final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_1));
- @SuppressWarnings("null")
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = oclAsType.getReferredEClassifier();
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0));
- CAUGHT_sourceEClass = sourceEClass;
- }
- catch (Exception e) {
- CAUGHT_sourceEClass = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_targetEClass;
- try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_1 = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_2 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget();
- final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType_0 = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, target_0, TYP_umlx_c_c_RelPatternClassNode_2));
- @SuppressWarnings("null")
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier_0 = oclAsType_0.getReferredEClassifier();
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass targetEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier_0, TYP_ecore_c_c_EClass_1));
- CAUGHT_targetEClass = targetEClass;
- }
- catch (Exception e) {
- CAUGHT_targetEClass = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_includes;
- try {
- if (CAUGHT_sourceEClass instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_sourceEClass;
- }
- final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, CAUGHT_sourceEClass);
- final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_1 = executor.getStaticTypeOf(oclAsSet);
- final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_1 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_1.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure);
- final @NonNull Object ACC_closure_1 = IMPL_closure_1.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass);
- /**
- * Implementation of the iterator body.
- */
- final @NonNull AbstractBinaryOperation BODY_closure_1 = new AbstractBinaryOperation() {
- /**
- * eSuperTypes
- */
- @Override
- public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final /*@NonInvalid*/ java.lang.@Nullable Object _1) {
- final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_0 = (EClass)_1;
- if (symbol_0 == null) {
- throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'");
- }
- @SuppressWarnings("null")
- final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes = symbol_0.getESuperTypes();
- final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes);
- return BOXED_eSuperTypes;
- }
- };
- final @NonNull ExecutorSingleIterationManager MGR_closure_1 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_1, oclAsSet, ACC_closure_1);
- final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure = ClassUtil.nonNullState((SetValue)IMPL_closure_1.evaluateIteration(MGR_closure_1));
- if (CAUGHT_targetEClass instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_targetEClass;
- }
- final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(closure, CAUGHT_targetEClass).booleanValue();
- CAUGHT_includes = includes;
- }
- catch (Exception e) {
- CAUGHT_includes = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_includes_0;
- try {
- if (CAUGHT_targetEClass instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_targetEClass;
- }
- final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet_0 = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, CAUGHT_targetEClass);
- final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0_0 = executor.getStaticTypeOf(oclAsSet_0);
- final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_0_0 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_0_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure);
- final @NonNull Object ACC_closure_0_0 = IMPL_closure_0_0.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass);
- /**
- * Implementation of the iterator body.
- */
- final @NonNull AbstractBinaryOperation BODY_closure_0_0 = new AbstractBinaryOperation() {
- /**
- * eSuperTypes
- */
- @Override
- public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet_0, final /*@NonInvalid*/ java.lang.@Nullable Object _1_0) {
- final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_1 = (EClass)_1_0;
- if (symbol_1 == null) {
- throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'");
- }
- @SuppressWarnings("null")
- final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes_0 = symbol_1.getESuperTypes();
- final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes_0 = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes_0);
- return BOXED_eSuperTypes_0;
- }
- };
- final @NonNull ExecutorSingleIterationManager MGR_closure_0_0 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_0_0, oclAsSet_0, ACC_closure_0_0);
- final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure_0 = ClassUtil.nonNullState((SetValue)IMPL_closure_0_0.evaluateIteration(MGR_closure_0_0));
- if (CAUGHT_sourceEClass instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_sourceEClass;
- }
- final /*@Thrown*/ boolean includes_0 = CollectionIncludesOperation.INSTANCE.evaluate(closure_0, CAUGHT_sourceEClass).booleanValue();
- CAUGHT_includes_0 = includes_0;
- }
- catch (Exception e) {
- CAUGHT_includes_0 = ValueUtil.createInvalidValue(e);
- }
- final /*@Thrown*/ java.lang.@Nullable Boolean or = BooleanOrOperation.INSTANCE.evaluate(CAUGHT_includes, CAUGHT_includes_0);
- result = or;
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource();
+ final /*@NonInvalid*/ boolean isExpression = source.isExpression();
+ final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression);
+ /*@Caught*/ @NonNull Object CAUGHT_oclIsKindOf;
+ try {
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClassifier = idResolver.getClass(UMLXTables.CLSSid_EClassifier, null);
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = source.getReferredEClassifier();
+ final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClassifier).booleanValue();
+ CAUGHT_oclIsKindOf = oclIsKindOf;
}
- else {
- result = ValueUtil.TRUE_VALUE;
+ catch (Exception e) {
+ CAUGHT_oclIsKindOf = ValueUtil.createInvalidValue(e);
}
+ final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(not, CAUGHT_oclIsKindOf);
CAUGHT_result = result;
}
catch (Exception e) {
CAUGHT_result = ValueUtil.createInvalidValue(e);
}
- final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleMemberPropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
- symbol_2 = logDiagnostic;
+ final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_SourceIsEClass, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
+ symbol_0 = logDiagnostic;
}
- return Boolean.TRUE == symbol_2;
+ return Boolean.TRUE == symbol_0;
}
/**
@@ -583,14 +445,12 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* if severity <= 0
* then true
* else
- * let
- * result : Boolean[1] = source.oclIsKindOf(RelPatternClassNode)
+ * let result : Boolean[?] = not source.isExpression()
* in
* 'RelPatternEdge::SourceIsClassNode'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
* endif
*/
final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this);
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver();
final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_SourceIsClassNode);
final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue();
/*@NonInvalid*/ boolean symbol_0;
@@ -598,10 +458,10 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
symbol_0 = ValueUtil.TRUE_VALUE;
}
else {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
@SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource();
- final /*@NonInvalid*/ boolean result = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue();
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource();
+ final /*@NonInvalid*/ boolean isExpression = source.isExpression();
+ final /*@NonInvalid*/ java.lang.@Nullable Boolean result = BooleanNotOperation.INSTANCE.evaluate(isExpression);
final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_SourceIsClassNode, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue();
symbol_0 = logDiagnostic;
}
@@ -614,56 +474,87 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* @generated
*/
@Override
- public boolean validateSourceIsEClass(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ public boolean validateCompatibleEAttributePropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
- * inv SourceIsEClass:
- * let severity : Integer[1] = 'RelPatternEdge::SourceIsEClass'.getSeverity()
+ * inv CompatibleEAttributePropertyTarget:
+ * let
+ * severity : Integer[1] = 'RelPatternEdge::CompatibleEAttributePropertyTarget'.getSeverity()
* in
* if severity <= 0
* then true
* else
- * let
- * result : Boolean[?] = source.oclIsKindOf(RelPatternClassNode) implies
- * source.oclAsType(RelPatternClassNode)
- * .referredEClassifier.oclIsKindOf(ecore::EClassifier)
+ * let result : Boolean[?] = referredEStructuralFeature <> null and
+ * referredEStructuralFeature.oclIsKindOf(ecore::EAttribute) and
+ * not target.isExpression() implies referredEStructuralFeature.eType = target.referredEClassifier
* in
- * 'RelPatternEdge::SourceIsEClass'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
+ * 'RelPatternEdge::CompatibleEAttributePropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
* endif
*/
final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this);
final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver();
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_SourceIsEClass);
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEAttributePropertyTarget);
final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue();
/*@NonInvalid*/ boolean symbol_0;
if (le) {
symbol_0 = ValueUtil.TRUE_VALUE;
}
else {
- /*@Caught*/ @NonNull Object CAUGHT_result;
+ /*@Caught*/ @Nullable Object CAUGHT_result;
try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource();
- final /*@NonInvalid*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue();
- /*@Thrown*/ boolean result;
- if (oclIsKindOf) {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClassifier = idResolver.getClass(UMLXTables.CLSSid_EClassifier, null);
- final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_0));
+ /*@Caught*/ @Nullable Object CAUGHT_and_0;
+ try {
+ /*@Caught*/ @NonNull Object CAUGHT_and;
+ try {
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_0 = this.getReferredEStructuralFeature();
+ final /*@NonInvalid*/ boolean ne = referredEStructuralFeature_0 != null;
+ /*@Thrown*/ boolean and;
+ if (ne) {
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EAttribute = idResolver.getClass(UMLXTables.CLSSid_EAttribute, null);
+ final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEStructuralFeature_0, TYP_ecore_c_c_EAttribute).booleanValue();
+ and = oclIsKindOf;
+ }
+ else {
+ and = ValueUtil.FALSE_VALUE;
+ }
+ CAUGHT_and = and;
+ }
+ catch (Exception e) {
+ CAUGHT_and = ValueUtil.createInvalidValue(e);
+ }
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget();
+ final /*@NonInvalid*/ boolean isExpression = target.isExpression();
+ final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression);
+ final /*@Thrown*/ java.lang.@Nullable Boolean and_0 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and, not);
+ CAUGHT_and_0 = and_0;
+ }
+ catch (Exception e) {
+ CAUGHT_and_0 = ValueUtil.createInvalidValue(e);
+ }
+ /*@Caught*/ @NonNull Object CAUGHT_eq;
+ try {
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_1 = this.getReferredEStructuralFeature();
+ if (referredEStructuralFeature_1 == null) {
+ throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::ETypedElement::eType\'");
+ }
+ final /*@Thrown*/ org.eclipse.emf.ecore.@Nullable EClassifier eType = referredEStructuralFeature_1.getEType();
@SuppressWarnings("null")
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = oclAsType.getReferredEClassifier();
- final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClassifier).booleanValue();
- result = oclIsKindOf_0;
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget();
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = target_0.getReferredEClassifier();
+ final /*@Thrown*/ boolean eq = (eType != null) ? eType.equals(referredEClassifier) : (referredEClassifier == null);
+ CAUGHT_eq = eq;
}
- else {
- result = ValueUtil.TRUE_VALUE;
+ catch (Exception e) {
+ CAUGHT_eq = ValueUtil.createInvalidValue(e);
}
+ final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(CAUGHT_and_0, CAUGHT_eq);
CAUGHT_result = result;
}
catch (Exception e) {
CAUGHT_result = ValueUtil.createInvalidValue(e);
}
- final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_SourceIsEClass, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
+ final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEAttributePropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
symbol_0 = logDiagnostic;
}
return Boolean.TRUE == symbol_0;
@@ -675,23 +566,23 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* @generated
*/
@Override
- public boolean validateCompatibleSourceIndex(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ public boolean validateCompatibleSourceMultiplicity(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
- * inv CompatibleSourceIndex:
+ * inv CompatibleSourceMultiplicity:
* let
- * severity : Integer[1] = 'RelPatternEdge::CompatibleSourceIndex'.getSeverity()
+ * severity : Integer[1] = 'RelPatternEdge::CompatibleSourceMultiplicity'.getSeverity()
* in
* if severity <= 0
* then true
* else
- * let result : Boolean[1] = referredEStructuralFeature <> null = sourceIndex = 0
+ * let result : Boolean[1] = referredEStructuralFeature = null = source.isMany
* in
- * 'RelPatternEdge::CompatibleSourceIndex'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
+ * 'RelPatternEdge::CompatibleSourceMultiplicity'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
* endif
*/
final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this);
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceIndex);
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceMultiplicity);
final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue();
/*@NonInvalid*/ boolean symbol_0;
if (le) {
@@ -699,12 +590,12 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
}
else {
final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature();
- final /*@NonInvalid*/ boolean ne = referredEStructuralFeature != null;
- final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex();
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex);
- final /*@NonInvalid*/ boolean eq = BOXED_sourceIndex.equals(UMLXTables.INT_0);
- final /*@NonInvalid*/ boolean result = ne == eq;
- final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceIndex, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue();
+ final /*@NonInvalid*/ boolean eq = referredEStructuralFeature == null;
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource();
+ final /*@NonInvalid*/ boolean isMany = source.isIsMany();
+ final /*@NonInvalid*/ boolean result = eq == isMany;
+ final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceMultiplicity, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue();
symbol_0 = logDiagnostic;
}
return Boolean.TRUE == symbol_0;
@@ -716,285 +607,50 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* @generated
*/
@Override
- public boolean validateCompatibleRestPropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ public boolean validateCompatibleEReferencePropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
- * inv CompatibleRestPropertyTarget:
+ * inv CompatibleEReferencePropertyTarget:
* let
- * severity : Integer[1] = 'RelPatternEdge::CompatibleRestPropertyTarget'.getSeverity()
+ * severity : Integer[1] = 'RelPatternEdge::CompatibleEReferencePropertyTarget'.getSeverity()
* in
* if severity <= 0
* then true
* else
- * let result : Boolean[?] = referredEStructuralFeature = null and sourceIndex < 0 and
- * target.oclIsKindOf(RelPatternClassNode) implies
+ * let result : Boolean[?] = referredEStructuralFeature <> null and
+ * referredEStructuralFeature.oclIsKindOf(ecore::EReference) and
+ * not target.isExpression() implies
* let
- * sourceClassNode : RelPatternClassNode[1] = source.oclAsType(RelPatternClassNode)
+ * sourceEClass : ecore::EClass[1] = target.referredEClassifier.oclAsType(ecore::EClass)
* in
- * let
- * targetClassNode : RelPatternClassNode[1] = target.oclAsType(RelPatternClassNode)
- * in
- * let
- * sourceEClass : ecore::EClass[1] = sourceClassNode.referredEClassifier.oclAsType(ecore::EClass)
- * in
- * let
- * targetEClass : ecore::EClass[1] = targetClassNode.referredEClassifier.oclAsType(ecore::EClass)
- * in sourceEClass = targetEClass and sourceClassNode.isMany = targetClassNode.isMany and sourceClassNode.isNullFree = targetClassNode.isNullFree and sourceClassNode.isOrdered = targetClassNode.isOrdered and sourceClassNode.isUnique = targetClassNode.isUnique
- * in
- * 'RelPatternEdge::CompatibleRestPropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
- * endif
- */
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this);
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver();
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleRestPropertyTarget);
- final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue();
- /*@NonInvalid*/ boolean symbol_0;
- if (le) {
- symbol_0 = ValueUtil.TRUE_VALUE;
- }
- else {
- /*@Caught*/ @Nullable Object CAUGHT_result;
- try {
- final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature();
- final /*@NonInvalid*/ boolean eq = referredEStructuralFeature == null;
- /*@NonInvalid*/ boolean and;
- if (eq) {
- final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex();
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex);
- final /*@NonInvalid*/ boolean lt = OclComparableLessThanOperation.INSTANCE.evaluate(executor, BOXED_sourceIndex, UMLXTables.INT_0).booleanValue();
- and = lt;
- }
- else {
- and = ValueUtil.FALSE_VALUE;
- }
- /*@NonInvalid*/ boolean and_0;
- if (and) {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget();
- final /*@NonInvalid*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, target, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue();
- and_0 = oclIsKindOf;
- }
- else {
- and_0 = ValueUtil.FALSE_VALUE;
- }
- /*@Thrown*/ java.lang.@Nullable Boolean result;
- if (and_0) {
- /*@Caught*/ @NonNull Object CAUGHT_sourceClassNode;
- try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_1 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource();
- final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode sourceClassNode = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_1));
- CAUGHT_sourceClassNode = sourceClassNode;
- }
- catch (Exception e) {
- CAUGHT_sourceClassNode = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_targetClassNode;
- try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_2 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget();
- final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode targetClassNode = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, target_0, TYP_umlx_c_c_RelPatternClassNode_2));
- CAUGHT_targetClassNode = targetClassNode;
- }
- catch (Exception e) {
- CAUGHT_targetClassNode = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_sourceEClass;
- try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
- if (CAUGHT_sourceClassNode instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_sourceClassNode;
- }
- @SuppressWarnings("null")
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = ((UMLXTypedElement)CAUGHT_sourceClassNode).getReferredEClassifier();
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0));
- CAUGHT_sourceEClass = sourceEClass;
- }
- catch (Exception e) {
- CAUGHT_sourceEClass = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_targetEClass;
- try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_1 = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
- if (CAUGHT_targetClassNode instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_targetClassNode;
- }
- @SuppressWarnings("null")
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).getReferredEClassifier();
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass targetEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier_0, TYP_ecore_c_c_EClass_1));
- CAUGHT_targetEClass = targetEClass;
- }
- catch (Exception e) {
- CAUGHT_targetEClass = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @Nullable Object CAUGHT_and_3;
- try {
- /*@Caught*/ @Nullable Object CAUGHT_and_2;
- try {
- /*@Caught*/ @Nullable Object CAUGHT_and_1;
- try {
- /*@Caught*/ @NonNull Object CAUGHT_eq_0;
- try {
- if (CAUGHT_sourceEClass instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_sourceEClass;
- }
- if (CAUGHT_targetEClass instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_targetEClass;
- }
- final /*@Thrown*/ boolean eq_0 = CAUGHT_sourceEClass.equals(CAUGHT_targetEClass);
- CAUGHT_eq_0 = eq_0;
- }
- catch (Exception e) {
- CAUGHT_eq_0 = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_eq_1;
- try {
- if (CAUGHT_sourceClassNode instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_sourceClassNode;
- }
- final /*@Thrown*/ boolean isMany = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsMany();
- if (CAUGHT_targetClassNode instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_targetClassNode;
- }
- final /*@Thrown*/ boolean isMany_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsMany();
- final /*@Thrown*/ boolean eq_1 = isMany == isMany_0;
- CAUGHT_eq_1 = eq_1;
- }
- catch (Exception e) {
- CAUGHT_eq_1 = ValueUtil.createInvalidValue(e);
- }
- final /*@Thrown*/ java.lang.@Nullable Boolean and_1 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_eq_0, CAUGHT_eq_1);
- CAUGHT_and_1 = and_1;
- }
- catch (Exception e) {
- CAUGHT_and_1 = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_eq_2;
- try {
- if (CAUGHT_sourceClassNode instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_sourceClassNode;
- }
- final /*@Thrown*/ boolean isNullFree = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsNullFree();
- if (CAUGHT_targetClassNode instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_targetClassNode;
- }
- final /*@Thrown*/ boolean isNullFree_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsNullFree();
- final /*@Thrown*/ boolean eq_2 = isNullFree == isNullFree_0;
- CAUGHT_eq_2 = eq_2;
- }
- catch (Exception e) {
- CAUGHT_eq_2 = ValueUtil.createInvalidValue(e);
- }
- final /*@Thrown*/ java.lang.@Nullable Boolean and_2 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_1, CAUGHT_eq_2);
- CAUGHT_and_2 = and_2;
- }
- catch (Exception e) {
- CAUGHT_and_2 = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_eq_3;
- try {
- if (CAUGHT_sourceClassNode instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_sourceClassNode;
- }
- final /*@Thrown*/ boolean isOrdered = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsOrdered();
- if (CAUGHT_targetClassNode instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_targetClassNode;
- }
- final /*@Thrown*/ boolean isOrdered_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsOrdered();
- final /*@Thrown*/ boolean eq_3 = isOrdered == isOrdered_0;
- CAUGHT_eq_3 = eq_3;
- }
- catch (Exception e) {
- CAUGHT_eq_3 = ValueUtil.createInvalidValue(e);
- }
- final /*@Thrown*/ java.lang.@Nullable Boolean and_3 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_2, CAUGHT_eq_3);
- CAUGHT_and_3 = and_3;
- }
- catch (Exception e) {
- CAUGHT_and_3 = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_eq_4;
- try {
- if (CAUGHT_sourceClassNode instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_sourceClassNode;
- }
- final /*@Thrown*/ boolean isUnique = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsUnique();
- if (CAUGHT_targetClassNode instanceof InvalidValueException) {
- throw (InvalidValueException)CAUGHT_targetClassNode;
- }
- final /*@Thrown*/ boolean isUnique_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsUnique();
- final /*@Thrown*/ boolean eq_4 = isUnique == isUnique_0;
- CAUGHT_eq_4 = eq_4;
- }
- catch (Exception e) {
- CAUGHT_eq_4 = ValueUtil.createInvalidValue(e);
- }
- final /*@Thrown*/ java.lang.@Nullable Boolean and_4 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_3, CAUGHT_eq_4);
- result = and_4;
- }
- else {
- result = ValueUtil.TRUE_VALUE;
- }
- CAUGHT_result = result;
- }
- catch (Exception e) {
- CAUGHT_result = ValueUtil.createInvalidValue(e);
- }
- final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleRestPropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
- symbol_0 = logDiagnostic;
- }
- return Boolean.TRUE == symbol_0;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean validateCompatibleEAttributePropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
- /**
- *
- * inv CompatibleEAttributePropertyTarget:
- * let
- * severity : Integer[1] = 'RelPatternEdge::CompatibleEAttributePropertyTarget'.getSeverity()
- * in
- * if severity <= 0
- * then true
- * else
- * let result : Boolean[?] = referredEStructuralFeature <> null and
- * referredEStructuralFeature.oclIsKindOf(ecore::EAttribute) and
- * target.oclIsKindOf(RelPatternClassNode) implies referredEStructuralFeature.eType =
- * target.oclAsType(RelPatternClassNode).referredEClassifier
+ * sourceEClass->closure(eSuperTypes)
+ * ->includes(referredEStructuralFeature.eType)
* in
- * 'RelPatternEdge::CompatibleEAttributePropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
+ * 'RelPatternEdge::CompatibleEReferencePropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
* endif
*/
final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this);
final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver();
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEAttributePropertyTarget);
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull StandardLibrary standardLibrary = idResolver.getStandardLibrary();
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEReferencePropertyTarget);
final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue();
- /*@NonInvalid*/ boolean symbol_0;
+ /*@NonInvalid*/ boolean symbol_1;
if (le) {
- symbol_0 = ValueUtil.TRUE_VALUE;
+ symbol_1 = ValueUtil.TRUE_VALUE;
}
else {
/*@Caught*/ @Nullable Object CAUGHT_result;
try {
/*@Caught*/ @Nullable Object CAUGHT_and_0;
try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
/*@Caught*/ @NonNull Object CAUGHT_and;
try {
final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_0 = this.getReferredEStructuralFeature();
final /*@NonInvalid*/ boolean ne = referredEStructuralFeature_0 != null;
/*@Thrown*/ boolean and;
if (ne) {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EAttribute = idResolver.getClass(UMLXTables.CLSSid_EAttribute, null);
- final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEStructuralFeature_0, TYP_ecore_c_c_EAttribute).booleanValue();
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EReference = idResolver.getClass(UMLXTables.CLSSid_EReference, null);
+ final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEStructuralFeature_0, TYP_ecore_c_c_EReference).booleanValue();
and = oclIsKindOf;
}
else {
@@ -1007,42 +663,67 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
}
@SuppressWarnings("null")
final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget();
- final /*@NonInvalid*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, target, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue();
- final /*@Thrown*/ java.lang.@Nullable Boolean and_0 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and, oclIsKindOf_0);
+ final /*@NonInvalid*/ boolean isExpression = target.isExpression();
+ final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression);
+ final /*@Thrown*/ java.lang.@Nullable Boolean and_0 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and, not);
CAUGHT_and_0 = and_0;
}
catch (Exception e) {
CAUGHT_and_0 = ValueUtil.createInvalidValue(e);
}
- /*@Caught*/ @NonNull Object CAUGHT_eq;
+ /*@Caught*/ @NonNull Object CAUGHT_includes;
try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_1 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget();
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = target_0.getReferredEClassifier();
+ final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0));
+ final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, sourceEClass);
+ final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0 = executor.getStaticTypeOf(oclAsSet);
+ final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_0 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure);
+ final @NonNull Object ACC_closure_0 = IMPL_closure_0.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass);
+ /**
+ * Implementation of the iterator body.
+ */
+ final @NonNull AbstractBinaryOperation BODY_closure_0 = new AbstractBinaryOperation() {
+ /**
+ * eSuperTypes
+ */
+ @Override
+ public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final /*@NonInvalid*/ java.lang.@Nullable Object _1) {
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_0 = (EClass)_1;
+ if (symbol_0 == null) {
+ throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'");
+ }
+ @SuppressWarnings("null")
+ final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes = symbol_0.getESuperTypes();
+ final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes);
+ return BOXED_eSuperTypes;
+ }
+ };
+ final @NonNull ExecutorSingleIterationManager MGR_closure_0 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_0, oclAsSet, ACC_closure_0);
+ final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure = ClassUtil.nonNullState((SetValue)IMPL_closure_0.evaluateIteration(MGR_closure_0));
final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_1 = this.getReferredEStructuralFeature();
if (referredEStructuralFeature_1 == null) {
throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::ETypedElement::eType\'");
}
final /*@Thrown*/ org.eclipse.emf.ecore.@Nullable EClassifier eType = referredEStructuralFeature_1.getEType();
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget();
- final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, target_0, TYP_umlx_c_c_RelPatternClassNode_1));
- @SuppressWarnings("null")
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = oclAsType.getReferredEClassifier();
- final /*@Thrown*/ boolean eq = referredEClassifier.equals(eType);
- CAUGHT_eq = eq;
+ final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(closure, eType).booleanValue();
+ CAUGHT_includes = includes;
}
catch (Exception e) {
- CAUGHT_eq = ValueUtil.createInvalidValue(e);
+ CAUGHT_includes = ValueUtil.createInvalidValue(e);
}
- final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(CAUGHT_and_0, CAUGHT_eq);
+ final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(CAUGHT_and_0, CAUGHT_includes);
CAUGHT_result = result;
}
catch (Exception e) {
CAUGHT_result = ValueUtil.createInvalidValue(e);
}
- final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEAttributePropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
- symbol_0 = logDiagnostic;
+ final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEReferencePropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
+ symbol_1 = logDiagnostic;
}
- return Boolean.TRUE == symbol_0;
+ return Boolean.TRUE == symbol_1;
}
/**
@@ -1062,8 +743,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* then true
* else
* let result : Boolean[?] = referredEStructuralFeature <> null implies
- * source.oclAsType(RelPatternClassNode)
- * .referredEClassifier.oclAsType(ecore::EClass)
+ * source.referredEClassifier.oclAsType(ecore::EClass)
* ->closure(eSuperTypes)
* ->includes(referredEStructuralFeature.eContainingClass)
* in
@@ -1087,14 +767,11 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
/*@Thrown*/ boolean result;
if (ne) {
final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource();
- final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_0));
@SuppressWarnings("null")
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = oclAsType.getReferredEClassifier();
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass oclAsType_0 = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass));
- final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, oclAsType_0);
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource();
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = source.getReferredEClassifier();
+ final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass oclAsType = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass));
+ final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, oclAsType);
final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0 = executor.getStaticTypeOf(oclAsSet);
final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_0 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure);
final @NonNull Object ACC_closure_0 = IMPL_closure_0.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass);
@@ -1146,47 +823,196 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* @generated
*/
@Override
- public boolean validateCompatibleSourceMultiplicity(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ public boolean validateCompatibleSourceIndex(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
- * inv CompatibleSourceMultiplicity:
+ * inv CompatibleSourceIndex:
* let
- * severity : Integer[1] = 'RelPatternEdge::CompatibleSourceMultiplicity'.getSeverity()
+ * severity : Integer[1] = 'RelPatternEdge::CompatibleSourceIndex'.getSeverity()
* in
* if severity <= 0
* then true
* else
- * let result : Boolean[1] = referredEStructuralFeature = null =
- * source.oclAsType(RelPatternClassNode).isMany
+ * let result : Boolean[1] = referredEStructuralFeature <> null = sourceIndex = 0
* in
- * 'RelPatternEdge::CompatibleSourceMultiplicity'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
+ * 'RelPatternEdge::CompatibleSourceIndex'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
+ * endif
+ */
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this);
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceIndex);
+ final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue();
+ /*@NonInvalid*/ boolean symbol_0;
+ if (le) {
+ symbol_0 = ValueUtil.TRUE_VALUE;
+ }
+ else {
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature();
+ final /*@NonInvalid*/ boolean ne = referredEStructuralFeature != null;
+ final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex();
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex);
+ final /*@NonInvalid*/ boolean eq = BOXED_sourceIndex.equals(UMLXTables.INT_0);
+ final /*@NonInvalid*/ boolean result = ne == eq;
+ final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceIndex, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue();
+ symbol_0 = logDiagnostic;
+ }
+ return Boolean.TRUE == symbol_0;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean validateCompatibleRestPropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ /**
+ *
+ * inv CompatibleRestPropertyTarget:
+ * let
+ * severity : Integer[1] = 'RelPatternEdge::CompatibleRestPropertyTarget'.getSeverity()
+ * in
+ * if severity <= 0
+ * then true
+ * else
+ * let result : Boolean[?] = referredEStructuralFeature = null and sourceIndex < 0 and
+ * not target.isExpression() implies
+ * let
+ * sourceEClass : ecore::EClass[1] = source.referredEClassifier.oclAsType(ecore::EClass)
+ * in
+ * let
+ * targetEClass : ecore::EClass[1] = target.referredEClassifier.oclAsType(ecore::EClass)
+ * in sourceEClass = targetEClass and source.isMany = target.isMany and source.isNullFree = target.isNullFree and source.isOrdered = target.isOrdered and source.isUnique = target.isUnique
+ * in
+ * 'RelPatternEdge::CompatibleRestPropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
* endif
*/
final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this);
final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver();
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceMultiplicity);
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleRestPropertyTarget);
final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue();
/*@NonInvalid*/ boolean symbol_0;
if (le) {
symbol_0 = ValueUtil.TRUE_VALUE;
}
else {
- /*@Caught*/ @NonNull Object CAUGHT_result;
+ /*@Caught*/ @Nullable Object CAUGHT_result;
try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature();
final /*@NonInvalid*/ boolean eq = referredEStructuralFeature == null;
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource();
- final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_0));
- final /*@Thrown*/ boolean isMany = oclAsType.isIsMany();
- final /*@Thrown*/ boolean result = eq == isMany;
+ /*@NonInvalid*/ boolean and;
+ if (eq) {
+ final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex();
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex);
+ final /*@NonInvalid*/ boolean lt = OclComparableLessThanOperation.INSTANCE.evaluate(executor, BOXED_sourceIndex, UMLXTables.INT_0).booleanValue();
+ and = lt;
+ }
+ else {
+ and = ValueUtil.FALSE_VALUE;
+ }
+ /*@NonInvalid*/ java.lang.@Nullable Boolean and_0;
+ if (and) {
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget();
+ final /*@NonInvalid*/ boolean isExpression = target.isExpression();
+ final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression);
+ and_0 = not;
+ }
+ else {
+ and_0 = ValueUtil.FALSE_VALUE;
+ }
+ /*@Caught*/ @Nullable Object CAUGHT_and_4;
+ try {
+ /*@Caught*/ @NonNull Object CAUGHT_sourceEClass;
+ try {
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource();
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = source.getReferredEClassifier();
+ final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0));
+ CAUGHT_sourceEClass = sourceEClass;
+ }
+ catch (Exception e) {
+ CAUGHT_sourceEClass = ValueUtil.createInvalidValue(e);
+ }
+ /*@Caught*/ @NonNull Object CAUGHT_targetEClass;
+ try {
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_1 = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget();
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier_0 = target_0.getReferredEClassifier();
+ final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass targetEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier_0, TYP_ecore_c_c_EClass_1));
+ CAUGHT_targetEClass = targetEClass;
+ }
+ catch (Exception e) {
+ CAUGHT_targetEClass = ValueUtil.createInvalidValue(e);
+ }
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source_3 = this.getSource();
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_4 = this.getTarget();
+ /*@Caught*/ @Nullable Object CAUGHT_and_3;
+ try {
+ /*@Caught*/ @Nullable Object CAUGHT_and_2;
+ try {
+ /*@Caught*/ @Nullable Object CAUGHT_and_1;
+ try {
+ /*@Caught*/ @NonNull Object CAUGHT_eq_0;
+ try {
+ if (CAUGHT_sourceEClass instanceof InvalidValueException) {
+ throw (InvalidValueException)CAUGHT_sourceEClass;
+ }
+ if (CAUGHT_targetEClass instanceof InvalidValueException) {
+ throw (InvalidValueException)CAUGHT_targetEClass;
+ }
+ final /*@Thrown*/ boolean eq_0 = CAUGHT_sourceEClass.equals(CAUGHT_targetEClass);
+ CAUGHT_eq_0 = eq_0;
+ }
+ catch (Exception e) {
+ CAUGHT_eq_0 = ValueUtil.createInvalidValue(e);
+ }
+ final /*@NonInvalid*/ boolean isMany = source_3.isIsMany();
+ final /*@NonInvalid*/ boolean isMany_0 = target_4.isIsMany();
+ final /*@NonInvalid*/ boolean eq_1 = isMany == isMany_0;
+ final /*@Thrown*/ java.lang.@Nullable Boolean and_1 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_eq_0, eq_1);
+ CAUGHT_and_1 = and_1;
+ }
+ catch (Exception e) {
+ CAUGHT_and_1 = ValueUtil.createInvalidValue(e);
+ }
+ final /*@NonInvalid*/ boolean isNullFree = source_3.isIsNullFree();
+ final /*@NonInvalid*/ boolean isNullFree_0 = target_4.isIsNullFree();
+ final /*@NonInvalid*/ boolean eq_2 = isNullFree == isNullFree_0;
+ final /*@Thrown*/ java.lang.@Nullable Boolean and_2 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_1, eq_2);
+ CAUGHT_and_2 = and_2;
+ }
+ catch (Exception e) {
+ CAUGHT_and_2 = ValueUtil.createInvalidValue(e);
+ }
+ final /*@NonInvalid*/ boolean isOrdered = source_3.isIsOrdered();
+ final /*@NonInvalid*/ boolean isOrdered_0 = target_4.isIsOrdered();
+ final /*@NonInvalid*/ boolean eq_3 = isOrdered == isOrdered_0;
+ final /*@Thrown*/ java.lang.@Nullable Boolean and_3 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_2, eq_3);
+ CAUGHT_and_3 = and_3;
+ }
+ catch (Exception e) {
+ CAUGHT_and_3 = ValueUtil.createInvalidValue(e);
+ }
+ final /*@NonInvalid*/ boolean isUnique = source_3.isIsUnique();
+ final /*@NonInvalid*/ boolean isUnique_0 = target_4.isIsUnique();
+ final /*@NonInvalid*/ boolean eq_4 = isUnique == isUnique_0;
+ final /*@Thrown*/ java.lang.@Nullable Boolean and_4 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_3, eq_4);
+ CAUGHT_and_4 = and_4;
+ }
+ catch (Exception e) {
+ CAUGHT_and_4 = ValueUtil.createInvalidValue(e);
+ }
+ final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(and_0, CAUGHT_and_4);
CAUGHT_result = result;
}
catch (Exception e) {
CAUGHT_result = ValueUtil.createInvalidValue(e);
}
- final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceMultiplicity, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
+ final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleRestPropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
symbol_0 = logDiagnostic;
}
return Boolean.TRUE == symbol_0;
@@ -1198,127 +1024,187 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* @generated
*/
@Override
- public boolean validateCompatibleEReferencePropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ public boolean validateCompatibleMemberPropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
- * inv CompatibleEReferencePropertyTarget:
+ * inv CompatibleMemberPropertyTarget:
* let
- * severity : Integer[1] = 'RelPatternEdge::CompatibleEReferencePropertyTarget'.getSeverity()
+ * severity : Integer[1] = 'RelPatternEdge::CompatibleMemberPropertyTarget'.getSeverity()
* in
* if severity <= 0
* then true
* else
- * let result : Boolean[?] = referredEStructuralFeature <> null and
- * referredEStructuralFeature.oclIsKindOf(ecore::EReference) and
- * target.oclIsKindOf(RelPatternClassNode) implies
+ * let result : Boolean[?] = referredEStructuralFeature = null and sourceIndex > 0 and
+ * not target.isExpression() implies
* let
- * sourceEClass : ecore::EClass[1] = target.oclAsType(RelPatternClassNode)
- * .referredEClassifier.oclAsType(ecore::EClass)
+ * sourceEClass : ecore::EClass[1] = source.referredEClassifier.oclAsType(ecore::EClass)
* in
- * sourceEClass->closure(eSuperTypes)
- * ->includes(referredEStructuralFeature.eType)
+ * let
+ * targetEClass : ecore::EClass[1] = target.referredEClassifier.oclAsType(ecore::EClass)
+ * in
+ * sourceEClass->closure(eSuperTypes)
+ * ->includes(targetEClass) or
+ * targetEClass->closure(eSuperTypes)
+ * ->includes(sourceEClass)
* in
- * 'RelPatternEdge::CompatibleEReferencePropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
+ * 'RelPatternEdge::CompatibleMemberPropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0)
* endif
*/
final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this);
final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver();
final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull StandardLibrary standardLibrary = idResolver.getStandardLibrary();
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEReferencePropertyTarget);
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleMemberPropertyTarget);
final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue();
- /*@NonInvalid*/ boolean symbol_1;
+ /*@NonInvalid*/ boolean symbol_2;
if (le) {
- symbol_1 = ValueUtil.TRUE_VALUE;
+ symbol_2 = ValueUtil.TRUE_VALUE;
}
else {
/*@Caught*/ @Nullable Object CAUGHT_result;
try {
- /*@Caught*/ @Nullable Object CAUGHT_and_0;
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature();
+ final /*@NonInvalid*/ boolean eq = referredEStructuralFeature == null;
+ /*@NonInvalid*/ boolean and;
+ if (eq) {
+ final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex();
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex);
+ final /*@NonInvalid*/ boolean gt = OclComparableGreaterThanOperation.INSTANCE.evaluate(executor, BOXED_sourceIndex, UMLXTables.INT_0).booleanValue();
+ and = gt;
+ }
+ else {
+ and = ValueUtil.FALSE_VALUE;
+ }
+ /*@NonInvalid*/ java.lang.@Nullable Boolean and_0;
+ if (and) {
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget();
+ final /*@NonInvalid*/ boolean isExpression = target.isExpression();
+ final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression);
+ and_0 = not;
+ }
+ else {
+ and_0 = ValueUtil.FALSE_VALUE;
+ }
+ /*@Caught*/ @Nullable Object CAUGHT_or;
try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
- /*@Caught*/ @NonNull Object CAUGHT_and;
+ /*@Caught*/ @NonNull Object CAUGHT_sourceEClass;
try {
- final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_0 = this.getReferredEStructuralFeature();
- final /*@NonInvalid*/ boolean ne = referredEStructuralFeature_0 != null;
- /*@Thrown*/ boolean and;
- if (ne) {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EReference = idResolver.getClass(UMLXTables.CLSSid_EReference, null);
- final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEStructuralFeature_0, TYP_ecore_c_c_EReference).booleanValue();
- and = oclIsKindOf;
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource();
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = source.getReferredEClassifier();
+ final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0));
+ CAUGHT_sourceEClass = sourceEClass;
+ }
+ catch (Exception e) {
+ CAUGHT_sourceEClass = ValueUtil.createInvalidValue(e);
+ }
+ /*@Caught*/ @NonNull Object CAUGHT_targetEClass;
+ try {
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_1 = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget();
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier_0 = target_0.getReferredEClassifier();
+ final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass targetEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier_0, TYP_ecore_c_c_EClass_1));
+ CAUGHT_targetEClass = targetEClass;
+ }
+ catch (Exception e) {
+ CAUGHT_targetEClass = ValueUtil.createInvalidValue(e);
+ }
+ /*@Caught*/ @NonNull Object CAUGHT_includes;
+ try {
+ if (CAUGHT_sourceEClass instanceof InvalidValueException) {
+ throw (InvalidValueException)CAUGHT_sourceEClass;
}
- else {
- and = ValueUtil.FALSE_VALUE;
+ final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, CAUGHT_sourceEClass);
+ final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_1 = executor.getStaticTypeOf(oclAsSet);
+ final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_1 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_1.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure);
+ final @NonNull Object ACC_closure_1 = IMPL_closure_1.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass);
+ /**
+ * Implementation of the iterator body.
+ */
+ final @NonNull AbstractBinaryOperation BODY_closure_1 = new AbstractBinaryOperation() {
+ /**
+ * eSuperTypes
+ */
+ @Override
+ public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final /*@NonInvalid*/ java.lang.@Nullable Object _1) {
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_0 = (EClass)_1;
+ if (symbol_0 == null) {
+ throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'");
+ }
+ @SuppressWarnings("null")
+ final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes = symbol_0.getESuperTypes();
+ final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes);
+ return BOXED_eSuperTypes;
+ }
+ };
+ final @NonNull ExecutorSingleIterationManager MGR_closure_1 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_1, oclAsSet, ACC_closure_1);
+ final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure = ClassUtil.nonNullState((SetValue)IMPL_closure_1.evaluateIteration(MGR_closure_1));
+ if (CAUGHT_targetEClass instanceof InvalidValueException) {
+ throw (InvalidValueException)CAUGHT_targetEClass;
}
- CAUGHT_and = and;
+ final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(closure, CAUGHT_targetEClass).booleanValue();
+ CAUGHT_includes = includes;
}
catch (Exception e) {
- CAUGHT_and = ValueUtil.createInvalidValue(e);
+ CAUGHT_includes = ValueUtil.createInvalidValue(e);
}
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget();
- final /*@NonInvalid*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, target, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue();
- final /*@Thrown*/ java.lang.@Nullable Boolean and_0 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and, oclIsKindOf_0);
- CAUGHT_and_0 = and_0;
- }
- catch (Exception e) {
- CAUGHT_and_0 = ValueUtil.createInvalidValue(e);
- }
- /*@Caught*/ @NonNull Object CAUGHT_includes;
- try {
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null);
- final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_1 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null);
- @SuppressWarnings("null")
- final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget();
- final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, target_0, TYP_umlx_c_c_RelPatternClassNode_1));
- @SuppressWarnings("null")
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = oclAsType.getReferredEClassifier();
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0));
- final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, sourceEClass);
- final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0 = executor.getStaticTypeOf(oclAsSet);
- final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_0 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure);
- final @NonNull Object ACC_closure_0 = IMPL_closure_0.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass);
- /**
- * Implementation of the iterator body.
- */
- final @NonNull AbstractBinaryOperation BODY_closure_0 = new AbstractBinaryOperation() {
+ /*@Caught*/ @NonNull Object CAUGHT_includes_0;
+ try {
+ if (CAUGHT_targetEClass instanceof InvalidValueException) {
+ throw (InvalidValueException)CAUGHT_targetEClass;
+ }
+ final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet_0 = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, CAUGHT_targetEClass);
+ final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0_0 = executor.getStaticTypeOf(oclAsSet_0);
+ final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_0_0 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_0_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure);
+ final @NonNull Object ACC_closure_0_0 = IMPL_closure_0_0.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass);
/**
- * eSuperTypes
+ * Implementation of the iterator body.
*/
- @Override
- public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final /*@NonInvalid*/ java.lang.@Nullable Object _1) {
- final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_0 = (EClass)_1;
- if (symbol_0 == null) {
- throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'");
+ final @NonNull AbstractBinaryOperation BODY_closure_0_0 = new AbstractBinaryOperation() {
+ /**
+ * eSuperTypes
+ */
+ @Override
+ public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet_0, final /*@NonInvalid*/ java.lang.@Nullable Object _1_0) {
+ final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_1 = (EClass)_1_0;
+ if (symbol_1 == null) {
+ throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'");
+ }
+ @SuppressWarnings("null")
+ final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes_0 = symbol_1.getESuperTypes();
+ final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes_0 = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes_0);
+ return BOXED_eSuperTypes_0;
}
- @SuppressWarnings("null")
- final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes = symbol_0.getESuperTypes();
- final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes);
- return BOXED_eSuperTypes;
+ };
+ final @NonNull ExecutorSingleIterationManager MGR_closure_0_0 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_0_0, oclAsSet_0, ACC_closure_0_0);
+ final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure_0 = ClassUtil.nonNullState((SetValue)IMPL_closure_0_0.evaluateIteration(MGR_closure_0_0));
+ if (CAUGHT_sourceEClass instanceof InvalidValueException) {
+ throw (InvalidValueException)CAUGHT_sourceEClass;
}
- };
- final @NonNull ExecutorSingleIterationManager MGR_closure_0 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_0, oclAsSet, ACC_closure_0);
- final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure = ClassUtil.nonNullState((SetValue)IMPL_closure_0.evaluateIteration(MGR_closure_0));
- final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_1 = this.getReferredEStructuralFeature();
- if (referredEStructuralFeature_1 == null) {
- throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::ETypedElement::eType\'");
+ final /*@Thrown*/ boolean includes_0 = CollectionIncludesOperation.INSTANCE.evaluate(closure_0, CAUGHT_sourceEClass).booleanValue();
+ CAUGHT_includes_0 = includes_0;
}
- final /*@Thrown*/ org.eclipse.emf.ecore.@Nullable EClassifier eType = referredEStructuralFeature_1.getEType();
- final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(closure, eType).booleanValue();
- CAUGHT_includes = includes;
+ catch (Exception e) {
+ CAUGHT_includes_0 = ValueUtil.createInvalidValue(e);
+ }
+ final /*@Thrown*/ java.lang.@Nullable Boolean or = BooleanOrOperation.INSTANCE.evaluate(CAUGHT_includes, CAUGHT_includes_0);
+ CAUGHT_or = or;
}
catch (Exception e) {
- CAUGHT_includes = ValueUtil.createInvalidValue(e);
+ CAUGHT_or = ValueUtil.createInvalidValue(e);
}
- final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(CAUGHT_and_0, CAUGHT_includes);
+ final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(and_0, CAUGHT_or);
CAUGHT_result = result;
}
catch (Exception e) {
CAUGHT_result = ValueUtil.createInvalidValue(e);
}
- final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEReferencePropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
- symbol_1 = logDiagnostic;
+ final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleMemberPropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue();
+ symbol_2 = logDiagnostic;
}
- return Boolean.TRUE == symbol_1;
+ return Boolean.TRUE == symbol_2;
}
/**
@@ -1371,7 +1257,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
setReferredEStructuralFeature((EStructuralFeature)newValue);
return;
case UMLXPackage.REL_PATTERN_EDGE__SOURCE:
- setSource((RelPatternClassNode)newValue);
+ setSource((RelPatternNode)newValue);
return;
case UMLXPackage.REL_PATTERN_EDGE__SOURCE_INDEX:
setSourceIndex((Integer)newValue);
@@ -1398,7 +1284,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
setReferredEStructuralFeature((EStructuralFeature)null);
return;
case UMLXPackage.REL_PATTERN_EDGE__SOURCE:
- setSource((RelPatternClassNode)null);
+ setSource((RelPatternNode)null);
return;
case UMLXPackage.REL_PATTERN_EDGE__SOURCE_INDEX:
setSourceIndex(SOURCE_INDEX_EDEFAULT);
@@ -1455,8 +1341,8 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
return basicSetOwningRelDomainNode((RelDomainNode)otherEnd, msgs);
case UMLXPackage.REL_PATTERN_EDGE__SOURCE:
if (source != null)
- msgs = ((InternalEObject)source).eInverseRemove(this, UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING, RelPatternClassNode.class, msgs);
- return basicSetSource((RelPatternClassNode)otherEnd, msgs);
+ msgs = ((InternalEObject)source).eInverseRemove(this, UMLXPackage.REL_PATTERN_NODE__OUTGOING, RelPatternNode.class, msgs);
+ return basicSetSource((RelPatternNode)otherEnd, msgs);
case UMLXPackage.REL_PATTERN_EDGE__TARGET:
if (target != null)
msgs = ((InternalEObject)target).eInverseRemove(this, UMLXPackage.REL_PATTERN_NODE__INCOMING, RelPatternNode.class, msgs);

Back to the top