Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelDomainNode.java2
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelInvocationEdge.java2
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternClassNode.java164
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternExpressionNode.java30
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternNode.java34
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxDiagram.java25
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxParameterNode.java57
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxQueryNode.java102
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXFactory.java18
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXPackage.java753
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXTables.java296
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXTypedElement.java191
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelDiagramImpl.java11
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelDomainNodeImpl.java18
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelInvocationEdgeImpl.java36
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternClassNodeImpl.java119
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java31
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternExpressionNodeImpl.java119
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternNodeImpl.java74
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxDiagramImpl.java112
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxParameterNodeImpl.java671
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxQueryNodeImpl.java841
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXElementImpl.java11
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXFactoryImpl.java24
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXPackageImpl.java564
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXTypedElementImpl.java447
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/AbstractExtendingUMLXVisitor.java15
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXAdapterFactory.java54
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXSwitch.java76
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXValidator.java444
-rw-r--r--plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXVisitor.java3
-rw-r--r--plugins/org.eclipse.qvtd.umlx/model/UMLX.ecore796
-rw-r--r--plugins/org.eclipse.qvtd.umlx/model/UMLX.genmodel29
-rw-r--r--releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdUMLXModels.mwe217
34 files changed, 5100 insertions, 1086 deletions
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelDomainNode.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelDomainNode.java
index 30c7dd9a7..88c1927c5 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelDomainNode.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelDomainNode.java
@@ -10,8 +10,6 @@
*/
package org.eclipse.qvtd.umlx;
-import java.util.Map;
-import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EList;
/**
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelInvocationEdge.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelInvocationEdge.java
index 04f18b560..bee43e522 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelInvocationEdge.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelInvocationEdge.java
@@ -84,6 +84,7 @@ public interface RelInvocationEdge extends RelEdge {
/**
* Returns the value of the '<em><b>Invoking Rel Pattern Node</b></em>' reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.RelPatternNode#getInvokingRelInvocationEdges <em>Invoking Rel Invocation Edges</em>}'.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Invoking Rel Pattern Node</em>' reference isn't clear,
@@ -93,6 +94,7 @@ public interface RelInvocationEdge extends RelEdge {
* @return the value of the '<em>Invoking Rel Pattern Node</em>' reference.
* @see #setInvokingRelPatternNode(RelPatternNode)
* @see org.eclipse.qvtd.umlx.UMLXPackage#getRelInvocationEdge_InvokingRelPatternNode()
+ * @see org.eclipse.qvtd.umlx.RelPatternNode#getInvokingRelInvocationEdges
* @generated
*/
RelPatternNode getInvokingRelPatternNode();
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternClassNode.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternClassNode.java
index 335a3a0d6..be7bd2451 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternClassNode.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternClassNode.java
@@ -13,7 +13,6 @@ package org.eclipse.qvtd.umlx;
import java.util.Map;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.EClassifier;
/**
* <!-- begin-user-doc -->
@@ -25,20 +24,14 @@ import org.eclipse.emf.ecore.EClassifier;
* </p>
* <ul>
* <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsAnon <em>Is Anon</em>}</li>
- * <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsMany <em>Is Many</em>}</li>
- * <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsNullFree <em>Is Null Free</em>}</li>
- * <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsOrdered <em>Is Ordered</em>}</li>
- * <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsRequired <em>Is Required</em>}</li>
- * <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsUnique <em>Is Unique</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getOutgoing <em>Outgoing</em>}</li>
- * <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getReferredEClassifier <em>Referred EClassifier</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getRelDomainNode <em>Rel Domain Node</em>}</li>
* </ul>
*
* @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternClassNode()
* @generated
*/
-public interface RelPatternClassNode extends RelPatternNode, UMLXNamedElement {
+public interface RelPatternClassNode extends RelPatternNode, UMLXTypedElement {
/**
* Returns the value of the '<em><b>Is Anon</b></em>' attribute.
* The default value is <code>"false"</code>.
@@ -66,136 +59,6 @@ public interface RelPatternClassNode extends RelPatternNode, UMLXNamedElement {
void setIsAnon(boolean value);
/**
- * Returns the value of the '<em><b>Is Many</b></em>' attribute.
- * The default value is <code>"false"</code>.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Is Many</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Is Many</em>' attribute.
- * @see #setIsMany(boolean)
- * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternClassNode_IsMany()
- * @generated
- */
- boolean isIsMany();
-
- /**
- * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsMany <em>Is Many</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Is Many</em>' attribute.
- * @see #isIsMany()
- * @generated
- */
- void setIsMany(boolean value);
-
- /**
- * Returns the value of the '<em><b>Is Null Free</b></em>' attribute.
- * The default value is <code>"true"</code>.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Is Null Free</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Is Null Free</em>' attribute.
- * @see #setIsNullFree(boolean)
- * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternClassNode_IsNullFree()
- * @generated
- */
- boolean isIsNullFree();
-
- /**
- * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsNullFree <em>Is Null Free</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Is Null Free</em>' attribute.
- * @see #isIsNullFree()
- * @generated
- */
- void setIsNullFree(boolean value);
-
- /**
- * Returns the value of the '<em><b>Is Ordered</b></em>' attribute.
- * The default value is <code>"false"</code>.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Is Ordered</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Is Ordered</em>' attribute.
- * @see #setIsOrdered(boolean)
- * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternClassNode_IsOrdered()
- * @generated
- */
- boolean isIsOrdered();
-
- /**
- * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsOrdered <em>Is Ordered</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Is Ordered</em>' attribute.
- * @see #isIsOrdered()
- * @generated
- */
- void setIsOrdered(boolean value);
-
- /**
- * Returns the value of the '<em><b>Is Required</b></em>' attribute.
- * The default value is <code>"true"</code>.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Is Required</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Is Required</em>' attribute.
- * @see #setIsRequired(boolean)
- * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternClassNode_IsRequired()
- * @generated
- */
- boolean isIsRequired();
-
- /**
- * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsRequired <em>Is Required</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Is Required</em>' attribute.
- * @see #isIsRequired()
- * @generated
- */
- void setIsRequired(boolean value);
-
- /**
- * Returns the value of the '<em><b>Is Unique</b></em>' attribute.
- * The default value is <code>"true"</code>.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Is Unique</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Is Unique</em>' attribute.
- * @see #setIsUnique(boolean)
- * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternClassNode_IsUnique()
- * @generated
- */
- boolean isIsUnique();
-
- /**
- * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsUnique <em>Is Unique</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Is Unique</em>' attribute.
- * @see #isIsUnique()
- * @generated
- */
- void setIsUnique(boolean value);
-
- /**
* Returns the value of the '<em><b>Outgoing</b></em>' reference list.
* The list contents are of type {@link org.eclipse.qvtd.umlx.RelPatternEdge}.
* It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.RelPatternEdge#getSource <em>Source</em>}'.
@@ -213,31 +76,6 @@ public interface RelPatternClassNode extends RelPatternNode, UMLXNamedElement {
EList<RelPatternEdge> getOutgoing();
/**
- * Returns the value of the '<em><b>Referred EClassifier</b></em>' reference.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Referred EClassifier</em>' reference isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Referred EClassifier</em>' reference.
- * @see #setReferredEClassifier(EClassifier)
- * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternClassNode_ReferredEClassifier()
- * @generated
- */
- EClassifier getReferredEClassifier();
-
- /**
- * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getReferredEClassifier <em>Referred EClassifier</em>}' reference.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Referred EClassifier</em>' reference.
- * @see #getReferredEClassifier()
- * @generated
- */
- void setReferredEClassifier(EClassifier value);
-
- /**
* Returns the value of the '<em><b>Rel Domain Node</b></em>' reference.
* <!-- begin-user-doc -->
* <p>
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternExpressionNode.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternExpressionNode.java
index 9cbbc800a..81b4b8454 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternExpressionNode.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternExpressionNode.java
@@ -16,40 +16,10 @@ package org.eclipse.qvtd.umlx;
* A representation of the model object '<em><b>Rel Constraint Node</b></em>'.
* <!-- end-user-doc -->
*
- * <p>
- * The following features are supported:
- * </p>
- * <ul>
- * <li>{@link org.eclipse.qvtd.umlx.RelPatternExpressionNode#getExpression <em>Expression</em>}</li>
- * </ul>
*
* @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternExpressionNode()
* @generated
*/
public interface RelPatternExpressionNode extends RelPatternNode {
- /**
- * Returns the value of the '<em><b>Expression</b></em>' attribute.
- * <!-- begin-user-doc -->
- * <p>
- * If the meaning of the '<em>Expression</em>' attribute isn't clear,
- * there really should be more of a description here...
- * </p>
- * <!-- end-user-doc -->
- * @return the value of the '<em>Expression</em>' attribute.
- * @see #setExpression(String)
- * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternExpressionNode_Expression()
- * @generated
- */
- String getExpression();
-
- /**
- * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternExpressionNode#getExpression <em>Expression</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @param value the new value of the '<em>Expression</em>' attribute.
- * @see #getExpression()
- * @generated
- */
- void setExpression(String value);
} // RelConstraintNode
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternNode.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternNode.java
index 1c7ee914e..d258c8f0b 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternNode.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternNode.java
@@ -23,8 +23,10 @@ import org.eclipse.emf.common.util.EList;
* </p>
* <ul>
* <li>{@link org.eclipse.qvtd.umlx.RelPatternNode#getIncoming <em>Incoming</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.RelPatternNode#getInitExpressionLines <em>Init Expression Lines</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.RelPatternNode#isIsRoot <em>Is Root</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.RelPatternNode#getOwningRelDomainNode <em>Owning Rel Domain Node</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.RelPatternNode#getInvokingRelInvocationEdges <em>Invoking Rel Invocation Edges</em>}</li>
* </ul>
*
* @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternNode()
@@ -50,6 +52,21 @@ public interface RelPatternNode extends RelNode {
EList<RelPatternEdge> getIncoming();
/**
+ * Returns the value of the '<em><b>Init Expression Lines</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Init Expression Lines</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Init Expression Lines</em>' attribute list.
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternNode_InitExpressionLines()
+ * @generated
+ */
+ EList<String> getInitExpressionLines();
+
+ /**
* Returns the value of the '<em><b>Is Root</b></em>' attribute.
* The default value is <code>"false"</code>.
* <!-- begin-user-doc -->
@@ -101,4 +118,21 @@ public interface RelPatternNode extends RelNode {
* @generated
*/
void setOwningRelDomainNode(RelDomainNode value);
+
+ /**
+ * Returns the value of the '<em><b>Invoking Rel Invocation Edges</b></em>' reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.umlx.RelInvocationEdge}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.RelInvocationEdge#getInvokingRelPatternNode <em>Invoking Rel Pattern Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Invoking Rel Invocation Edges</em>' reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Invoking Rel Invocation Edges</em>' reference list.
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternNode_InvokingRelInvocationEdges()
+ * @see org.eclipse.qvtd.umlx.RelInvocationEdge#getInvokingRelPatternNode
+ * @generated
+ */
+ EList<RelInvocationEdge> getInvokingRelInvocationEdges();
} // RelNode
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxDiagram.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxDiagram.java
index 09eef4a87..33486f11c 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxDiagram.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxDiagram.java
@@ -26,6 +26,7 @@ import org.eclipse.emf.common.util.EList;
* <li>{@link org.eclipse.qvtd.umlx.TxDiagram#getOwnedRelDiagrams <em>Owned Rel Diagrams</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.TxDiagram#getOwnedTxImportNodes <em>Owned Tx Import Nodes</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.TxDiagram#getOwnedTxKeyNodes <em>Owned Tx Key Nodes</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.TxDiagram#getOwnedTxQueryNodes <em>Owned Tx Query Nodes</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.TxDiagram#getOwnedTxTypedModelNodes <em>Owned Tx Typed Model Nodes</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.TxDiagram#getPackage <em>Package</em>}</li>
* </ul>
@@ -86,6 +87,23 @@ public interface TxDiagram extends UMLXNamedElement {
EList<TxKeyNode> getOwnedTxKeyNodes();
/**
+ * Returns the value of the '<em><b>Owned Tx Query Nodes</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.umlx.TxQueryNode}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.TxQueryNode#getOwningTxDiagram <em>Owning Tx Diagram</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owned Tx Query Nodes</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Owned Tx Query Nodes</em>' containment reference list.
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getTxDiagram_OwnedTxQueryNodes()
+ * @see org.eclipse.qvtd.umlx.TxQueryNode#getOwningTxDiagram
+ * @generated
+ */
+ EList<TxQueryNode> getOwnedTxQueryNodes();
+
+ /**
* Returns the value of the '<em><b>Owned Tx Typed Model Nodes</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.qvtd.umlx.TxTypedModelNode}.
* It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.TxTypedModelNode#getOwningTxDiagram <em>Owning Tx Diagram</em>}'.
@@ -141,4 +159,11 @@ public interface TxDiagram extends UMLXNamedElement {
*/
boolean validateTxTypedModelNodeNamesAreUnique(DiagnosticChain diagnostics, Map<Object, Object> context);
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ boolean validateTxQueryNodeNamesAreUnique(DiagnosticChain diagnostics, Map<Object, Object> context);
+
} // TxDiagram
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxParameterNode.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxParameterNode.java
new file mode 100644
index 000000000..c2af64cd6
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxParameterNode.java
@@ -0,0 +1,57 @@
+/**
+ * Copyright (c) 2016 Willink Transformations and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ */
+package org.eclipse.qvtd.umlx;
+
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tx Parameter Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.umlx.TxParameterNode#getOwningTxQueryNode <em>Owning Tx Query Node</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getTxParameterNode()
+ * @generated
+ */
+public interface TxParameterNode extends TxNode, UMLXTypedElement {
+ /**
+ * Returns the value of the '<em><b>Owning Tx Query Node</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.TxQueryNode#getOwnedTxParameterNodes <em>Owned Tx Parameter Nodes</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owning Tx Query Node</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Owning Tx Query Node</em>' container reference.
+ * @see #setOwningTxQueryNode(TxQueryNode)
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getTxParameterNode_OwningTxQueryNode()
+ * @see org.eclipse.qvtd.umlx.TxQueryNode#getOwnedTxParameterNodes
+ * @generated
+ */
+ TxQueryNode getOwningTxQueryNode();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.umlx.TxParameterNode#getOwningTxQueryNode <em>Owning Tx Query Node</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Owning Tx Query Node</em>' container reference.
+ * @see #getOwningTxQueryNode()
+ * @generated
+ */
+ void setOwningTxQueryNode(TxQueryNode value);
+
+} // TxParameterNode
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxQueryNode.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxQueryNode.java
new file mode 100644
index 000000000..582d69895
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxQueryNode.java
@@ -0,0 +1,102 @@
+/**
+ * Copyright (c) 2016 Willink Transformations and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ */
+package org.eclipse.qvtd.umlx;
+
+import java.util.Map;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Tx Query Node</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.umlx.TxQueryNode#getInitExpressionLines <em>Init Expression Lines</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.TxQueryNode#getOwnedTxParameterNodes <em>Owned Tx Parameter Nodes</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.TxQueryNode#getOwningTxDiagram <em>Owning Tx Diagram</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getTxQueryNode()
+ * @generated
+ */
+public interface TxQueryNode extends TxNode, UMLXTypedElement {
+ /**
+ * Returns the value of the '<em><b>Init Expression Lines</b></em>' attribute list.
+ * The list contents are of type {@link java.lang.String}.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Init Expression Lines</em>' attribute list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Init Expression Lines</em>' attribute list.
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getTxQueryNode_InitExpressionLines()
+ * @generated
+ */
+ EList<String> getInitExpressionLines();
+
+ /**
+ * Returns the value of the '<em><b>Owned Tx Parameter Nodes</b></em>' containment reference list.
+ * The list contents are of type {@link org.eclipse.qvtd.umlx.TxParameterNode}.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.TxParameterNode#getOwningTxQueryNode <em>Owning Tx Query Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owned Tx Parameter Nodes</em>' containment reference list isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Owned Tx Parameter Nodes</em>' containment reference list.
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getTxQueryNode_OwnedTxParameterNodes()
+ * @see org.eclipse.qvtd.umlx.TxParameterNode#getOwningTxQueryNode
+ * @generated
+ */
+ EList<TxParameterNode> getOwnedTxParameterNodes();
+
+ /**
+ * Returns the value of the '<em><b>Owning Tx Diagram</b></em>' container reference.
+ * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.TxDiagram#getOwnedTxQueryNodes <em>Owned Tx Query Nodes</em>}'.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Owning Tx Diagram</em>' container reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Owning Tx Diagram</em>' container reference.
+ * @see #setOwningTxDiagram(TxDiagram)
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getTxQueryNode_OwningTxDiagram()
+ * @see org.eclipse.qvtd.umlx.TxDiagram#getOwnedTxQueryNodes
+ * @generated
+ */
+ TxDiagram getOwningTxDiagram();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.umlx.TxQueryNode#getOwningTxDiagram <em>Owning Tx Diagram</em>}' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Owning Tx Diagram</em>' container reference.
+ * @see #getOwningTxDiagram()
+ * @generated
+ */
+ void setOwningTxDiagram(TxDiagram value);
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ boolean validateParametersAreUnique(DiagnosticChain diagnostics, Map<Object, Object> context);
+
+} // TxQueryNode
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXFactory.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXFactory.java
index b68399588..8d84e4a9a 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXFactory.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXFactory.java
@@ -130,6 +130,15 @@ public interface UMLXFactory extends EFactory {
@NonNull TxPartNode createTxPartNode();
/**
+ * Returns a new object of class '<em>Tx Query Node</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tx Query Node</em>'.
+ * @generated
+ */
+ @NonNull TxQueryNode createTxQueryNode();
+
+ /**
* Returns a new object of class '<em>Tx Node</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -148,6 +157,15 @@ public interface UMLXFactory extends EFactory {
@NonNull TxPackageNode createTxPackageNode();
/**
+ * Returns a new object of class '<em>Tx Parameter Node</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return a new object of class '<em>Tx Parameter Node</em>'.
+ * @generated
+ */
+ @NonNull TxParameterNode createTxParameterNode();
+
+ /**
* Returns a new object of class '<em>Tx Typed Model Node</em>'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXPackage.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXPackage.java
index d8e48be4b..7990ef9a3 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXPackage.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXPackage.java
@@ -71,7 +71,7 @@ public interface UMLXPackage extends EPackage {
* @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getUMLXElement()
* @generated
*/
- int UMLX_ELEMENT = 17;
+ int UMLX_ELEMENT = 19;
/**
* The feature id for the '<em><b>Comments</b></em>' attribute list.
@@ -109,7 +109,7 @@ public interface UMLXPackage extends EPackage {
* @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getUMLXNamedElement()
* @generated
*/
- int UMLX_NAMED_ELEMENT = 19;
+ int UMLX_NAMED_ELEMENT = 21;
/**
* The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.RelDiagramImpl <em>Rel Diagram</em>}' class.
@@ -219,7 +219,7 @@ public interface UMLXPackage extends EPackage {
* @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxPartNode()
* @generated
*/
- int TX_PART_NODE = 15;
+ int TX_PART_NODE = 16;
/**
* The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.TxPackageNodeImpl <em>Tx Package Node</em>}' class.
@@ -239,7 +239,7 @@ public interface UMLXPackage extends EPackage {
* @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxTypedModelNode()
* @generated
*/
- int TX_TYPED_MODEL_NODE = 16;
+ int TX_TYPED_MODEL_NODE = 18;
/**
* The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.UMLXModelImpl <em>Model</em>}' class.
@@ -249,7 +249,7 @@ public interface UMLXPackage extends EPackage {
* @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getUMLXModel()
* @generated
*/
- int UMLX_MODEL = 18;
+ int UMLX_MODEL = 20;
/**
* The feature id for the '<em><b>Comments</b></em>' attribute list.
@@ -569,13 +569,22 @@ public interface UMLXPackage extends EPackage {
int REL_PATTERN_NODE__INCOMING = REL_NODE_FEATURE_COUNT + 0;
/**
+ * The feature id for the '<em><b>Init Expression Lines</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REL_PATTERN_NODE__INIT_EXPRESSION_LINES = REL_NODE_FEATURE_COUNT + 1;
+
+ /**
* The feature id for the '<em><b>Is Root</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int REL_PATTERN_NODE__IS_ROOT = REL_NODE_FEATURE_COUNT + 1;
+ int REL_PATTERN_NODE__IS_ROOT = REL_NODE_FEATURE_COUNT + 2;
/**
* The feature id for the '<em><b>Owning Rel Domain Node</b></em>' container reference.
@@ -584,7 +593,16 @@ public interface UMLXPackage extends EPackage {
* @generated
* @ordered
*/
- int REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE = REL_NODE_FEATURE_COUNT + 2;
+ int REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE = REL_NODE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Invoking Rel Invocation Edges</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES = REL_NODE_FEATURE_COUNT + 4;
/**
* The number of structural features of the '<em>Rel Pattern Node</em>' class.
@@ -593,7 +611,7 @@ public interface UMLXPackage extends EPackage {
* @generated
* @ordered
*/
- int REL_PATTERN_NODE_FEATURE_COUNT = REL_NODE_FEATURE_COUNT + 3;
+ int REL_PATTERN_NODE_FEATURE_COUNT = REL_NODE_FEATURE_COUNT + 5;
/**
* The feature id for the '<em><b>Comments</b></em>' attribute list.
@@ -614,6 +632,15 @@ public interface UMLXPackage extends EPackage {
int REL_PATTERN_CLASS_NODE__INCOMING = REL_PATTERN_NODE__INCOMING;
/**
+ * The feature id for the '<em><b>Init Expression Lines</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REL_PATTERN_CLASS_NODE__INIT_EXPRESSION_LINES = REL_PATTERN_NODE__INIT_EXPRESSION_LINES;
+
+ /**
* The feature id for the '<em><b>Is Root</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -632,22 +659,22 @@ public interface UMLXPackage extends EPackage {
int REL_PATTERN_CLASS_NODE__OWNING_REL_DOMAIN_NODE = REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE;
/**
- * The feature id for the '<em><b>Name</b></em>' attribute.
+ * The feature id for the '<em><b>Invoking Rel Invocation Edges</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int REL_PATTERN_CLASS_NODE__NAME = REL_PATTERN_NODE_FEATURE_COUNT + 0;
+ int REL_PATTERN_CLASS_NODE__INVOKING_REL_INVOCATION_EDGES = REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES;
/**
- * The feature id for the '<em><b>Is Anon</b></em>' attribute.
+ * The feature id for the '<em><b>Name</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int REL_PATTERN_CLASS_NODE__IS_ANON = REL_PATTERN_NODE_FEATURE_COUNT + 1;
+ int REL_PATTERN_CLASS_NODE__NAME = REL_PATTERN_NODE_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Is Many</b></em>' attribute.
@@ -656,7 +683,7 @@ public interface UMLXPackage extends EPackage {
* @generated
* @ordered
*/
- int REL_PATTERN_CLASS_NODE__IS_MANY = REL_PATTERN_NODE_FEATURE_COUNT + 2;
+ int REL_PATTERN_CLASS_NODE__IS_MANY = REL_PATTERN_NODE_FEATURE_COUNT + 1;
/**
* The feature id for the '<em><b>Is Null Free</b></em>' attribute.
@@ -665,7 +692,7 @@ public interface UMLXPackage extends EPackage {
* @generated
* @ordered
*/
- int REL_PATTERN_CLASS_NODE__IS_NULL_FREE = REL_PATTERN_NODE_FEATURE_COUNT + 3;
+ int REL_PATTERN_CLASS_NODE__IS_NULL_FREE = REL_PATTERN_NODE_FEATURE_COUNT + 2;
/**
* The feature id for the '<em><b>Is Ordered</b></em>' attribute.
@@ -674,7 +701,7 @@ public interface UMLXPackage extends EPackage {
* @generated
* @ordered
*/
- int REL_PATTERN_CLASS_NODE__IS_ORDERED = REL_PATTERN_NODE_FEATURE_COUNT + 4;
+ int REL_PATTERN_CLASS_NODE__IS_ORDERED = REL_PATTERN_NODE_FEATURE_COUNT + 3;
/**
* The feature id for the '<em><b>Is Required</b></em>' attribute.
@@ -683,7 +710,7 @@ public interface UMLXPackage extends EPackage {
* @generated
* @ordered
*/
- int REL_PATTERN_CLASS_NODE__IS_REQUIRED = REL_PATTERN_NODE_FEATURE_COUNT + 5;
+ int REL_PATTERN_CLASS_NODE__IS_REQUIRED = REL_PATTERN_NODE_FEATURE_COUNT + 4;
/**
* The feature id for the '<em><b>Is Unique</b></em>' attribute.
@@ -692,25 +719,34 @@ public interface UMLXPackage extends EPackage {
* @generated
* @ordered
*/
- int REL_PATTERN_CLASS_NODE__IS_UNIQUE = REL_PATTERN_NODE_FEATURE_COUNT + 6;
+ int REL_PATTERN_CLASS_NODE__IS_UNIQUE = REL_PATTERN_NODE_FEATURE_COUNT + 5;
/**
- * The feature id for the '<em><b>Outgoing</b></em>' reference list.
+ * The feature id for the '<em><b>Referred EClassifier</b></em>' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int REL_PATTERN_CLASS_NODE__OUTGOING = REL_PATTERN_NODE_FEATURE_COUNT + 7;
+ int REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER = REL_PATTERN_NODE_FEATURE_COUNT + 6;
/**
- * The feature id for the '<em><b>Referred EClassifier</b></em>' reference.
+ * The feature id for the '<em><b>Is Anon</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER = REL_PATTERN_NODE_FEATURE_COUNT + 8;
+ int REL_PATTERN_CLASS_NODE__IS_ANON = REL_PATTERN_NODE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Outgoing</b></em>' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REL_PATTERN_CLASS_NODE__OUTGOING = REL_PATTERN_NODE_FEATURE_COUNT + 8;
/**
* The feature id for the '<em><b>Rel Domain Node</b></em>' reference.
@@ -822,6 +858,15 @@ public interface UMLXPackage extends EPackage {
int REL_PATTERN_EXPRESSION_NODE__INCOMING = REL_PATTERN_NODE__INCOMING;
/**
+ * The feature id for the '<em><b>Init Expression Lines</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int REL_PATTERN_EXPRESSION_NODE__INIT_EXPRESSION_LINES = REL_PATTERN_NODE__INIT_EXPRESSION_LINES;
+
+ /**
* The feature id for the '<em><b>Is Root</b></em>' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -840,13 +885,13 @@ public interface UMLXPackage extends EPackage {
int REL_PATTERN_EXPRESSION_NODE__OWNING_REL_DOMAIN_NODE = REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE;
/**
- * The feature id for the '<em><b>Expression</b></em>' attribute.
+ * The feature id for the '<em><b>Invoking Rel Invocation Edges</b></em>' reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int REL_PATTERN_EXPRESSION_NODE__EXPRESSION = REL_PATTERN_NODE_FEATURE_COUNT + 0;
+ int REL_PATTERN_EXPRESSION_NODE__INVOKING_REL_INVOCATION_EDGES = REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES;
/**
* The number of structural features of the '<em>Rel Pattern Expression Node</em>' class.
@@ -855,7 +900,7 @@ public interface UMLXPackage extends EPackage {
* @generated
* @ordered
*/
- int REL_PATTERN_EXPRESSION_NODE_FEATURE_COUNT = REL_PATTERN_NODE_FEATURE_COUNT + 1;
+ int REL_PATTERN_EXPRESSION_NODE_FEATURE_COUNT = REL_PATTERN_NODE_FEATURE_COUNT + 0;
/**
* The feature id for the '<em><b>Comments</b></em>' attribute list.
@@ -903,13 +948,22 @@ public interface UMLXPackage extends EPackage {
int TX_DIAGRAM__OWNED_TX_KEY_NODES = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 2;
/**
+ * The feature id for the '<em><b>Owned Tx Query Nodes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_DIAGRAM__OWNED_TX_QUERY_NODES = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
* The feature id for the '<em><b>Owned Tx Typed Model Nodes</b></em>' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
* @ordered
*/
- int TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 3;
+ int TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 4;
/**
* The feature id for the '<em><b>Package</b></em>' attribute.
@@ -918,7 +972,7 @@ public interface UMLXPackage extends EPackage {
* @generated
* @ordered
*/
- int TX_DIAGRAM__PACKAGE = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 4;
+ int TX_DIAGRAM__PACKAGE = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 5;
/**
* The number of structural features of the '<em>Tx Diagram</em>' class.
@@ -927,7 +981,7 @@ public interface UMLXPackage extends EPackage {
* @generated
* @ordered
*/
- int TX_DIAGRAM_FEATURE_COUNT = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 5;
+ int TX_DIAGRAM_FEATURE_COUNT = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 6;
/**
* The feature id for the '<em><b>Comments</b></em>' attribute list.
@@ -1074,6 +1128,106 @@ public interface UMLXPackage extends EPackage {
int TX_PACKAGE_NODE_FEATURE_COUNT = TX_NODE_FEATURE_COUNT + 2;
/**
+ * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl <em>Tx Parameter Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl
+ * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxParameterNode()
+ * @generated
+ */
+ int TX_PARAMETER_NODE = 15;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_PARAMETER_NODE__COMMENTS = TX_NODE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_PARAMETER_NODE__NAME = TX_NODE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Is Many</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_PARAMETER_NODE__IS_MANY = TX_NODE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Is Null Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_PARAMETER_NODE__IS_NULL_FREE = TX_NODE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_PARAMETER_NODE__IS_ORDERED = TX_NODE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Is Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_PARAMETER_NODE__IS_REQUIRED = TX_NODE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Is Unique</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_PARAMETER_NODE__IS_UNIQUE = TX_NODE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Referred EClassifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_PARAMETER_NODE__REFERRED_ECLASSIFIER = TX_NODE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Owning Tx Query Node</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE = TX_NODE_FEATURE_COUNT + 7;
+
+ /**
+ * The number of structural features of the '<em>Tx Parameter Node</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_PARAMETER_NODE_FEATURE_COUNT = TX_NODE_FEATURE_COUNT + 8;
+
+ /**
* The feature id for the '<em><b>Comments</b></em>' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1119,6 +1273,124 @@ public interface UMLXPackage extends EPackage {
int TX_PART_NODE_FEATURE_COUNT = TX_NODE_FEATURE_COUNT + 3;
/**
+ * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl <em>Tx Query Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl
+ * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxQueryNode()
+ * @generated
+ */
+ int TX_QUERY_NODE = 17;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__COMMENTS = TX_NODE__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__NAME = TX_NODE_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Is Many</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__IS_MANY = TX_NODE_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Is Null Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__IS_NULL_FREE = TX_NODE_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__IS_ORDERED = TX_NODE_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Is Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__IS_REQUIRED = TX_NODE_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Is Unique</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__IS_UNIQUE = TX_NODE_FEATURE_COUNT + 5;
+
+ /**
+ * The feature id for the '<em><b>Referred EClassifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__REFERRED_ECLASSIFIER = TX_NODE_FEATURE_COUNT + 6;
+
+ /**
+ * The feature id for the '<em><b>Init Expression Lines</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__INIT_EXPRESSION_LINES = TX_NODE_FEATURE_COUNT + 7;
+
+ /**
+ * The feature id for the '<em><b>Owned Tx Parameter Nodes</b></em>' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES = TX_NODE_FEATURE_COUNT + 8;
+
+ /**
+ * The feature id for the '<em><b>Owning Tx Diagram</b></em>' container reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE__OWNING_TX_DIAGRAM = TX_NODE_FEATURE_COUNT + 9;
+
+ /**
+ * The number of structural features of the '<em>Tx Query Node</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int TX_QUERY_NODE_FEATURE_COUNT = TX_NODE_FEATURE_COUNT + 10;
+
+ /**
* The feature id for the '<em><b>Comments</b></em>' attribute list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1209,6 +1481,97 @@ public interface UMLXPackage extends EPackage {
int UMLX_MODEL_FEATURE_COUNT = UMLX_ELEMENT_FEATURE_COUNT + 1;
/**
+ * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.UMLXTypedElementImpl <em>Typed Element</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.umlx.impl.UMLXTypedElementImpl
+ * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getUMLXTypedElement()
+ * @generated
+ */
+ int UMLX_TYPED_ELEMENT = 22;
+
+ /**
+ * The feature id for the '<em><b>Comments</b></em>' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UMLX_TYPED_ELEMENT__COMMENTS = UMLX_NAMED_ELEMENT__COMMENTS;
+
+ /**
+ * The feature id for the '<em><b>Name</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UMLX_TYPED_ELEMENT__NAME = UMLX_NAMED_ELEMENT__NAME;
+
+ /**
+ * The feature id for the '<em><b>Is Many</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UMLX_TYPED_ELEMENT__IS_MANY = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 0;
+
+ /**
+ * The feature id for the '<em><b>Is Null Free</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UMLX_TYPED_ELEMENT__IS_NULL_FREE = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 1;
+
+ /**
+ * The feature id for the '<em><b>Is Ordered</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UMLX_TYPED_ELEMENT__IS_ORDERED = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 2;
+
+ /**
+ * The feature id for the '<em><b>Is Required</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UMLX_TYPED_ELEMENT__IS_REQUIRED = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 3;
+
+ /**
+ * The feature id for the '<em><b>Is Unique</b></em>' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UMLX_TYPED_ELEMENT__IS_UNIQUE = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 4;
+
+ /**
+ * The feature id for the '<em><b>Referred EClassifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 5;
+
+ /**
+ * The number of structural features of the '<em>Typed Element</em>' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ * @ordered
+ */
+ int UMLX_TYPED_ELEMENT_FEATURE_COUNT = UMLX_NAMED_ELEMENT_FEATURE_COUNT + 6;
+
+ /**
* Returns the meta object for class '{@link org.eclipse.qvtd.umlx.RelDiagram <em>Rel Diagram</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1509,17 +1872,6 @@ public interface UMLXPackage extends EPackage {
EClass getRelPatternExpressionNode();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.RelPatternExpressionNode#getExpression <em>Expression</em>}'.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Expression</em>'.
- * @see org.eclipse.qvtd.umlx.RelPatternExpressionNode#getExpression()
- * @see #getRelPatternExpressionNode()
- * @generated
- */
- EAttribute getRelPatternExpressionNode_Expression();
-
- /**
* Returns the meta object for class '{@link org.eclipse.qvtd.umlx.RelPatternNode <em>Rel Pattern Node</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1541,6 +1893,17 @@ public interface UMLXPackage extends EPackage {
EReference getRelPatternNode_Incoming();
/**
+ * Returns the meta object for the attribute list '{@link org.eclipse.qvtd.umlx.RelPatternNode#getInitExpressionLines <em>Init Expression Lines</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Init Expression Lines</em>'.
+ * @see org.eclipse.qvtd.umlx.RelPatternNode#getInitExpressionLines()
+ * @see #getRelPatternNode()
+ * @generated
+ */
+ EAttribute getRelPatternNode_InitExpressionLines();
+
+ /**
* Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.RelPatternNode#isIsRoot <em>Is Root</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1563,6 +1926,17 @@ public interface UMLXPackage extends EPackage {
EReference getRelPatternNode_OwningRelDomainNode();
/**
+ * Returns the meta object for the reference list '{@link org.eclipse.qvtd.umlx.RelPatternNode#getInvokingRelInvocationEdges <em>Invoking Rel Invocation Edges</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the reference list '<em>Invoking Rel Invocation Edges</em>'.
+ * @see org.eclipse.qvtd.umlx.RelPatternNode#getInvokingRelInvocationEdges()
+ * @see #getRelPatternNode()
+ * @generated
+ */
+ EReference getRelPatternNode_InvokingRelInvocationEdges();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.qvtd.umlx.TxDiagram <em>Tx Diagram</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1606,6 +1980,17 @@ public interface UMLXPackage extends EPackage {
EReference getTxDiagram_OwnedTxKeyNodes();
/**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.umlx.TxDiagram#getOwnedTxQueryNodes <em>Owned Tx Query Nodes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Owned Tx Query Nodes</em>'.
+ * @see org.eclipse.qvtd.umlx.TxDiagram#getOwnedTxQueryNodes()
+ * @see #getTxDiagram()
+ * @generated
+ */
+ EReference getTxDiagram_OwnedTxQueryNodes();
+
+ /**
* Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.umlx.TxDiagram#getOwnedTxTypedModelNodes <em>Owned Tx Typed Model Nodes</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1746,6 +2131,49 @@ public interface UMLXPackage extends EPackage {
EReference getTxPartNode_ReferredEStructuralFeature();
/**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.umlx.TxQueryNode <em>Tx Query Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tx Query Node</em>'.
+ * @see org.eclipse.qvtd.umlx.TxQueryNode
+ * @generated
+ */
+ EClass getTxQueryNode();
+
+ /**
+ * Returns the meta object for the attribute list '{@link org.eclipse.qvtd.umlx.TxQueryNode#getInitExpressionLines <em>Init Expression Lines</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute list '<em>Init Expression Lines</em>'.
+ * @see org.eclipse.qvtd.umlx.TxQueryNode#getInitExpressionLines()
+ * @see #getTxQueryNode()
+ * @generated
+ */
+ EAttribute getTxQueryNode_InitExpressionLines();
+
+ /**
+ * Returns the meta object for the containment reference list '{@link org.eclipse.qvtd.umlx.TxQueryNode#getOwnedTxParameterNodes <em>Owned Tx Parameter Nodes</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the containment reference list '<em>Owned Tx Parameter Nodes</em>'.
+ * @see org.eclipse.qvtd.umlx.TxQueryNode#getOwnedTxParameterNodes()
+ * @see #getTxQueryNode()
+ * @generated
+ */
+ EReference getTxQueryNode_OwnedTxParameterNodes();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.qvtd.umlx.TxQueryNode#getOwningTxDiagram <em>Owning Tx Diagram</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Owning Tx Diagram</em>'.
+ * @see org.eclipse.qvtd.umlx.TxQueryNode#getOwningTxDiagram()
+ * @see #getTxQueryNode()
+ * @generated
+ */
+ EReference getTxQueryNode_OwningTxDiagram();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.qvtd.umlx.TxNode <em>Tx Node</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1788,6 +2216,27 @@ public interface UMLXPackage extends EPackage {
EReference getTxPackageNode_OwningTxTypedModelNode();
/**
+ * Returns the meta object for class '{@link org.eclipse.qvtd.umlx.TxParameterNode <em>Tx Parameter Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for class '<em>Tx Parameter Node</em>'.
+ * @see org.eclipse.qvtd.umlx.TxParameterNode
+ * @generated
+ */
+ EClass getTxParameterNode();
+
+ /**
+ * Returns the meta object for the container reference '{@link org.eclipse.qvtd.umlx.TxParameterNode#getOwningTxQueryNode <em>Owning Tx Query Node</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the container reference '<em>Owning Tx Query Node</em>'.
+ * @see org.eclipse.qvtd.umlx.TxParameterNode#getOwningTxQueryNode()
+ * @see #getTxParameterNode()
+ * @generated
+ */
+ EReference getTxParameterNode_OwningTxQueryNode();
+
+ /**
* Returns the meta object for class '{@link org.eclipse.qvtd.umlx.TxTypedModelNode <em>Tx Typed Model Node</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -1905,102 +2354,112 @@ public interface UMLXPackage extends EPackage {
EAttribute getUMLXNamedElement_Name();
/**
- * Returns the meta object for class '{@link org.eclipse.qvtd.umlx.RelPatternClassNode <em>Rel Pattern Class Node</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.qvtd.umlx.UMLXTypedElement <em>Typed Element</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for class '<em>Rel Pattern Class Node</em>'.
- * @see org.eclipse.qvtd.umlx.RelPatternClassNode
+ * @return the meta object for class '<em>Typed Element</em>'.
+ * @see org.eclipse.qvtd.umlx.UMLXTypedElement
* @generated
*/
- EClass getRelPatternClassNode();
+ EClass getUMLXTypedElement();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsAnon <em>Is Anon</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsMany <em>Is Many</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Is Anon</em>'.
- * @see org.eclipse.qvtd.umlx.RelPatternClassNode#isIsAnon()
- * @see #getRelPatternClassNode()
+ * @return the meta object for the attribute '<em>Is Many</em>'.
+ * @see org.eclipse.qvtd.umlx.UMLXTypedElement#isIsMany()
+ * @see #getUMLXTypedElement()
* @generated
*/
- EAttribute getRelPatternClassNode_IsAnon();
+ EAttribute getUMLXTypedElement_IsMany();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsMany <em>Is Many</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsNullFree <em>Is Null Free</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Is Many</em>'.
- * @see org.eclipse.qvtd.umlx.RelPatternClassNode#isIsMany()
- * @see #getRelPatternClassNode()
+ * @return the meta object for the attribute '<em>Is Null Free</em>'.
+ * @see org.eclipse.qvtd.umlx.UMLXTypedElement#isIsNullFree()
+ * @see #getUMLXTypedElement()
* @generated
*/
- EAttribute getRelPatternClassNode_IsMany();
+ EAttribute getUMLXTypedElement_IsNullFree();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsNullFree <em>Is Null Free</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsOrdered <em>Is Ordered</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Is Null Free</em>'.
- * @see org.eclipse.qvtd.umlx.RelPatternClassNode#isIsNullFree()
- * @see #getRelPatternClassNode()
+ * @return the meta object for the attribute '<em>Is Ordered</em>'.
+ * @see org.eclipse.qvtd.umlx.UMLXTypedElement#isIsOrdered()
+ * @see #getUMLXTypedElement()
* @generated
*/
- EAttribute getRelPatternClassNode_IsNullFree();
+ EAttribute getUMLXTypedElement_IsOrdered();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsOrdered <em>Is Ordered</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsRequired <em>Is Required</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Is Ordered</em>'.
- * @see org.eclipse.qvtd.umlx.RelPatternClassNode#isIsOrdered()
- * @see #getRelPatternClassNode()
+ * @return the meta object for the attribute '<em>Is Required</em>'.
+ * @see org.eclipse.qvtd.umlx.UMLXTypedElement#isIsRequired()
+ * @see #getUMLXTypedElement()
* @generated
*/
- EAttribute getRelPatternClassNode_IsOrdered();
+ EAttribute getUMLXTypedElement_IsRequired();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsRequired <em>Is Required</em>}'.
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsUnique <em>Is Unique</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Is Required</em>'.
- * @see org.eclipse.qvtd.umlx.RelPatternClassNode#isIsRequired()
- * @see #getRelPatternClassNode()
+ * @return the meta object for the attribute '<em>Is Unique</em>'.
+ * @see org.eclipse.qvtd.umlx.UMLXTypedElement#isIsUnique()
+ * @see #getUMLXTypedElement()
* @generated
*/
- EAttribute getRelPatternClassNode_IsRequired();
+ EAttribute getUMLXTypedElement_IsUnique();
/**
- * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsUnique <em>Is Unique</em>}'.
+ * Returns the meta object for the reference '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#getReferredEClassifier <em>Referred EClassifier</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the attribute '<em>Is Unique</em>'.
- * @see org.eclipse.qvtd.umlx.RelPatternClassNode#isIsUnique()
- * @see #getRelPatternClassNode()
+ * @return the meta object for the reference '<em>Referred EClassifier</em>'.
+ * @see org.eclipse.qvtd.umlx.UMLXTypedElement#getReferredEClassifier()
+ * @see #getUMLXTypedElement()
* @generated
*/
- EAttribute getRelPatternClassNode_IsUnique();
+ EReference getUMLXTypedElement_ReferredEClassifier();
/**
- * Returns the meta object for the reference list '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getOutgoing <em>Outgoing</em>}'.
+ * Returns the meta object for class '{@link org.eclipse.qvtd.umlx.RelPatternClassNode <em>Rel Pattern Class Node</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the reference list '<em>Outgoing</em>'.
- * @see org.eclipse.qvtd.umlx.RelPatternClassNode#getOutgoing()
+ * @return the meta object for class '<em>Rel Pattern Class Node</em>'.
+ * @see org.eclipse.qvtd.umlx.RelPatternClassNode
+ * @generated
+ */
+ EClass getRelPatternClassNode();
+
+ /**
+ * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsAnon <em>Is Anon</em>}'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @return the meta object for the attribute '<em>Is Anon</em>'.
+ * @see org.eclipse.qvtd.umlx.RelPatternClassNode#isIsAnon()
* @see #getRelPatternClassNode()
* @generated
*/
- EReference getRelPatternClassNode_Outgoing();
+ EAttribute getRelPatternClassNode_IsAnon();
/**
- * Returns the meta object for the reference '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getReferredEClassifier <em>Referred EClassifier</em>}'.
+ * Returns the meta object for the reference list '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getOutgoing <em>Outgoing</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @return the meta object for the reference '<em>Referred EClassifier</em>'.
- * @see org.eclipse.qvtd.umlx.RelPatternClassNode#getReferredEClassifier()
+ * @return the meta object for the reference list '<em>Outgoing</em>'.
+ * @see org.eclipse.qvtd.umlx.RelPatternClassNode#getOutgoing()
* @see #getRelPatternClassNode()
* @generated
*/
- EReference getRelPatternClassNode_ReferredEClassifier();
+ EReference getRelPatternClassNode_Outgoing();
/**
* Returns the meta object for the reference '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getRelDomainNode <em>Rel Domain Node</em>}'.
@@ -2277,14 +2736,6 @@ public interface UMLXPackage extends EPackage {
EClass REL_PATTERN_EXPRESSION_NODE = eINSTANCE.getRelPatternExpressionNode();
/**
- * The meta object literal for the '<em><b>Expression</b></em>' attribute feature.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- EAttribute REL_PATTERN_EXPRESSION_NODE__EXPRESSION = eINSTANCE.getRelPatternExpressionNode_Expression();
-
- /**
* The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl <em>Rel Pattern Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2303,6 +2754,14 @@ public interface UMLXPackage extends EPackage {
EReference REL_PATTERN_NODE__INCOMING = eINSTANCE.getRelPatternNode_Incoming();
/**
+ * The meta object literal for the '<em><b>Init Expression Lines</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute REL_PATTERN_NODE__INIT_EXPRESSION_LINES = eINSTANCE.getRelPatternNode_InitExpressionLines();
+
+ /**
* The meta object literal for the '<em><b>Is Root</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2319,6 +2778,14 @@ public interface UMLXPackage extends EPackage {
EReference REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE = eINSTANCE.getRelPatternNode_OwningRelDomainNode();
/**
+ * The meta object literal for the '<em><b>Invoking Rel Invocation Edges</b></em>' reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES = eINSTANCE.getRelPatternNode_InvokingRelInvocationEdges();
+
+ /**
* The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.TxDiagramImpl <em>Tx Diagram</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2353,6 +2820,14 @@ public interface UMLXPackage extends EPackage {
EReference TX_DIAGRAM__OWNED_TX_KEY_NODES = eINSTANCE.getTxDiagram_OwnedTxKeyNodes();
/**
+ * The meta object literal for the '<em><b>Owned Tx Query Nodes</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TX_DIAGRAM__OWNED_TX_QUERY_NODES = eINSTANCE.getTxDiagram_OwnedTxQueryNodes();
+
+ /**
* The meta object literal for the '<em><b>Owned Tx Typed Model Nodes</b></em>' containment reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2463,6 +2938,40 @@ public interface UMLXPackage extends EPackage {
EReference TX_PART_NODE__REFERRED_ESTRUCTURAL_FEATURE = eINSTANCE.getTxPartNode_ReferredEStructuralFeature();
/**
+ * The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl <em>Tx Query Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl
+ * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxQueryNode()
+ * @generated
+ */
+ EClass TX_QUERY_NODE = eINSTANCE.getTxQueryNode();
+
+ /**
+ * The meta object literal for the '<em><b>Init Expression Lines</b></em>' attribute list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute TX_QUERY_NODE__INIT_EXPRESSION_LINES = eINSTANCE.getTxQueryNode_InitExpressionLines();
+
+ /**
+ * The meta object literal for the '<em><b>Owned Tx Parameter Nodes</b></em>' containment reference list feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES = eINSTANCE.getTxQueryNode_OwnedTxParameterNodes();
+
+ /**
+ * The meta object literal for the '<em><b>Owning Tx Diagram</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TX_QUERY_NODE__OWNING_TX_DIAGRAM = eINSTANCE.getTxQueryNode_OwningTxDiagram();
+
+ /**
* The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.TxNodeImpl <em>Tx Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2499,6 +3008,24 @@ public interface UMLXPackage extends EPackage {
EReference TX_PACKAGE_NODE__OWNING_TX_TYPED_MODEL_NODE = eINSTANCE.getTxPackageNode_OwningTxTypedModelNode();
/**
+ * The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl <em>Tx Parameter Node</em>}' class.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl
+ * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxParameterNode()
+ * @generated
+ */
+ EClass TX_PARAMETER_NODE = eINSTANCE.getTxParameterNode();
+
+ /**
+ * The meta object literal for the '<em><b>Owning Tx Query Node</b></em>' container reference feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EReference TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE = eINSTANCE.getTxParameterNode_OwningTxQueryNode();
+
+ /**
* The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.TxTypedModelNodeImpl <em>Tx Typed Model Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -2595,78 +3122,88 @@ public interface UMLXPackage extends EPackage {
EAttribute UMLX_NAMED_ELEMENT__NAME = eINSTANCE.getUMLXNamedElement_Name();
/**
- * The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl <em>Rel Pattern Class Node</em>}' class.
+ * The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.UMLXTypedElementImpl <em>Typed Element</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl
- * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getRelPatternClassNode()
+ * @see org.eclipse.qvtd.umlx.impl.UMLXTypedElementImpl
+ * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getUMLXTypedElement()
* @generated
*/
- EClass REL_PATTERN_CLASS_NODE = eINSTANCE.getRelPatternClassNode();
+ EClass UMLX_TYPED_ELEMENT = eINSTANCE.getUMLXTypedElement();
/**
- * The meta object literal for the '<em><b>Is Anon</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Is Many</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute REL_PATTERN_CLASS_NODE__IS_ANON = eINSTANCE.getRelPatternClassNode_IsAnon();
+ EAttribute UMLX_TYPED_ELEMENT__IS_MANY = eINSTANCE.getUMLXTypedElement_IsMany();
/**
- * The meta object literal for the '<em><b>Is Many</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Is Null Free</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute REL_PATTERN_CLASS_NODE__IS_MANY = eINSTANCE.getRelPatternClassNode_IsMany();
+ EAttribute UMLX_TYPED_ELEMENT__IS_NULL_FREE = eINSTANCE.getUMLXTypedElement_IsNullFree();
/**
- * The meta object literal for the '<em><b>Is Null Free</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Is Ordered</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute REL_PATTERN_CLASS_NODE__IS_NULL_FREE = eINSTANCE.getRelPatternClassNode_IsNullFree();
+ EAttribute UMLX_TYPED_ELEMENT__IS_ORDERED = eINSTANCE.getUMLXTypedElement_IsOrdered();
/**
- * The meta object literal for the '<em><b>Is Ordered</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Is Required</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute REL_PATTERN_CLASS_NODE__IS_ORDERED = eINSTANCE.getRelPatternClassNode_IsOrdered();
+ EAttribute UMLX_TYPED_ELEMENT__IS_REQUIRED = eINSTANCE.getUMLXTypedElement_IsRequired();
/**
- * The meta object literal for the '<em><b>Is Required</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Is Unique</b></em>' attribute feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute REL_PATTERN_CLASS_NODE__IS_REQUIRED = eINSTANCE.getRelPatternClassNode_IsRequired();
+ EAttribute UMLX_TYPED_ELEMENT__IS_UNIQUE = eINSTANCE.getUMLXTypedElement_IsUnique();
/**
- * The meta object literal for the '<em><b>Is Unique</b></em>' attribute feature.
+ * The meta object literal for the '<em><b>Referred EClassifier</b></em>' reference feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EAttribute REL_PATTERN_CLASS_NODE__IS_UNIQUE = eINSTANCE.getRelPatternClassNode_IsUnique();
+ EReference UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER = eINSTANCE.getUMLXTypedElement_ReferredEClassifier();
/**
- * The meta object literal for the '<em><b>Outgoing</b></em>' reference list feature.
+ * The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl <em>Rel Pattern Class Node</em>}' class.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
+ * @see org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl
+ * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getRelPatternClassNode()
* @generated
*/
- EReference REL_PATTERN_CLASS_NODE__OUTGOING = eINSTANCE.getRelPatternClassNode_Outgoing();
+ EClass REL_PATTERN_CLASS_NODE = eINSTANCE.getRelPatternClassNode();
/**
- * The meta object literal for the '<em><b>Referred EClassifier</b></em>' reference feature.
+ * The meta object literal for the '<em><b>Is Anon</b></em>' attribute feature.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ EAttribute REL_PATTERN_CLASS_NODE__IS_ANON = eINSTANCE.getRelPatternClassNode_IsAnon();
+
+ /**
+ * The meta object literal for the '<em><b>Outgoing</b></em>' reference list feature.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
- EReference REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER = eINSTANCE.getRelPatternClassNode_ReferredEClassifier();
+ EReference REL_PATTERN_CLASS_NODE__OUTGOING = eINSTANCE.getRelPatternClassNode_Outgoing();
/**
* The meta object literal for the '<em><b>Rel Domain Node</b></em>' reference feature.
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXTables.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXTables.java
index a5c84ddcf..e290c1adb 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXTables.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXTables.java
@@ -80,7 +80,9 @@ public class UMLXTables
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_TxImportNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("TxImportNode", 0);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_TxKeyNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("TxKeyNode", 0);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_TxPackageNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("TxPackageNode", 0);
+ public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_TxParameterNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("TxParameterNode", 0);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_TxPartNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("TxPartNode", 0);
+ public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_TxQueryNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("TxQueryNode", 0);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_TxTypedModelNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("TxTypedModelNode", 0);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_UMLXModel = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("UMLXModel", 0);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull DataTypeId DATAid_EInt = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_emf_s_2002_s_Ecore.getDataTypeId("EInt", 0);
@@ -108,9 +110,11 @@ public class UMLXTables
public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelPatternEdge_c_c_SourceIsClassNode = "RelPatternEdge::SourceIsClassNode";
public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelPatternEdge_c_c_SourceIsEClass = "RelPatternEdge::SourceIsEClass";
public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_TxDiagram_c_c_RelDiagramNamesAreUnique = "TxDiagram::RelDiagramNamesAreUnique";
+ public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_TxDiagram_c_c_TxQueryNodeNamesAreUnique = "TxDiagram::TxQueryNodeNamesAreUnique";
public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_TxDiagram_c_c_TxTypedModelNodeNamesAreUnique = "TxDiagram::TxTypedModelNodeNamesAreUnique";
public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_TxKeyNode_c_c_PartsAreUnique = "TxKeyNode::PartsAreUnique";
public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_TxPartNode_c_c_PartIsPropertyOfKey = "TxPartNode::PartIsPropertyOfKey";
+ public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_TxQueryNode_c_c_ParametersAreUnique = "TxQueryNode::ParametersAreUnique";
public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_TxTypedModelNode_c_c_TxPackageNodePackagesAreUnique = "TxTypedModelNode::TxPackageNodePackagesAreUnique";
public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR__32_39 = " \'";
public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR__32_are_32_not_32_unique_32_for_32 = " are not unique for ";
@@ -132,7 +136,9 @@ public class UMLXTables
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_TxImportNode = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_TxImportNode);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_TxKeyNode = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_TxKeyNode);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_TxPackageNode = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_TxPackageNode);
+ public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_TxParameterNode = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_TxParameterNode);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_TxPartNode = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_TxPartNode);
+ public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_TxQueryNode = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_TxQueryNode);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_TxTypedModelNode = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_TxTypedModelNode);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SEQ_CLSSid_EClassifier = org.eclipse.ocl.pivot.ids.TypeId.SEQUENCE.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_EClassifier);
public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SEQ_CLSSid_EPackage = org.eclipse.ocl.pivot.ids.TypeId.SEQUENCE.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_EPackage);
@@ -186,11 +192,14 @@ public class UMLXTables
public static final @NonNull EcoreExecutorType _TxKeyNode = new EcoreExecutorType(UMLXPackage.Literals.TX_KEY_NODE, PACKAGE, 0);
public static final @NonNull EcoreExecutorType _TxNode = new EcoreExecutorType(UMLXPackage.Literals.TX_NODE, PACKAGE, 0);
public static final @NonNull EcoreExecutorType _TxPackageNode = new EcoreExecutorType(UMLXPackage.Literals.TX_PACKAGE_NODE, PACKAGE, 0);
+ public static final @NonNull EcoreExecutorType _TxParameterNode = new EcoreExecutorType(UMLXPackage.Literals.TX_PARAMETER_NODE, PACKAGE, 0);
public static final @NonNull EcoreExecutorType _TxPartNode = new EcoreExecutorType(UMLXPackage.Literals.TX_PART_NODE, PACKAGE, 0);
+ public static final @NonNull EcoreExecutorType _TxQueryNode = new EcoreExecutorType(UMLXPackage.Literals.TX_QUERY_NODE, PACKAGE, 0);
public static final @NonNull EcoreExecutorType _TxTypedModelNode = new EcoreExecutorType(UMLXPackage.Literals.TX_TYPED_MODEL_NODE, PACKAGE, 0);
public static final @NonNull EcoreExecutorType _UMLXElement = new EcoreExecutorType(UMLXPackage.Literals.UMLX_ELEMENT, PACKAGE, 0 | ExecutorType.ABSTRACT);
public static final @NonNull EcoreExecutorType _UMLXModel = new EcoreExecutorType(UMLXPackage.Literals.UMLX_MODEL, PACKAGE, 0);
public static final @NonNull EcoreExecutorType _UMLXNamedElement = new EcoreExecutorType(UMLXPackage.Literals.UMLX_NAMED_ELEMENT, PACKAGE, 0 | ExecutorType.ABSTRACT);
+ public static final @NonNull EcoreExecutorType _UMLXTypedElement = new EcoreExecutorType(UMLXPackage.Literals.UMLX_TYPED_ELEMENT, PACKAGE, 0 | ExecutorType.ABSTRACT);
private static final @NonNull EcoreExecutorType @NonNull [] types = {
_RelDiagram,
@@ -208,11 +217,14 @@ public class UMLXTables
_TxKeyNode,
_TxNode,
_TxPackageNode,
+ _TxParameterNode,
_TxPartNode,
+ _TxQueryNode,
_TxTypedModelNode,
_UMLXElement,
_UMLXModel,
- _UMLXNamedElement
+ _UMLXNamedElement,
+ _UMLXTypedElement
};
/*
@@ -279,6 +291,7 @@ public class UMLXTables
private static final @NonNull ExecutorFragment _RelPatternClassNode__RelPatternNode = new ExecutorFragment(Types._RelPatternClassNode, UMLXTables.Types._RelPatternNode);
private static final @NonNull ExecutorFragment _RelPatternClassNode__UMLXElement = new ExecutorFragment(Types._RelPatternClassNode, UMLXTables.Types._UMLXElement);
private static final @NonNull ExecutorFragment _RelPatternClassNode__UMLXNamedElement = new ExecutorFragment(Types._RelPatternClassNode, UMLXTables.Types._UMLXNamedElement);
+ private static final @NonNull ExecutorFragment _RelPatternClassNode__UMLXTypedElement = new ExecutorFragment(Types._RelPatternClassNode, UMLXTables.Types._UMLXTypedElement);
private static final @NonNull ExecutorFragment _RelPatternEdge__OclAny = new ExecutorFragment(Types._RelPatternEdge, OCLstdlibTables.Types._OclAny);
private static final @NonNull ExecutorFragment _RelPatternEdge__OclElement = new ExecutorFragment(Types._RelPatternEdge, OCLstdlibTables.Types._OclElement);
@@ -329,12 +342,28 @@ public class UMLXTables
private static final @NonNull ExecutorFragment _TxPackageNode__TxPackageNode = new ExecutorFragment(Types._TxPackageNode, UMLXTables.Types._TxPackageNode);
private static final @NonNull ExecutorFragment _TxPackageNode__UMLXElement = new ExecutorFragment(Types._TxPackageNode, UMLXTables.Types._UMLXElement);
+ private static final @NonNull ExecutorFragment _TxParameterNode__OclAny = new ExecutorFragment(Types._TxParameterNode, OCLstdlibTables.Types._OclAny);
+ private static final @NonNull ExecutorFragment _TxParameterNode__OclElement = new ExecutorFragment(Types._TxParameterNode, OCLstdlibTables.Types._OclElement);
+ private static final @NonNull ExecutorFragment _TxParameterNode__TxNode = new ExecutorFragment(Types._TxParameterNode, UMLXTables.Types._TxNode);
+ private static final @NonNull ExecutorFragment _TxParameterNode__TxParameterNode = new ExecutorFragment(Types._TxParameterNode, UMLXTables.Types._TxParameterNode);
+ private static final @NonNull ExecutorFragment _TxParameterNode__UMLXElement = new ExecutorFragment(Types._TxParameterNode, UMLXTables.Types._UMLXElement);
+ private static final @NonNull ExecutorFragment _TxParameterNode__UMLXNamedElement = new ExecutorFragment(Types._TxParameterNode, UMLXTables.Types._UMLXNamedElement);
+ private static final @NonNull ExecutorFragment _TxParameterNode__UMLXTypedElement = new ExecutorFragment(Types._TxParameterNode, UMLXTables.Types._UMLXTypedElement);
+
private static final @NonNull ExecutorFragment _TxPartNode__OclAny = new ExecutorFragment(Types._TxPartNode, OCLstdlibTables.Types._OclAny);
private static final @NonNull ExecutorFragment _TxPartNode__OclElement = new ExecutorFragment(Types._TxPartNode, OCLstdlibTables.Types._OclElement);
private static final @NonNull ExecutorFragment _TxPartNode__TxNode = new ExecutorFragment(Types._TxPartNode, UMLXTables.Types._TxNode);
private static final @NonNull ExecutorFragment _TxPartNode__TxPartNode = new ExecutorFragment(Types._TxPartNode, UMLXTables.Types._TxPartNode);
private static final @NonNull ExecutorFragment _TxPartNode__UMLXElement = new ExecutorFragment(Types._TxPartNode, UMLXTables.Types._UMLXElement);
+ private static final @NonNull ExecutorFragment _TxQueryNode__OclAny = new ExecutorFragment(Types._TxQueryNode, OCLstdlibTables.Types._OclAny);
+ private static final @NonNull ExecutorFragment _TxQueryNode__OclElement = new ExecutorFragment(Types._TxQueryNode, OCLstdlibTables.Types._OclElement);
+ private static final @NonNull ExecutorFragment _TxQueryNode__TxNode = new ExecutorFragment(Types._TxQueryNode, UMLXTables.Types._TxNode);
+ private static final @NonNull ExecutorFragment _TxQueryNode__TxQueryNode = new ExecutorFragment(Types._TxQueryNode, UMLXTables.Types._TxQueryNode);
+ private static final @NonNull ExecutorFragment _TxQueryNode__UMLXElement = new ExecutorFragment(Types._TxQueryNode, UMLXTables.Types._UMLXElement);
+ private static final @NonNull ExecutorFragment _TxQueryNode__UMLXNamedElement = new ExecutorFragment(Types._TxQueryNode, UMLXTables.Types._UMLXNamedElement);
+ private static final @NonNull ExecutorFragment _TxQueryNode__UMLXTypedElement = new ExecutorFragment(Types._TxQueryNode, UMLXTables.Types._UMLXTypedElement);
+
private static final @NonNull ExecutorFragment _TxTypedModelNode__OclAny = new ExecutorFragment(Types._TxTypedModelNode, OCLstdlibTables.Types._OclAny);
private static final @NonNull ExecutorFragment _TxTypedModelNode__OclElement = new ExecutorFragment(Types._TxTypedModelNode, OCLstdlibTables.Types._OclElement);
private static final @NonNull ExecutorFragment _TxTypedModelNode__TxNode = new ExecutorFragment(Types._TxTypedModelNode, UMLXTables.Types._TxNode);
@@ -356,6 +385,12 @@ public class UMLXTables
private static final @NonNull ExecutorFragment _UMLXNamedElement__UMLXElement = new ExecutorFragment(Types._UMLXNamedElement, UMLXTables.Types._UMLXElement);
private static final @NonNull ExecutorFragment _UMLXNamedElement__UMLXNamedElement = new ExecutorFragment(Types._UMLXNamedElement, UMLXTables.Types._UMLXNamedElement);
+ private static final @NonNull ExecutorFragment _UMLXTypedElement__OclAny = new ExecutorFragment(Types._UMLXTypedElement, OCLstdlibTables.Types._OclAny);
+ private static final @NonNull ExecutorFragment _UMLXTypedElement__OclElement = new ExecutorFragment(Types._UMLXTypedElement, OCLstdlibTables.Types._OclElement);
+ private static final @NonNull ExecutorFragment _UMLXTypedElement__UMLXElement = new ExecutorFragment(Types._UMLXTypedElement, UMLXTables.Types._UMLXElement);
+ private static final @NonNull ExecutorFragment _UMLXTypedElement__UMLXNamedElement = new ExecutorFragment(Types._UMLXTypedElement, UMLXTables.Types._UMLXNamedElement);
+ private static final @NonNull ExecutorFragment _UMLXTypedElement__UMLXTypedElement = new ExecutorFragment(Types._UMLXTypedElement, UMLXTables.Types._UMLXTypedElement);
+
static {
Init.initEnd();
}
@@ -448,15 +483,9 @@ public class UMLXTables
public static final @NonNull ExecutorProperty _RelInvocationNode__referredRelDiagram = new EcoreExecutorProperty(UMLXPackage.Literals.REL_INVOCATION_NODE__REFERRED_REL_DIAGRAM, Types._RelInvocationNode, 3);
public static final @NonNull ExecutorProperty _RelPatternClassNode__isAnon = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__IS_ANON, Types._RelPatternClassNode, 0);
- public static final @NonNull ExecutorProperty _RelPatternClassNode__isMany = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__IS_MANY, Types._RelPatternClassNode, 1);
- public static final @NonNull ExecutorProperty _RelPatternClassNode__isNullFree = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__IS_NULL_FREE, Types._RelPatternClassNode, 2);
- public static final @NonNull ExecutorProperty _RelPatternClassNode__isOrdered = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__IS_ORDERED, Types._RelPatternClassNode, 3);
- public static final @NonNull ExecutorProperty _RelPatternClassNode__isRequired = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__IS_REQUIRED, Types._RelPatternClassNode, 4);
- public static final @NonNull ExecutorProperty _RelPatternClassNode__isUnique = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__IS_UNIQUE, Types._RelPatternClassNode, 5);
- public static final @NonNull ExecutorProperty _RelPatternClassNode__outgoing = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__OUTGOING, Types._RelPatternClassNode, 6);
- public static final @NonNull ExecutorProperty _RelPatternClassNode__referredEClassifier = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER, Types._RelPatternClassNode, 7);
- public static final @NonNull ExecutorProperty _RelPatternClassNode__relDomainNode = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE, Types._RelPatternClassNode, 8);
- public static final @NonNull ExecutorProperty _RelPatternClassNode__RelInvocationEdge__referredRelPatternNode = new ExecutorPropertyWithImplementation("RelInvocationEdge", Types._RelPatternClassNode, 9, new EcoreLibraryOppositeProperty(UMLXPackage.Literals.REL_INVOCATION_EDGE__REFERRED_REL_PATTERN_NODE));
+ public static final @NonNull ExecutorProperty _RelPatternClassNode__outgoing = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__OUTGOING, Types._RelPatternClassNode, 1);
+ public static final @NonNull ExecutorProperty _RelPatternClassNode__relDomainNode = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE, Types._RelPatternClassNode, 2);
+ public static final @NonNull ExecutorProperty _RelPatternClassNode__RelInvocationEdge__referredRelPatternNode = new ExecutorPropertyWithImplementation("RelInvocationEdge", Types._RelPatternClassNode, 3, new EcoreLibraryOppositeProperty(UMLXPackage.Literals.REL_INVOCATION_EDGE__REFERRED_REL_PATTERN_NODE));
public static final @NonNull ExecutorProperty _RelPatternEdge__owningRelDomainNode = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_EDGE__OWNING_REL_DOMAIN_NODE, Types._RelPatternEdge, 0);
public static final @NonNull ExecutorProperty _RelPatternEdge__referredEStructuralFeature = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_EDGE__REFERRED_ESTRUCTURAL_FEATURE, Types._RelPatternEdge, 1);
@@ -464,19 +493,19 @@ public class UMLXTables
public static final @NonNull ExecutorProperty _RelPatternEdge__sourceIndex = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_EDGE__SOURCE_INDEX, Types._RelPatternEdge, 3);
public static final @NonNull ExecutorProperty _RelPatternEdge__target = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_EDGE__TARGET, Types._RelPatternEdge, 4);
- public static final @NonNull ExecutorProperty _RelPatternExpressionNode__expression = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_EXPRESSION_NODE__EXPRESSION, Types._RelPatternExpressionNode, 0);
-
public static final @NonNull ExecutorProperty _RelPatternNode__incoming = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__INCOMING, Types._RelPatternNode, 0);
- public static final @NonNull ExecutorProperty _RelPatternNode__isRoot = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__IS_ROOT, Types._RelPatternNode, 1);
- public static final @NonNull ExecutorProperty _RelPatternNode__owningRelDomainNode = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE, Types._RelPatternNode, 2);
- public static final @NonNull ExecutorProperty _RelPatternNode__RelInvocationEdge__invokingRelPatternNode = new ExecutorPropertyWithImplementation("RelInvocationEdge", Types._RelPatternNode, 3, new EcoreLibraryOppositeProperty(UMLXPackage.Literals.REL_INVOCATION_EDGE__INVOKING_REL_PATTERN_NODE));
+ public static final @NonNull ExecutorProperty _RelPatternNode__initExpressionLines = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__INIT_EXPRESSION_LINES, Types._RelPatternNode, 1);
+ public static final @NonNull ExecutorProperty _RelPatternNode__invokingRelInvocationEdges = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES, Types._RelPatternNode, 2);
+ public static final @NonNull ExecutorProperty _RelPatternNode__isRoot = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__IS_ROOT, Types._RelPatternNode, 3);
+ public static final @NonNull ExecutorProperty _RelPatternNode__owningRelDomainNode = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE, Types._RelPatternNode, 4);
public static final @NonNull ExecutorProperty _TxDiagram__ownedRelDiagrams = new EcoreExecutorProperty(UMLXPackage.Literals.TX_DIAGRAM__OWNED_REL_DIAGRAMS, Types._TxDiagram, 0);
public static final @NonNull ExecutorProperty _TxDiagram__ownedTxImportNodes = new EcoreExecutorProperty(UMLXPackage.Literals.TX_DIAGRAM__OWNED_TX_IMPORT_NODES, Types._TxDiagram, 1);
public static final @NonNull ExecutorProperty _TxDiagram__ownedTxKeyNodes = new EcoreExecutorProperty(UMLXPackage.Literals.TX_DIAGRAM__OWNED_TX_KEY_NODES, Types._TxDiagram, 2);
- public static final @NonNull ExecutorProperty _TxDiagram__ownedTxTypedModelNodes = new EcoreExecutorProperty(UMLXPackage.Literals.TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES, Types._TxDiagram, 3);
- public static final @NonNull ExecutorProperty _TxDiagram__package = new EcoreExecutorProperty(UMLXPackage.Literals.TX_DIAGRAM__PACKAGE, Types._TxDiagram, 4);
- public static final @NonNull ExecutorProperty _TxDiagram__UMLXModel__ownedTxDiagrams = new ExecutorPropertyWithImplementation("UMLXModel", Types._TxDiagram, 5, new EcoreLibraryOppositeProperty(UMLXPackage.Literals.UMLX_MODEL__OWNED_TX_DIAGRAMS));
+ public static final @NonNull ExecutorProperty _TxDiagram__ownedTxQueryNodes = new EcoreExecutorProperty(UMLXPackage.Literals.TX_DIAGRAM__OWNED_TX_QUERY_NODES, Types._TxDiagram, 3);
+ public static final @NonNull ExecutorProperty _TxDiagram__ownedTxTypedModelNodes = new EcoreExecutorProperty(UMLXPackage.Literals.TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES, Types._TxDiagram, 4);
+ public static final @NonNull ExecutorProperty _TxDiagram__package = new EcoreExecutorProperty(UMLXPackage.Literals.TX_DIAGRAM__PACKAGE, Types._TxDiagram, 5);
+ public static final @NonNull ExecutorProperty _TxDiagram__UMLXModel__ownedTxDiagrams = new ExecutorPropertyWithImplementation("UMLXModel", Types._TxDiagram, 6, new EcoreLibraryOppositeProperty(UMLXPackage.Literals.UMLX_MODEL__OWNED_TX_DIAGRAMS));
public static final @NonNull ExecutorProperty _TxImportNode__owningTxDiagram = new EcoreExecutorProperty(UMLXPackage.Literals.TX_IMPORT_NODE__OWNING_TX_DIAGRAM, Types._TxImportNode, 0);
public static final @NonNull ExecutorProperty _TxImportNode__uri = new EcoreExecutorProperty(UMLXPackage.Literals.TX_IMPORT_NODE__URI, Types._TxImportNode, 1);
@@ -488,10 +517,16 @@ public class UMLXTables
public static final @NonNull ExecutorProperty _TxPackageNode__owningTxTypedModelNode = new EcoreExecutorProperty(UMLXPackage.Literals.TX_PACKAGE_NODE__OWNING_TX_TYPED_MODEL_NODE, Types._TxPackageNode, 0);
public static final @NonNull ExecutorProperty _TxPackageNode__referredEPackage = new EcoreExecutorProperty(UMLXPackage.Literals.TX_PACKAGE_NODE__REFERRED_EPACKAGE, Types._TxPackageNode, 1);
+ public static final @NonNull ExecutorProperty _TxParameterNode__owningTxQueryNode = new EcoreExecutorProperty(UMLXPackage.Literals.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE, Types._TxParameterNode, 0);
+
public static final @NonNull ExecutorProperty _TxPartNode__isOpposite = new EcoreExecutorProperty(UMLXPackage.Literals.TX_PART_NODE__IS_OPPOSITE, Types._TxPartNode, 0);
public static final @NonNull ExecutorProperty _TxPartNode__owningTxKeyNode = new EcoreExecutorProperty(UMLXPackage.Literals.TX_PART_NODE__OWNING_TX_KEY_NODE, Types._TxPartNode, 1);
public static final @NonNull ExecutorProperty _TxPartNode__referredEStructuralFeature = new EcoreExecutorProperty(UMLXPackage.Literals.TX_PART_NODE__REFERRED_ESTRUCTURAL_FEATURE, Types._TxPartNode, 2);
+ public static final @NonNull ExecutorProperty _TxQueryNode__initExpressionLines = new EcoreExecutorProperty(UMLXPackage.Literals.TX_QUERY_NODE__INIT_EXPRESSION_LINES, Types._TxQueryNode, 0);
+ public static final @NonNull ExecutorProperty _TxQueryNode__ownedTxParameterNodes = new EcoreExecutorProperty(UMLXPackage.Literals.TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES, Types._TxQueryNode, 1);
+ public static final @NonNull ExecutorProperty _TxQueryNode__owningTxDiagram = new EcoreExecutorProperty(UMLXPackage.Literals.TX_QUERY_NODE__OWNING_TX_DIAGRAM, Types._TxQueryNode, 2);
+
public static final @NonNull ExecutorProperty _TxTypedModelNode__check = new EcoreExecutorProperty(UMLXPackage.Literals.TX_TYPED_MODEL_NODE__CHECK, Types._TxTypedModelNode, 0);
public static final @NonNull ExecutorProperty _TxTypedModelNode__enforce = new EcoreExecutorProperty(UMLXPackage.Literals.TX_TYPED_MODEL_NODE__ENFORCE, Types._TxTypedModelNode, 1);
public static final @NonNull ExecutorProperty _TxTypedModelNode__ownedTxPackageNodes = new EcoreExecutorProperty(UMLXPackage.Literals.TX_TYPED_MODEL_NODE__OWNED_TX_PACKAGE_NODES, Types._TxTypedModelNode, 2);
@@ -503,6 +538,13 @@ public class UMLXTables
public static final @NonNull ExecutorProperty _UMLXModel__ownedTxDiagrams = new EcoreExecutorProperty(UMLXPackage.Literals.UMLX_MODEL__OWNED_TX_DIAGRAMS, Types._UMLXModel, 0);
public static final @NonNull ExecutorProperty _UMLXNamedElement__name = new EcoreExecutorProperty(UMLXPackage.Literals.UMLX_NAMED_ELEMENT__NAME, Types._UMLXNamedElement, 0);
+
+ public static final @NonNull ExecutorProperty _UMLXTypedElement__isMany = new EcoreExecutorProperty(UMLXPackage.Literals.UMLX_TYPED_ELEMENT__IS_MANY, Types._UMLXTypedElement, 0);
+ public static final @NonNull ExecutorProperty _UMLXTypedElement__isNullFree = new EcoreExecutorProperty(UMLXPackage.Literals.UMLX_TYPED_ELEMENT__IS_NULL_FREE, Types._UMLXTypedElement, 1);
+ public static final @NonNull ExecutorProperty _UMLXTypedElement__isOrdered = new EcoreExecutorProperty(UMLXPackage.Literals.UMLX_TYPED_ELEMENT__IS_ORDERED, Types._UMLXTypedElement, 2);
+ public static final @NonNull ExecutorProperty _UMLXTypedElement__isRequired = new EcoreExecutorProperty(UMLXPackage.Literals.UMLX_TYPED_ELEMENT__IS_REQUIRED, Types._UMLXTypedElement, 3);
+ public static final @NonNull ExecutorProperty _UMLXTypedElement__isUnique = new EcoreExecutorProperty(UMLXPackage.Literals.UMLX_TYPED_ELEMENT__IS_UNIQUE, Types._UMLXTypedElement, 4);
+ public static final @NonNull ExecutorProperty _UMLXTypedElement__referredEClassifier = new EcoreExecutorProperty(UMLXPackage.Literals.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER, Types._UMLXTypedElement, 5);
static {
Init.initEnd();
}
@@ -588,9 +630,10 @@ public class UMLXTables
Fragments._RelPatternClassNode__RelNode /* 3 */,
Fragments._RelPatternClassNode__UMLXNamedElement /* 3 */,
Fragments._RelPatternClassNode__RelPatternNode /* 4 */,
+ Fragments._RelPatternClassNode__UMLXTypedElement /* 4 */,
Fragments._RelPatternClassNode__RelPatternClassNode /* 5 */
};
- private static final int @NonNull [] __RelPatternClassNode = { 1,1,1,2,1,1 };
+ private static final int @NonNull [] __RelPatternClassNode = { 1,1,1,2,2,1 };
private static final @NonNull ExecutorFragment @NonNull [] _RelPatternEdge =
{
@@ -673,6 +716,18 @@ public class UMLXTables
};
private static final int @NonNull [] __TxPackageNode = { 1,1,1,1,1 };
+ private static final @NonNull ExecutorFragment @NonNull [] _TxParameterNode =
+ {
+ Fragments._TxParameterNode__OclAny /* 0 */,
+ Fragments._TxParameterNode__OclElement /* 1 */,
+ Fragments._TxParameterNode__UMLXElement /* 2 */,
+ Fragments._TxParameterNode__TxNode /* 3 */,
+ Fragments._TxParameterNode__UMLXNamedElement /* 3 */,
+ Fragments._TxParameterNode__UMLXTypedElement /* 4 */,
+ Fragments._TxParameterNode__TxParameterNode /* 5 */
+ };
+ private static final int @NonNull [] __TxParameterNode = { 1,1,1,2,1,1 };
+
private static final @NonNull ExecutorFragment @NonNull [] _TxPartNode =
{
Fragments._TxPartNode__OclAny /* 0 */,
@@ -683,6 +738,18 @@ public class UMLXTables
};
private static final int @NonNull [] __TxPartNode = { 1,1,1,1,1 };
+ private static final @NonNull ExecutorFragment @NonNull [] _TxQueryNode =
+ {
+ Fragments._TxQueryNode__OclAny /* 0 */,
+ Fragments._TxQueryNode__OclElement /* 1 */,
+ Fragments._TxQueryNode__UMLXElement /* 2 */,
+ Fragments._TxQueryNode__TxNode /* 3 */,
+ Fragments._TxQueryNode__UMLXNamedElement /* 3 */,
+ Fragments._TxQueryNode__UMLXTypedElement /* 4 */,
+ Fragments._TxQueryNode__TxQueryNode /* 5 */
+ };
+ private static final int @NonNull [] __TxQueryNode = { 1,1,1,2,1,1 };
+
private static final @NonNull ExecutorFragment @NonNull [] _TxTypedModelNode =
{
Fragments._TxTypedModelNode__OclAny /* 0 */,
@@ -720,6 +787,16 @@ public class UMLXTables
};
private static final int @NonNull [] __UMLXNamedElement = { 1,1,1,1 };
+ private static final @NonNull ExecutorFragment @NonNull [] _UMLXTypedElement =
+ {
+ Fragments._UMLXTypedElement__OclAny /* 0 */,
+ Fragments._UMLXTypedElement__OclElement /* 1 */,
+ Fragments._UMLXTypedElement__UMLXElement /* 2 */,
+ Fragments._UMLXTypedElement__UMLXNamedElement /* 3 */,
+ Fragments._UMLXTypedElement__UMLXTypedElement /* 4 */
+ };
+ private static final int @NonNull [] __UMLXTypedElement = { 1,1,1,1,1 };
+
/**
* Install the fragment descriptors in the class descriptors.
*/
@@ -739,11 +816,14 @@ public class UMLXTables
Types._TxKeyNode.initFragments(_TxKeyNode, __TxKeyNode);
Types._TxNode.initFragments(_TxNode, __TxNode);
Types._TxPackageNode.initFragments(_TxPackageNode, __TxPackageNode);
+ Types._TxParameterNode.initFragments(_TxParameterNode, __TxParameterNode);
Types._TxPartNode.initFragments(_TxPartNode, __TxPartNode);
+ Types._TxQueryNode.initFragments(_TxQueryNode, __TxQueryNode);
Types._TxTypedModelNode.initFragments(_TxTypedModelNode, __TxTypedModelNode);
Types._UMLXElement.initFragments(_UMLXElement, __UMLXElement);
Types._UMLXModel.initFragments(_UMLXModel, __UMLXModel);
Types._UMLXNamedElement.initFragments(_UMLXNamedElement, __UMLXNamedElement);
+ Types._UMLXTypedElement.initFragments(_UMLXTypedElement, __UMLXTypedElement);
Init.initEnd();
}
@@ -972,6 +1052,7 @@ public class UMLXTables
private static final @NonNull ExecutorOperation @NonNull [] _RelPatternClassNode__RelPatternNode = {};
private static final @NonNull ExecutorOperation @NonNull [] _RelPatternClassNode__UMLXElement = {};
private static final @NonNull ExecutorOperation @NonNull [] _RelPatternClassNode__UMLXNamedElement = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _RelPatternClassNode__UMLXTypedElement = {};
private static final @NonNull ExecutorOperation @NonNull [] _RelPatternEdge__RelPatternEdge = {};
private static final @NonNull ExecutorOperation @NonNull [] _RelPatternEdge__OclAny = {
@@ -1214,6 +1295,38 @@ public class UMLXTables
private static final @NonNull ExecutorOperation @NonNull [] _TxPackageNode__TxNode = {};
private static final @NonNull ExecutorOperation @NonNull [] _TxPackageNode__UMLXElement = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _TxParameterNode__TxParameterNode = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _TxParameterNode__OclAny = {
+ OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
+ OCLstdlibTables.Operations._OclAny___eq_ /* _'='(OclSelf[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclAsSet /* oclAsSet() */,
+ OCLstdlibTables.Operations._OclAny__oclAsType /* oclAsType(TT)(TT[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsInState /* oclIsInState(OclState[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsInvalid /* oclIsInvalid() */,
+ OCLstdlibTables.Operations._OclAny__oclIsKindOf /* oclIsKindOf(OclType[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsNew /* oclIsNew() */,
+ OCLstdlibTables.Operations._OclAny__oclIsTypeOf /* oclIsTypeOf(OclType[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsUndefined /* oclIsUndefined() */,
+ OCLstdlibTables.Operations._OclAny__0_oclLog /* oclLog() */,
+ OCLstdlibTables.Operations._OclAny__1_oclLog /* oclLog(String[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclType /* oclType() */,
+ OCLstdlibTables.Operations._OclAny__oclTypes /* oclTypes() */,
+ OCLstdlibTables.Operations._OclAny__toString /* toString() */
+ };
+ private static final @NonNull ExecutorOperation @NonNull [] _TxParameterNode__OclElement = {
+ OCLstdlibTables.Operations._OclElement__allInstances /* allInstances() */,
+ OCLstdlibTables.Operations._OclElement__oclAsModelType /* oclAsModelType(TT)(TT[?]) */,
+ OCLstdlibTables.Operations._OclElement__oclContainer /* oclContainer() */,
+ OCLstdlibTables.Operations._OclElement__oclContents /* oclContents() */,
+ OCLstdlibTables.Operations._OclElement__oclIsModelKindOf /* oclIsModelKindOf(OclType[?]) */,
+ OCLstdlibTables.Operations._OclElement__oclModelType /* oclModelType() */,
+ OCLstdlibTables.Operations._OclElement__oclModelTypes /* oclModelTypes() */
+ };
+ private static final @NonNull ExecutorOperation @NonNull [] _TxParameterNode__TxNode = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _TxParameterNode__UMLXElement = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _TxParameterNode__UMLXNamedElement = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _TxParameterNode__UMLXTypedElement = {};
+
private static final @NonNull ExecutorOperation @NonNull [] _TxPartNode__TxPartNode = {};
private static final @NonNull ExecutorOperation @NonNull [] _TxPartNode__OclAny = {
OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -1244,6 +1357,38 @@ public class UMLXTables
private static final @NonNull ExecutorOperation @NonNull [] _TxPartNode__TxNode = {};
private static final @NonNull ExecutorOperation @NonNull [] _TxPartNode__UMLXElement = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _TxQueryNode__TxQueryNode = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _TxQueryNode__OclAny = {
+ OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
+ OCLstdlibTables.Operations._OclAny___eq_ /* _'='(OclSelf[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclAsSet /* oclAsSet() */,
+ OCLstdlibTables.Operations._OclAny__oclAsType /* oclAsType(TT)(TT[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsInState /* oclIsInState(OclState[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsInvalid /* oclIsInvalid() */,
+ OCLstdlibTables.Operations._OclAny__oclIsKindOf /* oclIsKindOf(OclType[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsNew /* oclIsNew() */,
+ OCLstdlibTables.Operations._OclAny__oclIsTypeOf /* oclIsTypeOf(OclType[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsUndefined /* oclIsUndefined() */,
+ OCLstdlibTables.Operations._OclAny__0_oclLog /* oclLog() */,
+ OCLstdlibTables.Operations._OclAny__1_oclLog /* oclLog(String[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclType /* oclType() */,
+ OCLstdlibTables.Operations._OclAny__oclTypes /* oclTypes() */,
+ OCLstdlibTables.Operations._OclAny__toString /* toString() */
+ };
+ private static final @NonNull ExecutorOperation @NonNull [] _TxQueryNode__OclElement = {
+ OCLstdlibTables.Operations._OclElement__allInstances /* allInstances() */,
+ OCLstdlibTables.Operations._OclElement__oclAsModelType /* oclAsModelType(TT)(TT[?]) */,
+ OCLstdlibTables.Operations._OclElement__oclContainer /* oclContainer() */,
+ OCLstdlibTables.Operations._OclElement__oclContents /* oclContents() */,
+ OCLstdlibTables.Operations._OclElement__oclIsModelKindOf /* oclIsModelKindOf(OclType[?]) */,
+ OCLstdlibTables.Operations._OclElement__oclModelType /* oclModelType() */,
+ OCLstdlibTables.Operations._OclElement__oclModelTypes /* oclModelTypes() */
+ };
+ private static final @NonNull ExecutorOperation @NonNull [] _TxQueryNode__TxNode = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _TxQueryNode__UMLXElement = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _TxQueryNode__UMLXNamedElement = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _TxQueryNode__UMLXTypedElement = {};
+
private static final @NonNull ExecutorOperation @NonNull [] _TxTypedModelNode__TxTypedModelNode = {};
private static final @NonNull ExecutorOperation @NonNull [] _TxTypedModelNode__OclAny = {
OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
@@ -1361,6 +1506,36 @@ public class UMLXTables
};
private static final @NonNull ExecutorOperation @NonNull [] _UMLXNamedElement__UMLXElement = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _UMLXTypedElement__UMLXTypedElement = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _UMLXTypedElement__OclAny = {
+ OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */,
+ OCLstdlibTables.Operations._OclAny___eq_ /* _'='(OclSelf[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclAsSet /* oclAsSet() */,
+ OCLstdlibTables.Operations._OclAny__oclAsType /* oclAsType(TT)(TT[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsInState /* oclIsInState(OclState[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsInvalid /* oclIsInvalid() */,
+ OCLstdlibTables.Operations._OclAny__oclIsKindOf /* oclIsKindOf(OclType[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsNew /* oclIsNew() */,
+ OCLstdlibTables.Operations._OclAny__oclIsTypeOf /* oclIsTypeOf(OclType[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclIsUndefined /* oclIsUndefined() */,
+ OCLstdlibTables.Operations._OclAny__0_oclLog /* oclLog() */,
+ OCLstdlibTables.Operations._OclAny__1_oclLog /* oclLog(String[?]) */,
+ OCLstdlibTables.Operations._OclAny__oclType /* oclType() */,
+ OCLstdlibTables.Operations._OclAny__oclTypes /* oclTypes() */,
+ OCLstdlibTables.Operations._OclAny__toString /* toString() */
+ };
+ private static final @NonNull ExecutorOperation @NonNull [] _UMLXTypedElement__OclElement = {
+ OCLstdlibTables.Operations._OclElement__allInstances /* allInstances() */,
+ OCLstdlibTables.Operations._OclElement__oclAsModelType /* oclAsModelType(TT)(TT[?]) */,
+ OCLstdlibTables.Operations._OclElement__oclContainer /* oclContainer() */,
+ OCLstdlibTables.Operations._OclElement__oclContents /* oclContents() */,
+ OCLstdlibTables.Operations._OclElement__oclIsModelKindOf /* oclIsModelKindOf(OclType[?]) */,
+ OCLstdlibTables.Operations._OclElement__oclModelType /* oclModelType() */,
+ OCLstdlibTables.Operations._OclElement__oclModelTypes /* oclModelTypes() */
+ };
+ private static final @NonNull ExecutorOperation @NonNull [] _UMLXTypedElement__UMLXElement = {};
+ private static final @NonNull ExecutorOperation @NonNull [] _UMLXTypedElement__UMLXNamedElement = {};
+
/*
* Install the operation descriptors in the fragment descriptors.
*/
@@ -1406,6 +1581,7 @@ public class UMLXTables
Fragments._RelPatternClassNode__RelPatternNode.initOperations(_RelPatternClassNode__RelPatternNode);
Fragments._RelPatternClassNode__UMLXElement.initOperations(_RelPatternClassNode__UMLXElement);
Fragments._RelPatternClassNode__UMLXNamedElement.initOperations(_RelPatternClassNode__UMLXNamedElement);
+ Fragments._RelPatternClassNode__UMLXTypedElement.initOperations(_RelPatternClassNode__UMLXTypedElement);
Fragments._RelPatternEdge__OclAny.initOperations(_RelPatternEdge__OclAny);
Fragments._RelPatternEdge__OclElement.initOperations(_RelPatternEdge__OclElement);
@@ -1456,12 +1632,28 @@ public class UMLXTables
Fragments._TxPackageNode__TxPackageNode.initOperations(_TxPackageNode__TxPackageNode);
Fragments._TxPackageNode__UMLXElement.initOperations(_TxPackageNode__UMLXElement);
+ Fragments._TxParameterNode__OclAny.initOperations(_TxParameterNode__OclAny);
+ Fragments._TxParameterNode__OclElement.initOperations(_TxParameterNode__OclElement);
+ Fragments._TxParameterNode__TxNode.initOperations(_TxParameterNode__TxNode);
+ Fragments._TxParameterNode__TxParameterNode.initOperations(_TxParameterNode__TxParameterNode);
+ Fragments._TxParameterNode__UMLXElement.initOperations(_TxParameterNode__UMLXElement);
+ Fragments._TxParameterNode__UMLXNamedElement.initOperations(_TxParameterNode__UMLXNamedElement);
+ Fragments._TxParameterNode__UMLXTypedElement.initOperations(_TxParameterNode__UMLXTypedElement);
+
Fragments._TxPartNode__OclAny.initOperations(_TxPartNode__OclAny);
Fragments._TxPartNode__OclElement.initOperations(_TxPartNode__OclElement);
Fragments._TxPartNode__TxNode.initOperations(_TxPartNode__TxNode);
Fragments._TxPartNode__TxPartNode.initOperations(_TxPartNode__TxPartNode);
Fragments._TxPartNode__UMLXElement.initOperations(_TxPartNode__UMLXElement);
+ Fragments._TxQueryNode__OclAny.initOperations(_TxQueryNode__OclAny);
+ Fragments._TxQueryNode__OclElement.initOperations(_TxQueryNode__OclElement);
+ Fragments._TxQueryNode__TxNode.initOperations(_TxQueryNode__TxNode);
+ Fragments._TxQueryNode__TxQueryNode.initOperations(_TxQueryNode__TxQueryNode);
+ Fragments._TxQueryNode__UMLXElement.initOperations(_TxQueryNode__UMLXElement);
+ Fragments._TxQueryNode__UMLXNamedElement.initOperations(_TxQueryNode__UMLXNamedElement);
+ Fragments._TxQueryNode__UMLXTypedElement.initOperations(_TxQueryNode__UMLXTypedElement);
+
Fragments._TxTypedModelNode__OclAny.initOperations(_TxTypedModelNode__OclAny);
Fragments._TxTypedModelNode__OclElement.initOperations(_TxTypedModelNode__OclElement);
Fragments._TxTypedModelNode__TxNode.initOperations(_TxTypedModelNode__TxNode);
@@ -1483,6 +1675,12 @@ public class UMLXTables
Fragments._UMLXNamedElement__UMLXElement.initOperations(_UMLXNamedElement__UMLXElement);
Fragments._UMLXNamedElement__UMLXNamedElement.initOperations(_UMLXNamedElement__UMLXNamedElement);
+ Fragments._UMLXTypedElement__OclAny.initOperations(_UMLXTypedElement__OclAny);
+ Fragments._UMLXTypedElement__OclElement.initOperations(_UMLXTypedElement__OclElement);
+ Fragments._UMLXTypedElement__UMLXElement.initOperations(_UMLXTypedElement__UMLXElement);
+ Fragments._UMLXTypedElement__UMLXNamedElement.initOperations(_UMLXTypedElement__UMLXNamedElement);
+ Fragments._UMLXTypedElement__UMLXTypedElement.initOperations(_UMLXTypedElement__UMLXTypedElement);
+
Init.initEnd();
}
@@ -1544,17 +1742,19 @@ public class UMLXTables
private static final @NonNull ExecutorProperty @NonNull [] _RelPatternClassNode = {
UMLXTables.Properties._UMLXElement__comments,
UMLXTables.Properties._RelPatternNode__incoming,
+ UMLXTables.Properties._RelPatternNode__initExpressionLines,
+ UMLXTables.Properties._RelPatternNode__invokingRelInvocationEdges,
UMLXTables.Properties._RelPatternClassNode__isAnon,
- UMLXTables.Properties._RelPatternClassNode__isMany,
- UMLXTables.Properties._RelPatternClassNode__isNullFree,
- UMLXTables.Properties._RelPatternClassNode__isOrdered,
- UMLXTables.Properties._RelPatternClassNode__isRequired,
+ UMLXTables.Properties._UMLXTypedElement__isMany,
+ UMLXTables.Properties._UMLXTypedElement__isNullFree,
+ UMLXTables.Properties._UMLXTypedElement__isOrdered,
+ UMLXTables.Properties._UMLXTypedElement__isRequired,
UMLXTables.Properties._RelPatternNode__isRoot,
- UMLXTables.Properties._RelPatternClassNode__isUnique,
+ UMLXTables.Properties._UMLXTypedElement__isUnique,
UMLXTables.Properties._UMLXNamedElement__name,
UMLXTables.Properties._RelPatternClassNode__outgoing,
UMLXTables.Properties._RelPatternNode__owningRelDomainNode,
- UMLXTables.Properties._RelPatternClassNode__referredEClassifier,
+ UMLXTables.Properties._UMLXTypedElement__referredEClassifier,
UMLXTables.Properties._RelPatternClassNode__relDomainNode
};
@@ -1569,8 +1769,9 @@ public class UMLXTables
private static final @NonNull ExecutorProperty @NonNull [] _RelPatternExpressionNode = {
UMLXTables.Properties._UMLXElement__comments,
- UMLXTables.Properties._RelPatternExpressionNode__expression,
UMLXTables.Properties._RelPatternNode__incoming,
+ UMLXTables.Properties._RelPatternNode__initExpressionLines,
+ UMLXTables.Properties._RelPatternNode__invokingRelInvocationEdges,
UMLXTables.Properties._RelPatternNode__isRoot,
UMLXTables.Properties._RelPatternNode__owningRelDomainNode
};
@@ -1578,6 +1779,8 @@ public class UMLXTables
private static final @NonNull ExecutorProperty @NonNull [] _RelPatternNode = {
UMLXTables.Properties._UMLXElement__comments,
UMLXTables.Properties._RelPatternNode__incoming,
+ UMLXTables.Properties._RelPatternNode__initExpressionLines,
+ UMLXTables.Properties._RelPatternNode__invokingRelInvocationEdges,
UMLXTables.Properties._RelPatternNode__isRoot,
UMLXTables.Properties._RelPatternNode__owningRelDomainNode
};
@@ -1588,6 +1791,7 @@ public class UMLXTables
UMLXTables.Properties._TxDiagram__ownedRelDiagrams,
UMLXTables.Properties._TxDiagram__ownedTxImportNodes,
UMLXTables.Properties._TxDiagram__ownedTxKeyNodes,
+ UMLXTables.Properties._TxDiagram__ownedTxQueryNodes,
UMLXTables.Properties._TxDiagram__ownedTxTypedModelNodes,
UMLXTables.Properties._TxDiagram__package
};
@@ -1616,6 +1820,18 @@ public class UMLXTables
UMLXTables.Properties._TxPackageNode__referredEPackage
};
+ private static final @NonNull ExecutorProperty @NonNull [] _TxParameterNode = {
+ UMLXTables.Properties._UMLXElement__comments,
+ UMLXTables.Properties._UMLXTypedElement__isMany,
+ UMLXTables.Properties._UMLXTypedElement__isNullFree,
+ UMLXTables.Properties._UMLXTypedElement__isOrdered,
+ UMLXTables.Properties._UMLXTypedElement__isRequired,
+ UMLXTables.Properties._UMLXTypedElement__isUnique,
+ UMLXTables.Properties._UMLXNamedElement__name,
+ UMLXTables.Properties._TxParameterNode__owningTxQueryNode,
+ UMLXTables.Properties._UMLXTypedElement__referredEClassifier
+ };
+
private static final @NonNull ExecutorProperty @NonNull [] _TxPartNode = {
UMLXTables.Properties._UMLXElement__comments,
UMLXTables.Properties._TxPartNode__isOpposite,
@@ -1623,6 +1839,20 @@ public class UMLXTables
UMLXTables.Properties._TxPartNode__referredEStructuralFeature
};
+ private static final @NonNull ExecutorProperty @NonNull [] _TxQueryNode = {
+ UMLXTables.Properties._UMLXElement__comments,
+ UMLXTables.Properties._TxQueryNode__initExpressionLines,
+ UMLXTables.Properties._UMLXTypedElement__isMany,
+ UMLXTables.Properties._UMLXTypedElement__isNullFree,
+ UMLXTables.Properties._UMLXTypedElement__isOrdered,
+ UMLXTables.Properties._UMLXTypedElement__isRequired,
+ UMLXTables.Properties._UMLXTypedElement__isUnique,
+ UMLXTables.Properties._UMLXNamedElement__name,
+ UMLXTables.Properties._TxQueryNode__ownedTxParameterNodes,
+ UMLXTables.Properties._TxQueryNode__owningTxDiagram,
+ UMLXTables.Properties._UMLXTypedElement__referredEClassifier
+ };
+
private static final @NonNull ExecutorProperty @NonNull [] _TxTypedModelNode = {
UMLXTables.Properties._TxTypedModelNode__check,
UMLXTables.Properties._UMLXElement__comments,
@@ -1646,6 +1876,17 @@ public class UMLXTables
UMLXTables.Properties._UMLXNamedElement__name
};
+ private static final @NonNull ExecutorProperty @NonNull [] _UMLXTypedElement = {
+ UMLXTables.Properties._UMLXElement__comments,
+ UMLXTables.Properties._UMLXTypedElement__isMany,
+ UMLXTables.Properties._UMLXTypedElement__isNullFree,
+ UMLXTables.Properties._UMLXTypedElement__isOrdered,
+ UMLXTables.Properties._UMLXTypedElement__isRequired,
+ UMLXTables.Properties._UMLXTypedElement__isUnique,
+ UMLXTables.Properties._UMLXNamedElement__name,
+ UMLXTables.Properties._UMLXTypedElement__referredEClassifier
+ };
+
/**
* Install the property descriptors in the fragment descriptors.
*/
@@ -1665,11 +1906,14 @@ public class UMLXTables
Fragments._TxKeyNode__TxKeyNode.initProperties(_TxKeyNode);
Fragments._TxNode__TxNode.initProperties(_TxNode);
Fragments._TxPackageNode__TxPackageNode.initProperties(_TxPackageNode);
+ Fragments._TxParameterNode__TxParameterNode.initProperties(_TxParameterNode);
Fragments._TxPartNode__TxPartNode.initProperties(_TxPartNode);
+ Fragments._TxQueryNode__TxQueryNode.initProperties(_TxQueryNode);
Fragments._TxTypedModelNode__TxTypedModelNode.initProperties(_TxTypedModelNode);
Fragments._UMLXElement__UMLXElement.initProperties(_UMLXElement);
Fragments._UMLXModel__UMLXModel.initProperties(_UMLXModel);
Fragments._UMLXNamedElement__UMLXNamedElement.initProperties(_UMLXNamedElement);
+ Fragments._UMLXTypedElement__UMLXTypedElement.initProperties(_UMLXTypedElement);
Init.initEnd();
}
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXTypedElement.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXTypedElement.java
new file mode 100644
index 000000000..dbf1f2ad8
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/UMLXTypedElement.java
@@ -0,0 +1,191 @@
+/**
+ * Copyright (c) 2016 Willink Transformations and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ */
+package org.eclipse.qvtd.umlx;
+
+import org.eclipse.emf.ecore.EClassifier;
+
+/**
+ * <!-- begin-user-doc -->
+ * A representation of the model object '<em><b>Typed Element</b></em>'.
+ * <!-- end-user-doc -->
+ *
+ * <p>
+ * The following features are supported:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsMany <em>Is Many</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsNullFree <em>Is Null Free</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsRequired <em>Is Required</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsUnique <em>Is Unique</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.UMLXTypedElement#getReferredEClassifier <em>Referred EClassifier</em>}</li>
+ * </ul>
+ *
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getUMLXTypedElement()
+ * @generated
+ */
+public interface UMLXTypedElement extends UMLXNamedElement {
+ /**
+ * Returns the value of the '<em><b>Is Many</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Many</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Many</em>' attribute.
+ * @see #setIsMany(boolean)
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getUMLXTypedElement_IsMany()
+ * @generated
+ */
+ boolean isIsMany();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsMany <em>Is Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Many</em>' attribute.
+ * @see #isIsMany()
+ * @generated
+ */
+ void setIsMany(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Null Free</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Null Free</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Null Free</em>' attribute.
+ * @see #setIsNullFree(boolean)
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getUMLXTypedElement_IsNullFree()
+ * @generated
+ */
+ boolean isIsNullFree();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsNullFree <em>Is Null Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Null Free</em>' attribute.
+ * @see #isIsNullFree()
+ * @generated
+ */
+ void setIsNullFree(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Ordered</b></em>' attribute.
+ * The default value is <code>"false"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Ordered</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Ordered</em>' attribute.
+ * @see #setIsOrdered(boolean)
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getUMLXTypedElement_IsOrdered()
+ * @generated
+ */
+ boolean isIsOrdered();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsOrdered <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Ordered</em>' attribute.
+ * @see #isIsOrdered()
+ * @generated
+ */
+ void setIsOrdered(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Required</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Required</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Required</em>' attribute.
+ * @see #setIsRequired(boolean)
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getUMLXTypedElement_IsRequired()
+ * @generated
+ */
+ boolean isIsRequired();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsRequired <em>Is Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Required</em>' attribute.
+ * @see #isIsRequired()
+ * @generated
+ */
+ void setIsRequired(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Is Unique</b></em>' attribute.
+ * The default value is <code>"true"</code>.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Is Unique</em>' attribute isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Is Unique</em>' attribute.
+ * @see #setIsUnique(boolean)
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getUMLXTypedElement_IsUnique()
+ * @generated
+ */
+ boolean isIsUnique();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#isIsUnique <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Is Unique</em>' attribute.
+ * @see #isIsUnique()
+ * @generated
+ */
+ void setIsUnique(boolean value);
+
+ /**
+ * Returns the value of the '<em><b>Referred EClassifier</b></em>' reference.
+ * <!-- begin-user-doc -->
+ * <p>
+ * If the meaning of the '<em>Referred EClassifier</em>' reference isn't clear,
+ * there really should be more of a description here...
+ * </p>
+ * <!-- end-user-doc -->
+ * @return the value of the '<em>Referred EClassifier</em>' reference.
+ * @see #setReferredEClassifier(EClassifier)
+ * @see org.eclipse.qvtd.umlx.UMLXPackage#getUMLXTypedElement_ReferredEClassifier()
+ * @generated
+ */
+ EClassifier getReferredEClassifier();
+
+ /**
+ * Sets the value of the '{@link org.eclipse.qvtd.umlx.UMLXTypedElement#getReferredEClassifier <em>Referred EClassifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @param value the new value of the '<em>Referred EClassifier</em>' reference.
+ * @see #getReferredEClassifier()
+ * @generated
+ */
+ void setReferredEClassifier(EClassifier value);
+
+} // UMLXTypedElement
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelDiagramImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelDiagramImpl.java
index f47ed337c..ee23c941c 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelDiagramImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelDiagramImpl.java
@@ -221,6 +221,7 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateRelPatternNodeNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -247,7 +248,7 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram {
* allNames->count(n) > 1)
* ->asSet()
* in
- * repeatedNames->iterate(n; acc : String[?] = 'RelDiagram::RelPatternNodeNamesAreUnique:' | acc + ' \'' + n + '\'') + ' are not unique for ' + name
+ * repeatedNames->iterate(n; acc : String[1] = 'RelDiagram::RelPatternNodeNamesAreUnique:' | acc + ' \'' + n + '\'') + ' are not unique for ' + name
* }
* endif
* in
@@ -380,7 +381,7 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram {
}
}
final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue repeatedNames = CollectionAsSetOperation.INSTANCE.evaluate(select_0);
- /*@NonInvalid*/ java.lang.@Nullable String acc = UMLXTables.STR_RelDiagram_c_c_RelPatternNodeNamesAreUnique_c;
+ /*@NonInvalid*/ java.lang.@NonNull String acc = UMLXTables.STR_RelDiagram_c_c_RelPatternNodeNamesAreUnique_c;
@NonNull Iterator<Object> ITERATOR_n_1 = repeatedNames.iterator();
/*@Thrown*/ java.lang.@Nullable String iterate;
while (true) {
@@ -393,9 +394,9 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram {
/**
* acc + ' \'' + n + '\''
*/
- final /*@Thrown*/ java.lang.@NonNull String sum = StringConcatOperation.INSTANCE.evaluate(acc, UMLXTables.STR__32_39);
- final /*@Thrown*/ java.lang.@NonNull String sum_0 = StringConcatOperation.INSTANCE.evaluate(sum, n_1);
- final /*@Thrown*/ java.lang.@NonNull String sum_1 = StringConcatOperation.INSTANCE.evaluate(sum_0, UMLXTables.STR__39);
+ final /*@NonInvalid*/ java.lang.@NonNull String sum = StringConcatOperation.INSTANCE.evaluate(acc, UMLXTables.STR__32_39);
+ final /*@NonInvalid*/ java.lang.@NonNull String sum_0 = StringConcatOperation.INSTANCE.evaluate(sum, n_1);
+ final /*@NonInvalid*/ java.lang.@NonNull String sum_1 = StringConcatOperation.INSTANCE.evaluate(sum_0, UMLXTables.STR__39);
//
acc = sum_1;
}
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelDomainNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelDomainNodeImpl.java
index 379aecc94..995e309cf 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelDomainNodeImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelDomainNodeImpl.java
@@ -12,11 +12,8 @@ package org.eclipse.qvtd.umlx.impl;
import java.util.Collection;
-import java.util.Iterator;
-import java.util.Map;
import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.common.notify.NotificationChain;
-import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
@@ -25,27 +22,12 @@ import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.jdt.annotation.NonNull;
-import org.eclipse.jdt.annotation.Nullable;
-import org.eclipse.ocl.pivot.ids.TypeId;
-import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
-import org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation;
-import org.eclipse.ocl.pivot.library.logical.BooleanNotOperation;
-import org.eclipse.ocl.pivot.library.oclany.OclAnyOclIsKindOfOperation;
-import org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation;
-import org.eclipse.ocl.pivot.library.string.CGStringGetSeverityOperation;
-import org.eclipse.ocl.pivot.library.string.CGStringLogDiagnosticOperation;
-import org.eclipse.ocl.pivot.messages.PivotMessages;
-import org.eclipse.ocl.pivot.utilities.ValueUtil;
-import org.eclipse.ocl.pivot.values.InvalidValueException;
-import org.eclipse.ocl.pivot.values.OrderedSetValue;
import org.eclipse.qvtd.umlx.RelDiagram;
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.TxTypedModelNode;
import org.eclipse.qvtd.umlx.UMLXPackage;
-import org.eclipse.qvtd.umlx.UMLXTables;
import org.eclipse.qvtd.umlx.util.UMLXVisitor;
/**
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelInvocationEdgeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelInvocationEdgeImpl.java
index 1d4bd95d2..f08400c65 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelInvocationEdgeImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelInvocationEdgeImpl.java
@@ -194,12 +194,34 @@ public class RelInvocationEdgeImpl extends RelEdgeImpl implements RelInvocationE
* <!-- end-user-doc -->
* @generated
*/
- @Override
- public void setInvokingRelPatternNode(RelPatternNode newInvokingRelPatternNode) {
+ public NotificationChain basicSetInvokingRelPatternNode(RelPatternNode newInvokingRelPatternNode, NotificationChain msgs) {
RelPatternNode oldInvokingRelPatternNode = invokingRelPatternNode;
invokingRelPatternNode = newInvokingRelPatternNode;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.REL_INVOCATION_EDGE__INVOKING_REL_PATTERN_NODE, oldInvokingRelPatternNode, invokingRelPatternNode));
+ if (eNotificationRequired()) {
+ ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, UMLXPackage.REL_INVOCATION_EDGE__INVOKING_REL_PATTERN_NODE, oldInvokingRelPatternNode, newInvokingRelPatternNode);
+ if (msgs == null) msgs = notification; else msgs.add(notification);
+ }
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setInvokingRelPatternNode(RelPatternNode newInvokingRelPatternNode) {
+ if (newInvokingRelPatternNode != invokingRelPatternNode) {
+ NotificationChain msgs = null;
+ if (invokingRelPatternNode != null)
+ msgs = ((InternalEObject)invokingRelPatternNode).eInverseRemove(this, UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES, RelPatternNode.class, msgs);
+ if (newInvokingRelPatternNode != null)
+ msgs = ((InternalEObject)newInvokingRelPatternNode).eInverseAdd(this, UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES, RelPatternNode.class, msgs);
+ msgs = basicSetInvokingRelPatternNode(newInvokingRelPatternNode, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.REL_INVOCATION_EDGE__INVOKING_REL_PATTERN_NODE, newInvokingRelPatternNode, newInvokingRelPatternNode));
}
/**
@@ -210,6 +232,10 @@ public class RelInvocationEdgeImpl extends RelEdgeImpl implements RelInvocationE
@Override
public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
+ case UMLXPackage.REL_INVOCATION_EDGE__INVOKING_REL_PATTERN_NODE:
+ if (invokingRelPatternNode != null)
+ msgs = ((InternalEObject)invokingRelPatternNode).eInverseRemove(this, UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES, RelPatternNode.class, msgs);
+ return basicSetInvokingRelPatternNode((RelPatternNode)otherEnd, msgs);
case UMLXPackage.REL_INVOCATION_EDGE__OWNING_REL_INVOCATION_NODE:
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
@@ -226,6 +252,8 @@ public class RelInvocationEdgeImpl extends RelEdgeImpl implements RelInvocationE
@Override
public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
switch (featureID) {
+ case UMLXPackage.REL_INVOCATION_EDGE__INVOKING_REL_PATTERN_NODE:
+ return basicSetInvokingRelPatternNode(null, msgs);
case UMLXPackage.REL_INVOCATION_EDGE__OWNING_REL_INVOCATION_NODE:
return basicSetOwningRelInvocationNode(null, msgs);
}
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternClassNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternClassNodeImpl.java
index 58850670f..dc738b41b 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternClassNodeImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternClassNodeImpl.java
@@ -42,6 +42,7 @@ import org.eclipse.qvtd.umlx.TxPackageNode;
import org.eclipse.qvtd.umlx.UMLXNamedElement;
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;
/**
@@ -53,14 +54,14 @@ import org.eclipse.qvtd.umlx.util.UMLXVisitor;
* </p>
* <ul>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#getName <em>Name</em>}</li>
- * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#isIsAnon <em>Is Anon</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#isIsMany <em>Is Many</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#isIsNullFree <em>Is Null Free</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#isIsOrdered <em>Is Ordered</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#isIsRequired <em>Is Required</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#isIsUnique <em>Is Unique</em>}</li>
- * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#getOutgoing <em>Outgoing</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#getReferredEClassifier <em>Referred EClassifier</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#isIsAnon <em>Is Anon</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#getOutgoing <em>Outgoing</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#getRelDomainNode <em>Rel Domain Node</em>}</li>
* </ul>
*
@@ -88,26 +89,6 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
protected String name = NAME_EDEFAULT;
/**
- * The default value of the '{@link #isIsAnon() <em>Is Anon</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #isIsAnon()
- * @generated
- * @ordered
- */
- protected static final boolean IS_ANON_EDEFAULT = false;
-
- /**
- * The cached value of the '{@link #isIsAnon() <em>Is Anon</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #isIsAnon()
- * @generated
- * @ordered
- */
- protected boolean isAnon = IS_ANON_EDEFAULT;
-
- /**
* The default value of the '{@link #isIsMany() <em>Is Many</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -208,24 +189,44 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
protected boolean isUnique = IS_UNIQUE_EDEFAULT;
/**
- * The cached value of the '{@link #getOutgoing() <em>Outgoing</em>}' reference list.
+ * The cached value of the '{@link #getReferredEClassifier() <em>Referred EClassifier</em>}' reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see #getOutgoing()
+ * @see #getReferredEClassifier()
* @generated
* @ordered
*/
- protected EList<RelPatternEdge> outgoing;
+ protected EClassifier referredEClassifier;
/**
- * The cached value of the '{@link #getReferredEClassifier() <em>Referred EClassifier</em>}' reference.
+ * The default value of the '{@link #isIsAnon() <em>Is Anon</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
- * @see #getReferredEClassifier()
+ * @see #isIsAnon()
* @generated
* @ordered
*/
- protected EClassifier referredEClassifier;
+ protected static final boolean IS_ANON_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsAnon() <em>Is Anon</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsAnon()
+ * @generated
+ * @ordered
+ */
+ protected boolean isAnon = IS_ANON_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getOutgoing() <em>Outgoing</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOutgoing()
+ * @generated
+ * @ordered
+ */
+ protected EList<RelPatternEdge> outgoing;
/**
* The cached value of the '{@link #getRelDomainNode() <em>Rel Domain Node</em>}' reference.
@@ -665,8 +666,6 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
switch (featureID) {
case UMLXPackage.REL_PATTERN_CLASS_NODE__NAME:
return getName();
- case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ANON:
- return isIsAnon();
case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_MANY:
return isIsMany();
case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_NULL_FREE:
@@ -677,11 +676,13 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
return isIsRequired();
case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_UNIQUE:
return isIsUnique();
- case UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING:
- return getOutgoing();
case UMLXPackage.REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER:
if (resolve) return getReferredEClassifier();
return basicGetReferredEClassifier();
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ANON:
+ return isIsAnon();
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING:
+ return getOutgoing();
case UMLXPackage.REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE:
if (resolve) return getRelDomainNode();
return basicGetRelDomainNode();
@@ -701,9 +702,6 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
case UMLXPackage.REL_PATTERN_CLASS_NODE__NAME:
setName((String)newValue);
return;
- case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ANON:
- setIsAnon((Boolean)newValue);
- return;
case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_MANY:
setIsMany((Boolean)newValue);
return;
@@ -719,13 +717,16 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_UNIQUE:
setIsUnique((Boolean)newValue);
return;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER:
+ setReferredEClassifier((EClassifier)newValue);
+ return;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ANON:
+ setIsAnon((Boolean)newValue);
+ return;
case UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING:
getOutgoing().clear();
getOutgoing().addAll((Collection<? extends RelPatternEdge>)newValue);
return;
- case UMLXPackage.REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER:
- setReferredEClassifier((EClassifier)newValue);
- return;
case UMLXPackage.REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE:
setRelDomainNode((RelDomainNode)newValue);
return;
@@ -744,9 +745,6 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
case UMLXPackage.REL_PATTERN_CLASS_NODE__NAME:
setName(NAME_EDEFAULT);
return;
- case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ANON:
- setIsAnon(IS_ANON_EDEFAULT);
- return;
case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_MANY:
setIsMany(IS_MANY_EDEFAULT);
return;
@@ -762,12 +760,15 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_UNIQUE:
setIsUnique(IS_UNIQUE_EDEFAULT);
return;
- case UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING:
- getOutgoing().clear();
- return;
case UMLXPackage.REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER:
setReferredEClassifier((EClassifier)null);
return;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ANON:
+ setIsAnon(IS_ANON_EDEFAULT);
+ return;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING:
+ getOutgoing().clear();
+ return;
case UMLXPackage.REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE:
setRelDomainNode((RelDomainNode)null);
return;
@@ -785,8 +786,6 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
switch (featureID) {
case UMLXPackage.REL_PATTERN_CLASS_NODE__NAME:
return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
- case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ANON:
- return isAnon != IS_ANON_EDEFAULT;
case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_MANY:
return isMany != IS_MANY_EDEFAULT;
case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_NULL_FREE:
@@ -797,10 +796,12 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
return isRequired != IS_REQUIRED_EDEFAULT;
case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_UNIQUE:
return isUnique != IS_UNIQUE_EDEFAULT;
- case UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING:
- return outgoing != null && !outgoing.isEmpty();
case UMLXPackage.REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER:
return referredEClassifier != null;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ANON:
+ return isAnon != IS_ANON_EDEFAULT;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING:
+ return outgoing != null && !outgoing.isEmpty();
case UMLXPackage.REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE:
return relDomainNode != null;
}
@@ -820,6 +821,17 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
default: return -1;
}
}
+ if (baseClass == UMLXTypedElement.class) {
+ switch (derivedFeatureID) {
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_MANY: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_NULL_FREE: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ORDERED: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_REQUIRED: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_UNIQUE: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE;
+ case UMLXPackage.REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER: return UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER;
+ default: return -1;
+ }
+ }
return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
}
@@ -836,6 +848,17 @@ public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPa
default: return -1;
}
}
+ if (baseClass == UMLXTypedElement.class) {
+ switch (baseFeatureID) {
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY: return UMLXPackage.REL_PATTERN_CLASS_NODE__IS_MANY;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE: return UMLXPackage.REL_PATTERN_CLASS_NODE__IS_NULL_FREE;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED: return UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ORDERED;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED: return UMLXPackage.REL_PATTERN_CLASS_NODE__IS_REQUIRED;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE: return UMLXPackage.REL_PATTERN_CLASS_NODE__IS_UNIQUE;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER: return UMLXPackage.REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER;
+ default: return -1;
+ }
+ }
return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
}
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 52f637d2b..475018b33 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
@@ -51,6 +51,7 @@ 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;
/**
@@ -187,6 +188,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public void setSource(RelPatternClassNode newSource) {
if (newSource != source) {
NotificationChain msgs = null;
@@ -374,6 +376,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateCompatibleMemberPropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -569,6 +572,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateSourceIsClassNode(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -609,6 +613,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateSourceIsEClass(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -669,6 +674,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateCompatibleSourceIndex(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -709,6 +715,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateCompatibleRestPropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -802,7 +809,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
throw (InvalidValueException)CAUGHT_sourceClassNode;
}
@SuppressWarnings("null")
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = ((RelPatternClassNode)CAUGHT_sourceClassNode).getReferredEClassifier();
+ 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;
}
@@ -816,7 +823,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
throw (InvalidValueException)CAUGHT_targetClassNode;
}
@SuppressWarnings("null")
- final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier_0 = ((RelPatternClassNode)CAUGHT_targetClassNode).getReferredEClassifier();
+ 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;
}
@@ -848,11 +855,11 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
if (CAUGHT_sourceClassNode instanceof InvalidValueException) {
throw (InvalidValueException)CAUGHT_sourceClassNode;
}
- final /*@Thrown*/ boolean isMany = ((RelPatternClassNode)CAUGHT_sourceClassNode).isIsMany();
+ final /*@Thrown*/ boolean isMany = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsMany();
if (CAUGHT_targetClassNode instanceof InvalidValueException) {
throw (InvalidValueException)CAUGHT_targetClassNode;
}
- final /*@Thrown*/ boolean isMany_0 = ((RelPatternClassNode)CAUGHT_targetClassNode).isIsMany();
+ final /*@Thrown*/ boolean isMany_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsMany();
final /*@Thrown*/ boolean eq_1 = isMany == isMany_0;
CAUGHT_eq_1 = eq_1;
}
@@ -870,11 +877,11 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
if (CAUGHT_sourceClassNode instanceof InvalidValueException) {
throw (InvalidValueException)CAUGHT_sourceClassNode;
}
- final /*@Thrown*/ boolean isNullFree = ((RelPatternClassNode)CAUGHT_sourceClassNode).isIsNullFree();
+ final /*@Thrown*/ boolean isNullFree = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsNullFree();
if (CAUGHT_targetClassNode instanceof InvalidValueException) {
throw (InvalidValueException)CAUGHT_targetClassNode;
}
- final /*@Thrown*/ boolean isNullFree_0 = ((RelPatternClassNode)CAUGHT_targetClassNode).isIsNullFree();
+ final /*@Thrown*/ boolean isNullFree_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsNullFree();
final /*@Thrown*/ boolean eq_2 = isNullFree == isNullFree_0;
CAUGHT_eq_2 = eq_2;
}
@@ -892,11 +899,11 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
if (CAUGHT_sourceClassNode instanceof InvalidValueException) {
throw (InvalidValueException)CAUGHT_sourceClassNode;
}
- final /*@Thrown*/ boolean isOrdered = ((RelPatternClassNode)CAUGHT_sourceClassNode).isIsOrdered();
+ final /*@Thrown*/ boolean isOrdered = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsOrdered();
if (CAUGHT_targetClassNode instanceof InvalidValueException) {
throw (InvalidValueException)CAUGHT_targetClassNode;
}
- final /*@Thrown*/ boolean isOrdered_0 = ((RelPatternClassNode)CAUGHT_targetClassNode).isIsOrdered();
+ final /*@Thrown*/ boolean isOrdered_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsOrdered();
final /*@Thrown*/ boolean eq_3 = isOrdered == isOrdered_0;
CAUGHT_eq_3 = eq_3;
}
@@ -914,11 +921,11 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
if (CAUGHT_sourceClassNode instanceof InvalidValueException) {
throw (InvalidValueException)CAUGHT_sourceClassNode;
}
- final /*@Thrown*/ boolean isUnique = ((RelPatternClassNode)CAUGHT_sourceClassNode).isIsUnique();
+ final /*@Thrown*/ boolean isUnique = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsUnique();
if (CAUGHT_targetClassNode instanceof InvalidValueException) {
throw (InvalidValueException)CAUGHT_targetClassNode;
}
- final /*@Thrown*/ boolean isUnique_0 = ((RelPatternClassNode)CAUGHT_targetClassNode).isIsUnique();
+ final /*@Thrown*/ boolean isUnique_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsUnique();
final /*@Thrown*/ boolean eq_4 = isUnique == isUnique_0;
CAUGHT_eq_4 = eq_4;
}
@@ -947,6 +954,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateCompatibleEAttributePropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -1042,6 +1050,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateCompatiblePropertySource(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -1136,6 +1145,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateCompatibleSourceMultiplicity(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -1187,6 +1197,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateCompatibleEReferencePropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternExpressionNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternExpressionNodeImpl.java
index 2d94286d5..e93ecc20e 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternExpressionNodeImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternExpressionNodeImpl.java
@@ -10,9 +10,7 @@
*/
package org.eclipse.qvtd.umlx.impl;
-import org.eclipse.emf.common.notify.Notification;
import org.eclipse.emf.ecore.EClass;
-import org.eclipse.emf.ecore.impl.ENotificationImpl;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.qvtd.umlx.RelPatternExpressionNode;
import org.eclipse.qvtd.umlx.UMLXPackage;
@@ -22,37 +20,11 @@ import org.eclipse.qvtd.umlx.util.UMLXVisitor;
* <!-- begin-user-doc -->
* An implementation of the model object '<em><b>Rel Constraint Node</b></em>'.
* <!-- end-user-doc -->
- * <p>
- * The following features are implemented:
- * </p>
- * <ul>
- * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternExpressionNodeImpl#getExpression <em>Expression</em>}</li>
- * </ul>
*
* @generated
*/
public class RelPatternExpressionNodeImpl extends RelPatternNodeImpl implements RelPatternExpressionNode {
/**
- * The default value of the '{@link #getExpression() <em>Expression</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getExpression()
- * @generated
- * @ordered
- */
- protected static final String EXPRESSION_EDEFAULT = null;
-
- /**
- * The cached value of the '{@link #getExpression() <em>Expression</em>}' attribute.
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @see #getExpression()
- * @generated
- * @ordered
- */
- protected String expression = EXPRESSION_EDEFAULT;
-
- /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -72,87 +44,6 @@ public class RelPatternExpressionNodeImpl extends RelPatternNodeImpl implements
}
/**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String getExpression() {
- return expression;
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void setExpression(String newExpression) {
- String oldExpression = expression;
- expression = newExpression;
- if (eNotificationRequired())
- eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.REL_PATTERN_EXPRESSION_NODE__EXPRESSION, oldExpression, expression));
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public Object eGet(int featureID, boolean resolve, boolean coreType) {
- switch (featureID) {
- case UMLXPackage.REL_PATTERN_EXPRESSION_NODE__EXPRESSION:
- return getExpression();
- }
- return super.eGet(featureID, resolve, coreType);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eSet(int featureID, Object newValue) {
- switch (featureID) {
- case UMLXPackage.REL_PATTERN_EXPRESSION_NODE__EXPRESSION:
- setExpression((String)newValue);
- return;
- }
- super.eSet(featureID, newValue);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public void eUnset(int featureID) {
- switch (featureID) {
- case UMLXPackage.REL_PATTERN_EXPRESSION_NODE__EXPRESSION:
- setExpression(EXPRESSION_EDEFAULT);
- return;
- }
- super.eUnset(featureID);
- }
-
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public boolean eIsSet(int featureID) {
- switch (featureID) {
- case UMLXPackage.REL_PATTERN_EXPRESSION_NODE__EXPRESSION:
- return EXPRESSION_EDEFAULT == null ? expression != null : !EXPRESSION_EDEFAULT.equals(expression);
- }
- return super.eIsSet(featureID);
- }
-
- /**
* {@inheritDoc}
* @generated
*/
@@ -161,14 +52,4 @@ public class RelPatternExpressionNodeImpl extends RelPatternNodeImpl implements
return visitor.visitRelPatternExpressionNode(this);
}
- /**
- * <!-- begin-user-doc -->
- * <!-- end-user-doc -->
- * @generated
- */
- @Override
- public String toString() {
- return super.toString();
- }
-
} //RelConstraintNodeImpl
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternNodeImpl.java
index a2e290a51..ad53dab10 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternNodeImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternNodeImpl.java
@@ -17,10 +17,12 @@ import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.util.InternalEList;
import org.eclipse.qvtd.umlx.RelDomainNode;
+import org.eclipse.qvtd.umlx.RelInvocationEdge;
import org.eclipse.qvtd.umlx.RelPatternNode;
import org.eclipse.qvtd.umlx.RelPatternEdge;
import org.eclipse.qvtd.umlx.UMLXPackage;
@@ -34,8 +36,10 @@ import org.eclipse.qvtd.umlx.UMLXPackage;
* </p>
* <ul>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#getIncoming <em>Incoming</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#getInitExpressionLines <em>Init Expression Lines</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#isIsRoot <em>Is Root</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#getOwningRelDomainNode <em>Owning Rel Domain Node</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#getInvokingRelInvocationEdges <em>Invoking Rel Invocation Edges</em>}</li>
* </ul>
*
* @generated
@@ -51,6 +55,15 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte
*/
protected EList<RelPatternEdge> incoming;
/**
+ * The cached value of the '{@link #getInitExpressionLines() <em>Init Expression Lines</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitExpressionLines()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> initExpressionLines;
+ /**
* The default value of the '{@link #isIsRoot() <em>Is Root</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -69,6 +82,15 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte
*/
protected boolean isRoot = IS_ROOT_EDEFAULT;
/**
+ * The cached value of the '{@link #getInvokingRelInvocationEdges() <em>Invoking Rel Invocation Edges</em>}' reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInvokingRelInvocationEdges()
+ * @generated
+ * @ordered
+ */
+ protected EList<RelInvocationEdge> invokingRelInvocationEdges;
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -106,6 +128,19 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte
* @generated
*/
@Override
+ public EList<String> getInitExpressionLines() {
+ if (initExpressionLines == null) {
+ initExpressionLines = new EDataTypeUniqueEList<String>(String.class, this, UMLXPackage.REL_PATTERN_NODE__INIT_EXPRESSION_LINES);
+ }
+ return initExpressionLines;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public boolean isIsRoot() {
return isRoot;
}
@@ -172,6 +207,19 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte
* @generated
*/
@Override
+ public EList<RelInvocationEdge> getInvokingRelInvocationEdges() {
+ if (invokingRelInvocationEdges == null) {
+ invokingRelInvocationEdges = new EObjectWithInverseResolvingEList<RelInvocationEdge>(RelInvocationEdge.class, this, UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES, UMLXPackage.REL_INVOCATION_EDGE__INVOKING_REL_PATTERN_NODE);
+ }
+ return invokingRelInvocationEdges;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public String toString() {
return super.toString();
}
@@ -191,6 +239,8 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte
if (eInternalContainer() != null)
msgs = eBasicRemoveFromContainer(msgs);
return basicSetOwningRelDomainNode((RelDomainNode)otherEnd, msgs);
+ case UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getInvokingRelInvocationEdges()).basicAdd(otherEnd, msgs);
}
return super.eInverseAdd(otherEnd, featureID, msgs);
}
@@ -207,6 +257,8 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte
return ((InternalEList<?>)getIncoming()).basicRemove(otherEnd, msgs);
case UMLXPackage.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE:
return basicSetOwningRelDomainNode(null, msgs);
+ case UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES:
+ return ((InternalEList<?>)getInvokingRelInvocationEdges()).basicRemove(otherEnd, msgs);
}
return super.eInverseRemove(otherEnd, featureID, msgs);
}
@@ -235,10 +287,14 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte
switch (featureID) {
case UMLXPackage.REL_PATTERN_NODE__INCOMING:
return getIncoming();
+ case UMLXPackage.REL_PATTERN_NODE__INIT_EXPRESSION_LINES:
+ return getInitExpressionLines();
case UMLXPackage.REL_PATTERN_NODE__IS_ROOT:
return isIsRoot();
case UMLXPackage.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE:
return getOwningRelDomainNode();
+ case UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES:
+ return getInvokingRelInvocationEdges();
}
return super.eGet(featureID, resolve, coreType);
}
@@ -256,12 +312,20 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte
getIncoming().clear();
getIncoming().addAll((Collection<? extends RelPatternEdge>)newValue);
return;
+ case UMLXPackage.REL_PATTERN_NODE__INIT_EXPRESSION_LINES:
+ getInitExpressionLines().clear();
+ getInitExpressionLines().addAll((Collection<? extends String>)newValue);
+ return;
case UMLXPackage.REL_PATTERN_NODE__IS_ROOT:
setIsRoot((Boolean)newValue);
return;
case UMLXPackage.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE:
setOwningRelDomainNode((RelDomainNode)newValue);
return;
+ case UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES:
+ getInvokingRelInvocationEdges().clear();
+ getInvokingRelInvocationEdges().addAll((Collection<? extends RelInvocationEdge>)newValue);
+ return;
}
super.eSet(featureID, newValue);
}
@@ -277,12 +341,18 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte
case UMLXPackage.REL_PATTERN_NODE__INCOMING:
getIncoming().clear();
return;
+ case UMLXPackage.REL_PATTERN_NODE__INIT_EXPRESSION_LINES:
+ getInitExpressionLines().clear();
+ return;
case UMLXPackage.REL_PATTERN_NODE__IS_ROOT:
setIsRoot(IS_ROOT_EDEFAULT);
return;
case UMLXPackage.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE:
setOwningRelDomainNode((RelDomainNode)null);
return;
+ case UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES:
+ getInvokingRelInvocationEdges().clear();
+ return;
}
super.eUnset(featureID);
}
@@ -297,10 +367,14 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte
switch (featureID) {
case UMLXPackage.REL_PATTERN_NODE__INCOMING:
return incoming != null && !incoming.isEmpty();
+ case UMLXPackage.REL_PATTERN_NODE__INIT_EXPRESSION_LINES:
+ return initExpressionLines != null && !initExpressionLines.isEmpty();
case UMLXPackage.REL_PATTERN_NODE__IS_ROOT:
return isRoot != IS_ROOT_EDEFAULT;
case UMLXPackage.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE:
return getOwningRelDomainNode() != null;
+ case UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES:
+ return invokingRelInvocationEdges != null && !invokingRelInvocationEdges.isEmpty();
}
return super.eIsSet(featureID);
}
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxDiagramImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxDiagramImpl.java
index 1fe711b39..348baec90 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxDiagramImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxDiagramImpl.java
@@ -35,6 +35,7 @@ import org.eclipse.qvtd.umlx.RelDiagram;
import org.eclipse.qvtd.umlx.TxDiagram;
import org.eclipse.qvtd.umlx.TxImportNode;
import org.eclipse.qvtd.umlx.TxKeyNode;
+import org.eclipse.qvtd.umlx.TxQueryNode;
import org.eclipse.qvtd.umlx.TxTypedModelNode;
import org.eclipse.qvtd.umlx.UMLXPackage;
import org.eclipse.qvtd.umlx.UMLXTables;
@@ -51,6 +52,7 @@ import org.eclipse.qvtd.umlx.util.UMLXVisitor;
* <li>{@link org.eclipse.qvtd.umlx.impl.TxDiagramImpl#getOwnedRelDiagrams <em>Owned Rel Diagrams</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.TxDiagramImpl#getOwnedTxImportNodes <em>Owned Tx Import Nodes</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.TxDiagramImpl#getOwnedTxKeyNodes <em>Owned Tx Key Nodes</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxDiagramImpl#getOwnedTxQueryNodes <em>Owned Tx Query Nodes</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.TxDiagramImpl#getOwnedTxTypedModelNodes <em>Owned Tx Typed Model Nodes</em>}</li>
* <li>{@link org.eclipse.qvtd.umlx.impl.TxDiagramImpl#getPackage <em>Package</em>}</li>
* </ul>
@@ -89,6 +91,16 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
protected EList<TxKeyNode> ownedTxKeyNodes;
/**
+ * The cached value of the '{@link #getOwnedTxQueryNodes() <em>Owned Tx Query Nodes</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOwnedTxQueryNodes()
+ * @generated
+ * @ordered
+ */
+ protected EList<TxQueryNode> ownedTxQueryNodes;
+
+ /**
* The cached value of the '{@link #getOwnedTxTypedModelNodes() <em>Owned Tx Typed Model Nodes</em>}' containment reference list.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
@@ -180,6 +192,19 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
* @generated
*/
@Override
+ public EList<TxQueryNode> getOwnedTxQueryNodes() {
+ if (ownedTxQueryNodes == null) {
+ ownedTxQueryNodes = new EObjectContainmentWithInverseEList<TxQueryNode>(TxQueryNode.class, this, UMLXPackage.TX_DIAGRAM__OWNED_TX_QUERY_NODES, UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM);
+ }
+ return ownedTxQueryNodes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EList<TxTypedModelNode> getOwnedTxTypedModelNodes() {
if (ownedTxTypedModelNodes == null) {
ownedTxTypedModelNodes = new EObjectContainmentWithInverseEList<TxTypedModelNode>(TxTypedModelNode.class, this, UMLXPackage.TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES, UMLXPackage.TX_TYPED_MODEL_NODE__OWNING_TX_DIAGRAM);
@@ -215,6 +240,7 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateRelDiagramNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -284,6 +310,7 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
* <!-- end-user-doc -->
* @generated
*/
+ @Override
public boolean validateTxTypedModelNodeNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
/**
*
@@ -354,6 +381,76 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
* @generated
*/
@Override
+ public boolean validateTxQueryNodeNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ /**
+ *
+ * inv TxQueryNodeNamesAreUnique:
+ * let
+ * severity : Integer[1] = 'TxDiagram::TxQueryNodeNamesAreUnique'.getSeverity()
+ * in
+ * if severity <= 0
+ * then true
+ * else
+ * let result : Boolean[1] = ownedTxQueryNodes->isUnique(name)
+ * in
+ * 'TxDiagram::TxQueryNodeNamesAreUnique'.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_TxDiagram_c_c_TxQueryNodeNamesAreUnique);
+ 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;
+ try {
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ java.util.@NonNull List<TxQueryNode> ownedTxQueryNodes = this.getOwnedTxQueryNodes();
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_ownedTxQueryNodes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_TxQueryNode, ownedTxQueryNodes);
+ /*@Thrown*/ SetValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSetAccumulatorValue(UMLXTables.ORD_CLSSid_TxQueryNode);
+ @NonNull Iterator<Object> ITERATOR__1 = BOXED_ownedTxQueryNodes.iterator();
+ /*@Thrown*/ boolean result;
+ while (true) {
+ if (!ITERATOR__1.hasNext()) {
+ result = ValueUtil.TRUE_VALUE;
+ break;
+ }
+ @SuppressWarnings("null")
+ /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull TxQueryNode _1 = (TxQueryNode)ITERATOR__1.next();
+ /**
+ * name
+ */
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ java.lang.@NonNull String name = _1.getName();
+ //
+ if (accumulator.includes(name) == ValueUtil.TRUE_VALUE) {
+ result = ValueUtil.FALSE_VALUE; // Abort after second find
+ break;
+ }
+ else {
+ accumulator.add(name);
+ }
+ }
+ CAUGHT_result = result;
+ }
+ catch (Exception e) {
+ CAUGHT_result = ValueUtil.createInvalidValue(e);
+ }
+ final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxDiagram_c_c_TxQueryNodeNamesAreUnique, 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 String toString() {
return super.toString();
}
@@ -373,6 +470,8 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedTxImportNodes()).basicAdd(otherEnd, msgs);
case UMLXPackage.TX_DIAGRAM__OWNED_TX_KEY_NODES:
return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedTxKeyNodes()).basicAdd(otherEnd, msgs);
+ case UMLXPackage.TX_DIAGRAM__OWNED_TX_QUERY_NODES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedTxQueryNodes()).basicAdd(otherEnd, msgs);
case UMLXPackage.TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES:
return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedTxTypedModelNodes()).basicAdd(otherEnd, msgs);
}
@@ -393,6 +492,8 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
return ((InternalEList<?>)getOwnedTxImportNodes()).basicRemove(otherEnd, msgs);
case UMLXPackage.TX_DIAGRAM__OWNED_TX_KEY_NODES:
return ((InternalEList<?>)getOwnedTxKeyNodes()).basicRemove(otherEnd, msgs);
+ case UMLXPackage.TX_DIAGRAM__OWNED_TX_QUERY_NODES:
+ return ((InternalEList<?>)getOwnedTxQueryNodes()).basicRemove(otherEnd, msgs);
case UMLXPackage.TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES:
return ((InternalEList<?>)getOwnedTxTypedModelNodes()).basicRemove(otherEnd, msgs);
}
@@ -413,6 +514,8 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
return getOwnedTxImportNodes();
case UMLXPackage.TX_DIAGRAM__OWNED_TX_KEY_NODES:
return getOwnedTxKeyNodes();
+ case UMLXPackage.TX_DIAGRAM__OWNED_TX_QUERY_NODES:
+ return getOwnedTxQueryNodes();
case UMLXPackage.TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES:
return getOwnedTxTypedModelNodes();
case UMLXPackage.TX_DIAGRAM__PACKAGE:
@@ -442,6 +545,10 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
getOwnedTxKeyNodes().clear();
getOwnedTxKeyNodes().addAll((Collection<? extends TxKeyNode>)newValue);
return;
+ case UMLXPackage.TX_DIAGRAM__OWNED_TX_QUERY_NODES:
+ getOwnedTxQueryNodes().clear();
+ getOwnedTxQueryNodes().addAll((Collection<? extends TxQueryNode>)newValue);
+ return;
case UMLXPackage.TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES:
getOwnedTxTypedModelNodes().clear();
getOwnedTxTypedModelNodes().addAll((Collection<? extends TxTypedModelNode>)newValue);
@@ -470,6 +577,9 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
case UMLXPackage.TX_DIAGRAM__OWNED_TX_KEY_NODES:
getOwnedTxKeyNodes().clear();
return;
+ case UMLXPackage.TX_DIAGRAM__OWNED_TX_QUERY_NODES:
+ getOwnedTxQueryNodes().clear();
+ return;
case UMLXPackage.TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES:
getOwnedTxTypedModelNodes().clear();
return;
@@ -494,6 +604,8 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram {
return ownedTxImportNodes != null && !ownedTxImportNodes.isEmpty();
case UMLXPackage.TX_DIAGRAM__OWNED_TX_KEY_NODES:
return ownedTxKeyNodes != null && !ownedTxKeyNodes.isEmpty();
+ case UMLXPackage.TX_DIAGRAM__OWNED_TX_QUERY_NODES:
+ return ownedTxQueryNodes != null && !ownedTxQueryNodes.isEmpty();
case UMLXPackage.TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES:
return ownedTxTypedModelNodes != null && !ownedTxTypedModelNodes.isEmpty();
case UMLXPackage.TX_DIAGRAM__PACKAGE:
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxParameterNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxParameterNodeImpl.java
new file mode 100644
index 000000000..581885c63
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxParameterNodeImpl.java
@@ -0,0 +1,671 @@
+/**
+ * Copyright (c) 2016 Willink Transformations and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ */
+package org.eclipse.qvtd.umlx.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EcoreUtil;
+
+import org.eclipse.jdt.annotation.NonNull;
+
+import org.eclipse.qvtd.umlx.TxParameterNode;
+import org.eclipse.qvtd.umlx.TxQueryNode;
+import org.eclipse.qvtd.umlx.UMLXNamedElement;
+import org.eclipse.qvtd.umlx.UMLXPackage;
+import org.eclipse.qvtd.umlx.UMLXTypedElement;
+
+import org.eclipse.qvtd.umlx.util.UMLXVisitor;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tx Parameter Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl#isIsMany <em>Is Many</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl#isIsNullFree <em>Is Null Free</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl#isIsOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl#isIsRequired <em>Is Required</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl#isIsUnique <em>Is Unique</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl#getReferredEClassifier <em>Referred EClassifier</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxParameterNodeImpl#getOwningTxQueryNode <em>Owning Tx Query Node</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TxParameterNodeImpl extends TxNodeImpl implements TxParameterNode {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsMany() <em>Is Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsMany()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_MANY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsMany() <em>Is Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsMany()
+ * @generated
+ * @ordered
+ */
+ protected boolean isMany = IS_MANY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsNullFree() <em>Is Null Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsNullFree()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_NULL_FREE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isIsNullFree() <em>Is Null Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsNullFree()
+ * @generated
+ * @ordered
+ */
+ protected boolean isNullFree = IS_NULL_FREE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ORDERED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsOrdered()
+ * @generated
+ * @ordered
+ */
+ protected boolean isOrdered = IS_ORDERED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsRequired() <em>Is Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsRequired()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REQUIRED_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isIsRequired() <em>Is Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsRequired()
+ * @generated
+ * @ordered
+ */
+ protected boolean isRequired = IS_REQUIRED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_UNIQUE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isIsUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsUnique()
+ * @generated
+ * @ordered
+ */
+ protected boolean isUnique = IS_UNIQUE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getReferredEClassifier() <em>Referred EClassifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReferredEClassifier()
+ * @generated
+ * @ordered
+ */
+ protected EClassifier referredEClassifier;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TxParameterNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return UMLXPackage.Literals.TX_PARAMETER_NODE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_PARAMETER_NODE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsMany() {
+ return isMany;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsMany(boolean newIsMany) {
+ boolean oldIsMany = isMany;
+ isMany = newIsMany;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_PARAMETER_NODE__IS_MANY, oldIsMany, isMany));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsNullFree() {
+ return isNullFree;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsNullFree(boolean newIsNullFree) {
+ boolean oldIsNullFree = isNullFree;
+ isNullFree = newIsNullFree;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_PARAMETER_NODE__IS_NULL_FREE, oldIsNullFree, isNullFree));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsOrdered() {
+ return isOrdered;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsOrdered(boolean newIsOrdered) {
+ boolean oldIsOrdered = isOrdered;
+ isOrdered = newIsOrdered;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_PARAMETER_NODE__IS_ORDERED, oldIsOrdered, isOrdered));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsRequired() {
+ return isRequired;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsRequired(boolean newIsRequired) {
+ boolean oldIsRequired = isRequired;
+ isRequired = newIsRequired;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_PARAMETER_NODE__IS_REQUIRED, oldIsRequired, isRequired));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsUnique() {
+ return isUnique;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsUnique(boolean newIsUnique) {
+ boolean oldIsUnique = isUnique;
+ isUnique = newIsUnique;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_PARAMETER_NODE__IS_UNIQUE, oldIsUnique, isUnique));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClassifier getReferredEClassifier() {
+ if (referredEClassifier != null && referredEClassifier.eIsProxy()) {
+ InternalEObject oldReferredEClassifier = (InternalEObject)referredEClassifier;
+ referredEClassifier = (EClassifier)eResolveProxy(oldReferredEClassifier);
+ if (referredEClassifier != oldReferredEClassifier) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, UMLXPackage.TX_PARAMETER_NODE__REFERRED_ECLASSIFIER, oldReferredEClassifier, referredEClassifier));
+ }
+ }
+ return referredEClassifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClassifier basicGetReferredEClassifier() {
+ return referredEClassifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setReferredEClassifier(EClassifier newReferredEClassifier) {
+ EClassifier oldReferredEClassifier = referredEClassifier;
+ referredEClassifier = newReferredEClassifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_PARAMETER_NODE__REFERRED_ECLASSIFIER, oldReferredEClassifier, referredEClassifier));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TxQueryNode getOwningTxQueryNode() {
+ if (eContainerFeatureID() != UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE) return null;
+ return (TxQueryNode)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOwningTxQueryNode(TxQueryNode newOwningTxQueryNode, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newOwningTxQueryNode, UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setOwningTxQueryNode(TxQueryNode newOwningTxQueryNode) {
+ if (newOwningTxQueryNode != eInternalContainer() || (eContainerFeatureID() != UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE && newOwningTxQueryNode != null)) {
+ if (EcoreUtil.isAncestor(this, newOwningTxQueryNode))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newOwningTxQueryNode != null)
+ msgs = ((InternalEObject)newOwningTxQueryNode).eInverseAdd(this, UMLXPackage.TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES, TxQueryNode.class, msgs);
+ msgs = basicSetOwningTxQueryNode(newOwningTxQueryNode, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE, newOwningTxQueryNode, newOwningTxQueryNode));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return super.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetOwningTxQueryNode((TxQueryNode)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE:
+ return basicSetOwningTxQueryNode(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE:
+ return eInternalContainer().eInverseRemove(this, UMLXPackage.TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES, TxQueryNode.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case UMLXPackage.TX_PARAMETER_NODE__NAME:
+ return getName();
+ case UMLXPackage.TX_PARAMETER_NODE__IS_MANY:
+ return isIsMany();
+ case UMLXPackage.TX_PARAMETER_NODE__IS_NULL_FREE:
+ return isIsNullFree();
+ case UMLXPackage.TX_PARAMETER_NODE__IS_ORDERED:
+ return isIsOrdered();
+ case UMLXPackage.TX_PARAMETER_NODE__IS_REQUIRED:
+ return isIsRequired();
+ case UMLXPackage.TX_PARAMETER_NODE__IS_UNIQUE:
+ return isIsUnique();
+ case UMLXPackage.TX_PARAMETER_NODE__REFERRED_ECLASSIFIER:
+ if (resolve) return getReferredEClassifier();
+ return basicGetReferredEClassifier();
+ case UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE:
+ return getOwningTxQueryNode();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case UMLXPackage.TX_PARAMETER_NODE__NAME:
+ setName((String)newValue);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_MANY:
+ setIsMany((Boolean)newValue);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_NULL_FREE:
+ setIsNullFree((Boolean)newValue);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_ORDERED:
+ setIsOrdered((Boolean)newValue);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_REQUIRED:
+ setIsRequired((Boolean)newValue);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_UNIQUE:
+ setIsUnique((Boolean)newValue);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__REFERRED_ECLASSIFIER:
+ setReferredEClassifier((EClassifier)newValue);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE:
+ setOwningTxQueryNode((TxQueryNode)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case UMLXPackage.TX_PARAMETER_NODE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_MANY:
+ setIsMany(IS_MANY_EDEFAULT);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_NULL_FREE:
+ setIsNullFree(IS_NULL_FREE_EDEFAULT);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_ORDERED:
+ setIsOrdered(IS_ORDERED_EDEFAULT);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_REQUIRED:
+ setIsRequired(IS_REQUIRED_EDEFAULT);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_UNIQUE:
+ setIsUnique(IS_UNIQUE_EDEFAULT);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__REFERRED_ECLASSIFIER:
+ setReferredEClassifier((EClassifier)null);
+ return;
+ case UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE:
+ setOwningTxQueryNode((TxQueryNode)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case UMLXPackage.TX_PARAMETER_NODE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case UMLXPackage.TX_PARAMETER_NODE__IS_MANY:
+ return isMany != IS_MANY_EDEFAULT;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_NULL_FREE:
+ return isNullFree != IS_NULL_FREE_EDEFAULT;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_ORDERED:
+ return isOrdered != IS_ORDERED_EDEFAULT;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_REQUIRED:
+ return isRequired != IS_REQUIRED_EDEFAULT;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_UNIQUE:
+ return isUnique != IS_UNIQUE_EDEFAULT;
+ case UMLXPackage.TX_PARAMETER_NODE__REFERRED_ECLASSIFIER:
+ return referredEClassifier != null;
+ case UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE:
+ return getOwningTxQueryNode() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == UMLXNamedElement.class) {
+ switch (derivedFeatureID) {
+ case UMLXPackage.TX_PARAMETER_NODE__NAME: return UMLXPackage.UMLX_NAMED_ELEMENT__NAME;
+ default: return -1;
+ }
+ }
+ if (baseClass == UMLXTypedElement.class) {
+ switch (derivedFeatureID) {
+ case UMLXPackage.TX_PARAMETER_NODE__IS_MANY: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_NULL_FREE: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_ORDERED: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_REQUIRED: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED;
+ case UMLXPackage.TX_PARAMETER_NODE__IS_UNIQUE: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE;
+ case UMLXPackage.TX_PARAMETER_NODE__REFERRED_ECLASSIFIER: return UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == UMLXNamedElement.class) {
+ switch (baseFeatureID) {
+ case UMLXPackage.UMLX_NAMED_ELEMENT__NAME: return UMLXPackage.TX_PARAMETER_NODE__NAME;
+ default: return -1;
+ }
+ }
+ if (baseClass == UMLXTypedElement.class) {
+ switch (baseFeatureID) {
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY: return UMLXPackage.TX_PARAMETER_NODE__IS_MANY;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE: return UMLXPackage.TX_PARAMETER_NODE__IS_NULL_FREE;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED: return UMLXPackage.TX_PARAMETER_NODE__IS_ORDERED;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED: return UMLXPackage.TX_PARAMETER_NODE__IS_REQUIRED;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE: return UMLXPackage.TX_PARAMETER_NODE__IS_UNIQUE;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER: return UMLXPackage.TX_PARAMETER_NODE__REFERRED_ECLASSIFIER;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * {@inheritDoc}
+ * @generated
+ */
+ @Override
+ public <R> R accept(@NonNull UMLXVisitor<R> visitor) {
+ return visitor.visitTxParameterNode(this);
+ }
+
+} //TxParameterNodeImpl
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxQueryNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxQueryNodeImpl.java
new file mode 100644
index 000000000..e8b9e5dc3
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxQueryNodeImpl.java
@@ -0,0 +1,841 @@
+/**
+ * Copyright (c) 2016 Willink Transformations and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ */
+package org.eclipse.qvtd.umlx.impl;
+
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.common.notify.NotificationChain;
+
+import org.eclipse.emf.common.util.DiagnosticChain;
+import org.eclipse.emf.common.util.EList;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
+import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
+import org.eclipse.emf.ecore.util.EcoreUtil;
+import org.eclipse.emf.ecore.util.InternalEList;
+
+import org.eclipse.jdt.annotation.NonNull;
+
+import org.eclipse.ocl.pivot.ids.TypeId;
+
+import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal;
+
+import org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation;
+
+import org.eclipse.ocl.pivot.library.string.CGStringGetSeverityOperation;
+import org.eclipse.ocl.pivot.library.string.CGStringLogDiagnosticOperation;
+
+import org.eclipse.ocl.pivot.utilities.ValueUtil;
+
+import org.eclipse.ocl.pivot.values.SetValue;
+
+import org.eclipse.qvtd.umlx.TxDiagram;
+import org.eclipse.qvtd.umlx.TxParameterNode;
+import org.eclipse.qvtd.umlx.TxQueryNode;
+import org.eclipse.qvtd.umlx.UMLXNamedElement;
+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;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Tx Query Node</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl#getName <em>Name</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl#isIsMany <em>Is Many</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl#isIsNullFree <em>Is Null Free</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl#isIsOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl#isIsRequired <em>Is Required</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl#isIsUnique <em>Is Unique</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl#getReferredEClassifier <em>Referred EClassifier</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl#getInitExpressionLines <em>Init Expression Lines</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl#getOwnedTxParameterNodes <em>Owned Tx Parameter Nodes</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.TxQueryNodeImpl#getOwningTxDiagram <em>Owning Tx Diagram</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class TxQueryNodeImpl extends TxNodeImpl implements TxQueryNode {
+ /**
+ * The default value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected static final String NAME_EDEFAULT = null;
+
+ /**
+ * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getName()
+ * @generated
+ * @ordered
+ */
+ protected String name = NAME_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsMany() <em>Is Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsMany()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_MANY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsMany() <em>Is Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsMany()
+ * @generated
+ * @ordered
+ */
+ protected boolean isMany = IS_MANY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsNullFree() <em>Is Null Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsNullFree()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_NULL_FREE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isIsNullFree() <em>Is Null Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsNullFree()
+ * @generated
+ * @ordered
+ */
+ protected boolean isNullFree = IS_NULL_FREE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ORDERED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsOrdered()
+ * @generated
+ * @ordered
+ */
+ protected boolean isOrdered = IS_ORDERED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsRequired() <em>Is Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsRequired()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REQUIRED_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isIsRequired() <em>Is Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsRequired()
+ * @generated
+ * @ordered
+ */
+ protected boolean isRequired = IS_REQUIRED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_UNIQUE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isIsUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsUnique()
+ * @generated
+ * @ordered
+ */
+ protected boolean isUnique = IS_UNIQUE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getReferredEClassifier() <em>Referred EClassifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReferredEClassifier()
+ * @generated
+ * @ordered
+ */
+ protected EClassifier referredEClassifier;
+
+ /**
+ * The cached value of the '{@link #getInitExpressionLines() <em>Init Expression Lines</em>}' attribute list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getInitExpressionLines()
+ * @generated
+ * @ordered
+ */
+ protected EList<String> initExpressionLines;
+
+ /**
+ * The cached value of the '{@link #getOwnedTxParameterNodes() <em>Owned Tx Parameter Nodes</em>}' containment reference list.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getOwnedTxParameterNodes()
+ * @generated
+ * @ordered
+ */
+ protected EList<TxParameterNode> ownedTxParameterNodes;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected TxQueryNodeImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return UMLXPackage.Literals.TX_QUERY_NODE;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setName(String newName) {
+ String oldName = name;
+ name = newName;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_QUERY_NODE__NAME, oldName, name));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsMany() {
+ return isMany;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsMany(boolean newIsMany) {
+ boolean oldIsMany = isMany;
+ isMany = newIsMany;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_QUERY_NODE__IS_MANY, oldIsMany, isMany));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsNullFree() {
+ return isNullFree;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsNullFree(boolean newIsNullFree) {
+ boolean oldIsNullFree = isNullFree;
+ isNullFree = newIsNullFree;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_QUERY_NODE__IS_NULL_FREE, oldIsNullFree, isNullFree));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsOrdered() {
+ return isOrdered;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsOrdered(boolean newIsOrdered) {
+ boolean oldIsOrdered = isOrdered;
+ isOrdered = newIsOrdered;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_QUERY_NODE__IS_ORDERED, oldIsOrdered, isOrdered));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsRequired() {
+ return isRequired;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsRequired(boolean newIsRequired) {
+ boolean oldIsRequired = isRequired;
+ isRequired = newIsRequired;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_QUERY_NODE__IS_REQUIRED, oldIsRequired, isRequired));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsUnique() {
+ return isUnique;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsUnique(boolean newIsUnique) {
+ boolean oldIsUnique = isUnique;
+ isUnique = newIsUnique;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_QUERY_NODE__IS_UNIQUE, oldIsUnique, isUnique));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClassifier getReferredEClassifier() {
+ if (referredEClassifier != null && referredEClassifier.eIsProxy()) {
+ InternalEObject oldReferredEClassifier = (InternalEObject)referredEClassifier;
+ referredEClassifier = (EClassifier)eResolveProxy(oldReferredEClassifier);
+ if (referredEClassifier != oldReferredEClassifier) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, UMLXPackage.TX_QUERY_NODE__REFERRED_ECLASSIFIER, oldReferredEClassifier, referredEClassifier));
+ }
+ }
+ return referredEClassifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClassifier basicGetReferredEClassifier() {
+ return referredEClassifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setReferredEClassifier(EClassifier newReferredEClassifier) {
+ EClassifier oldReferredEClassifier = referredEClassifier;
+ referredEClassifier = newReferredEClassifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_QUERY_NODE__REFERRED_ECLASSIFIER, oldReferredEClassifier, referredEClassifier));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<String> getInitExpressionLines() {
+ if (initExpressionLines == null) {
+ initExpressionLines = new EDataTypeUniqueEList<String>(String.class, this, UMLXPackage.TX_QUERY_NODE__INIT_EXPRESSION_LINES);
+ }
+ return initExpressionLines;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EList<TxParameterNode> getOwnedTxParameterNodes() {
+ if (ownedTxParameterNodes == null) {
+ ownedTxParameterNodes = new EObjectContainmentWithInverseEList<TxParameterNode>(TxParameterNode.class, this, UMLXPackage.TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES, UMLXPackage.TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE);
+ }
+ return ownedTxParameterNodes;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public TxDiagram getOwningTxDiagram() {
+ if (eContainerFeatureID() != UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM) return null;
+ return (TxDiagram)eInternalContainer();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public NotificationChain basicSetOwningTxDiagram(TxDiagram newOwningTxDiagram, NotificationChain msgs) {
+ msgs = eBasicSetContainer((InternalEObject)newOwningTxDiagram, UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM, msgs);
+ return msgs;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setOwningTxDiagram(TxDiagram newOwningTxDiagram) {
+ if (newOwningTxDiagram != eInternalContainer() || (eContainerFeatureID() != UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM && newOwningTxDiagram != null)) {
+ if (EcoreUtil.isAncestor(this, newOwningTxDiagram))
+ throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
+ NotificationChain msgs = null;
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ if (newOwningTxDiagram != null)
+ msgs = ((InternalEObject)newOwningTxDiagram).eInverseAdd(this, UMLXPackage.TX_DIAGRAM__OWNED_TX_QUERY_NODES, TxDiagram.class, msgs);
+ msgs = basicSetOwningTxDiagram(newOwningTxDiagram, msgs);
+ if (msgs != null) msgs.dispatch();
+ }
+ else if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM, newOwningTxDiagram, newOwningTxDiagram));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean validateParametersAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) {
+ /**
+ *
+ * inv ParametersAreUnique:
+ * let severity : Integer[1] = 'TxQueryNode::ParametersAreUnique'.getSeverity()
+ * in
+ * if severity <= 0
+ * then true
+ * else
+ * let result : Boolean[1] = ownedTxParameterNodes->isUnique(name)
+ * in
+ * 'TxQueryNode::ParametersAreUnique'.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_TxQueryNode_c_c_ParametersAreUnique);
+ 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;
+ try {
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ java.util.@NonNull List<TxParameterNode> ownedTxParameterNodes = this.getOwnedTxParameterNodes();
+ final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_ownedTxParameterNodes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_TxParameterNode, ownedTxParameterNodes);
+ /*@Thrown*/ SetValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSetAccumulatorValue(UMLXTables.ORD_CLSSid_TxParameterNode);
+ @NonNull Iterator<Object> ITERATOR__1 = BOXED_ownedTxParameterNodes.iterator();
+ /*@Thrown*/ boolean result;
+ while (true) {
+ if (!ITERATOR__1.hasNext()) {
+ result = ValueUtil.TRUE_VALUE;
+ break;
+ }
+ @SuppressWarnings("null")
+ /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull TxParameterNode _1 = (TxParameterNode)ITERATOR__1.next();
+ /**
+ * name
+ */
+ @SuppressWarnings("null")
+ final /*@NonInvalid*/ java.lang.@NonNull String name = _1.getName();
+ //
+ if (accumulator.includes(name) == ValueUtil.TRUE_VALUE) {
+ result = ValueUtil.FALSE_VALUE; // Abort after second find
+ break;
+ }
+ else {
+ accumulator.add(name);
+ }
+ }
+ CAUGHT_result = result;
+ }
+ catch (Exception e) {
+ CAUGHT_result = ValueUtil.createInvalidValue(e);
+ }
+ final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxQueryNode_c_c_ParametersAreUnique, 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 String toString() {
+ return super.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case UMLXPackage.TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES:
+ return ((InternalEList<InternalEObject>)(InternalEList<?>)getOwnedTxParameterNodes()).basicAdd(otherEnd, msgs);
+ case UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM:
+ if (eInternalContainer() != null)
+ msgs = eBasicRemoveFromContainer(msgs);
+ return basicSetOwningTxDiagram((TxDiagram)otherEnd, msgs);
+ }
+ return super.eInverseAdd(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eInverseRemove(InternalEObject otherEnd, int featureID, NotificationChain msgs) {
+ switch (featureID) {
+ case UMLXPackage.TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES:
+ return ((InternalEList<?>)getOwnedTxParameterNodes()).basicRemove(otherEnd, msgs);
+ case UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM:
+ return basicSetOwningTxDiagram(null, msgs);
+ }
+ return super.eInverseRemove(otherEnd, featureID, msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public NotificationChain eBasicRemoveFromContainerFeature(NotificationChain msgs) {
+ switch (eContainerFeatureID()) {
+ case UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM:
+ return eInternalContainer().eInverseRemove(this, UMLXPackage.TX_DIAGRAM__OWNED_TX_QUERY_NODES, TxDiagram.class, msgs);
+ }
+ return super.eBasicRemoveFromContainerFeature(msgs);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case UMLXPackage.TX_QUERY_NODE__NAME:
+ return getName();
+ case UMLXPackage.TX_QUERY_NODE__IS_MANY:
+ return isIsMany();
+ case UMLXPackage.TX_QUERY_NODE__IS_NULL_FREE:
+ return isIsNullFree();
+ case UMLXPackage.TX_QUERY_NODE__IS_ORDERED:
+ return isIsOrdered();
+ case UMLXPackage.TX_QUERY_NODE__IS_REQUIRED:
+ return isIsRequired();
+ case UMLXPackage.TX_QUERY_NODE__IS_UNIQUE:
+ return isIsUnique();
+ case UMLXPackage.TX_QUERY_NODE__REFERRED_ECLASSIFIER:
+ if (resolve) return getReferredEClassifier();
+ return basicGetReferredEClassifier();
+ case UMLXPackage.TX_QUERY_NODE__INIT_EXPRESSION_LINES:
+ return getInitExpressionLines();
+ case UMLXPackage.TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES:
+ return getOwnedTxParameterNodes();
+ case UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM:
+ return getOwningTxDiagram();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @SuppressWarnings("unchecked")
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case UMLXPackage.TX_QUERY_NODE__NAME:
+ setName((String)newValue);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__IS_MANY:
+ setIsMany((Boolean)newValue);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__IS_NULL_FREE:
+ setIsNullFree((Boolean)newValue);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__IS_ORDERED:
+ setIsOrdered((Boolean)newValue);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__IS_REQUIRED:
+ setIsRequired((Boolean)newValue);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__IS_UNIQUE:
+ setIsUnique((Boolean)newValue);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__REFERRED_ECLASSIFIER:
+ setReferredEClassifier((EClassifier)newValue);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__INIT_EXPRESSION_LINES:
+ getInitExpressionLines().clear();
+ getInitExpressionLines().addAll((Collection<? extends String>)newValue);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES:
+ getOwnedTxParameterNodes().clear();
+ getOwnedTxParameterNodes().addAll((Collection<? extends TxParameterNode>)newValue);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM:
+ setOwningTxDiagram((TxDiagram)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case UMLXPackage.TX_QUERY_NODE__NAME:
+ setName(NAME_EDEFAULT);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__IS_MANY:
+ setIsMany(IS_MANY_EDEFAULT);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__IS_NULL_FREE:
+ setIsNullFree(IS_NULL_FREE_EDEFAULT);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__IS_ORDERED:
+ setIsOrdered(IS_ORDERED_EDEFAULT);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__IS_REQUIRED:
+ setIsRequired(IS_REQUIRED_EDEFAULT);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__IS_UNIQUE:
+ setIsUnique(IS_UNIQUE_EDEFAULT);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__REFERRED_ECLASSIFIER:
+ setReferredEClassifier((EClassifier)null);
+ return;
+ case UMLXPackage.TX_QUERY_NODE__INIT_EXPRESSION_LINES:
+ getInitExpressionLines().clear();
+ return;
+ case UMLXPackage.TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES:
+ getOwnedTxParameterNodes().clear();
+ return;
+ case UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM:
+ setOwningTxDiagram((TxDiagram)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case UMLXPackage.TX_QUERY_NODE__NAME:
+ return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name);
+ case UMLXPackage.TX_QUERY_NODE__IS_MANY:
+ return isMany != IS_MANY_EDEFAULT;
+ case UMLXPackage.TX_QUERY_NODE__IS_NULL_FREE:
+ return isNullFree != IS_NULL_FREE_EDEFAULT;
+ case UMLXPackage.TX_QUERY_NODE__IS_ORDERED:
+ return isOrdered != IS_ORDERED_EDEFAULT;
+ case UMLXPackage.TX_QUERY_NODE__IS_REQUIRED:
+ return isRequired != IS_REQUIRED_EDEFAULT;
+ case UMLXPackage.TX_QUERY_NODE__IS_UNIQUE:
+ return isUnique != IS_UNIQUE_EDEFAULT;
+ case UMLXPackage.TX_QUERY_NODE__REFERRED_ECLASSIFIER:
+ return referredEClassifier != null;
+ case UMLXPackage.TX_QUERY_NODE__INIT_EXPRESSION_LINES:
+ return initExpressionLines != null && !initExpressionLines.isEmpty();
+ case UMLXPackage.TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES:
+ return ownedTxParameterNodes != null && !ownedTxParameterNodes.isEmpty();
+ case UMLXPackage.TX_QUERY_NODE__OWNING_TX_DIAGRAM:
+ return getOwningTxDiagram() != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) {
+ if (baseClass == UMLXNamedElement.class) {
+ switch (derivedFeatureID) {
+ case UMLXPackage.TX_QUERY_NODE__NAME: return UMLXPackage.UMLX_NAMED_ELEMENT__NAME;
+ default: return -1;
+ }
+ }
+ if (baseClass == UMLXTypedElement.class) {
+ switch (derivedFeatureID) {
+ case UMLXPackage.TX_QUERY_NODE__IS_MANY: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY;
+ case UMLXPackage.TX_QUERY_NODE__IS_NULL_FREE: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE;
+ case UMLXPackage.TX_QUERY_NODE__IS_ORDERED: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED;
+ case UMLXPackage.TX_QUERY_NODE__IS_REQUIRED: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED;
+ case UMLXPackage.TX_QUERY_NODE__IS_UNIQUE: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE;
+ case UMLXPackage.TX_QUERY_NODE__REFERRED_ECLASSIFIER: return UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER;
+ default: return -1;
+ }
+ }
+ return super.eBaseStructuralFeatureID(derivedFeatureID, baseClass);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public int eDerivedStructuralFeatureID(int baseFeatureID, Class<?> baseClass) {
+ if (baseClass == UMLXNamedElement.class) {
+ switch (baseFeatureID) {
+ case UMLXPackage.UMLX_NAMED_ELEMENT__NAME: return UMLXPackage.TX_QUERY_NODE__NAME;
+ default: return -1;
+ }
+ }
+ if (baseClass == UMLXTypedElement.class) {
+ switch (baseFeatureID) {
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY: return UMLXPackage.TX_QUERY_NODE__IS_MANY;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE: return UMLXPackage.TX_QUERY_NODE__IS_NULL_FREE;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED: return UMLXPackage.TX_QUERY_NODE__IS_ORDERED;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED: return UMLXPackage.TX_QUERY_NODE__IS_REQUIRED;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE: return UMLXPackage.TX_QUERY_NODE__IS_UNIQUE;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER: return UMLXPackage.TX_QUERY_NODE__REFERRED_ECLASSIFIER;
+ default: return -1;
+ }
+ }
+ return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass);
+ }
+
+ /**
+ * {@inheritDoc}
+ * @generated
+ */
+ @Override
+ public <R> R accept(@NonNull UMLXVisitor<R> visitor) {
+ return visitor.visitTxQueryNode(this);
+ }
+
+} //TxQueryNodeImpl
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXElementImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXElementImpl.java
index b052a0d41..a638ec9c9 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXElementImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXElementImpl.java
@@ -13,6 +13,8 @@ package org.eclipse.qvtd.umlx.impl;
import java.util.Collection;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.InternalEObject;
import org.eclipse.emf.ecore.impl.MinimalEObjectImpl;
import org.eclipse.emf.ecore.util.EDataTypeUniqueEList;
import org.eclipse.jdt.annotation.NonNull;
@@ -87,6 +89,15 @@ public abstract class UMLXElementImpl extends MinimalEObjectImpl.Container imple
return UMLXToStringVisitor.toString(this);
}
+ @Override
+ protected void eBasicSetContainer(InternalEObject newContainer, int newContainerFeatureID) {
+ if (newContainer != null) {
+ EObject oldContainer = eInternalContainer();
+ assert (oldContainer == null) || oldContainer.eIsProxy() || (newContainer == oldContainer) || (oldContainer.eResource() == null);
+ }
+ super.eBasicSetContainer(newContainer, newContainerFeatureID);
+ }
+
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXFactoryImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXFactoryImpl.java
index 8a381af83..df0eb9abf 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXFactoryImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXFactoryImpl.java
@@ -76,7 +76,9 @@ public class UMLXFactoryImpl extends EFactoryImpl implements UMLXFactory {
case UMLXPackage.TX_KEY_NODE: return createTxKeyNode();
case UMLXPackage.TX_NODE: return createTxNode();
case UMLXPackage.TX_PACKAGE_NODE: return createTxPackageNode();
+ case UMLXPackage.TX_PARAMETER_NODE: return createTxParameterNode();
case UMLXPackage.TX_PART_NODE: return createTxPartNode();
+ case UMLXPackage.TX_QUERY_NODE: return createTxQueryNode();
case UMLXPackage.TX_TYPED_MODEL_NODE: return createTxTypedModelNode();
case UMLXPackage.UMLX_MODEL: return createUMLXModel();
default:
@@ -211,6 +213,17 @@ public class UMLXFactoryImpl extends EFactoryImpl implements UMLXFactory {
* @generated
*/
@Override
+ public @NonNull TxQueryNode createTxQueryNode() {
+ TxQueryNodeImpl txQueryNode = new TxQueryNodeImpl();
+ return txQueryNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public @NonNull TxNode createTxNode() {
TxNodeImpl txNode = new TxNodeImpl();
return txNode;
@@ -233,6 +246,17 @@ public class UMLXFactoryImpl extends EFactoryImpl implements UMLXFactory {
* @generated
*/
@Override
+ public @NonNull TxParameterNode createTxParameterNode() {
+ TxParameterNodeImpl txParameterNode = new TxParameterNodeImpl();
+ return txParameterNode;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public @NonNull TxTypedModelNode createTxTypedModelNode() {
TxTypedModelNodeImpl txTypedModelNode = new TxTypedModelNodeImpl();
return txTypedModelNode;
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXPackageImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXPackageImpl.java
index c574a59fa..2961ef351 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXPackageImpl.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXPackageImpl.java
@@ -33,13 +33,16 @@ import org.eclipse.qvtd.umlx.TxImportNode;
import org.eclipse.qvtd.umlx.TxKeyNode;
import org.eclipse.qvtd.umlx.TxNode;
import org.eclipse.qvtd.umlx.TxPackageNode;
+import org.eclipse.qvtd.umlx.TxParameterNode;
import org.eclipse.qvtd.umlx.TxPartNode;
+import org.eclipse.qvtd.umlx.TxQueryNode;
import org.eclipse.qvtd.umlx.TxTypedModelNode;
import org.eclipse.qvtd.umlx.UMLXElement;
import org.eclipse.qvtd.umlx.UMLXFactory;
import org.eclipse.qvtd.umlx.UMLXModel;
import org.eclipse.qvtd.umlx.UMLXNamedElement;
import org.eclipse.qvtd.umlx.UMLXPackage;
+import org.eclipse.qvtd.umlx.UMLXTypedElement;
import org.eclipse.qvtd.umlx.util.UMLXValidator;
/**
@@ -145,6 +148,13 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* <!-- end-user-doc -->
* @generated
*/
+ private EClass txQueryNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EClass txNodeEClass = null;
/**
@@ -159,6 +169,13 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* <!-- end-user-doc -->
* @generated
*/
+ private EClass txParameterNodeEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EClass txTypedModelNodeEClass = null;
/**
@@ -187,6 +204,13 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* <!-- end-user-doc -->
* @generated
*/
+ private EClass umlxTypedElementEClass = null;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
private EClass relPatternClassNodeEClass = null;
/**
@@ -217,7 +241,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
/**
* Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
- *
+ *
* <p>This method is used to initialize {@link UMLXPackage#eINSTANCE} when that field is accessed.
* Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
* <!-- begin-user-doc -->
@@ -244,17 +268,18 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
// Register package validator
EValidator.Registry.INSTANCE.put
- (theUMLXPackage,
- new EValidator.Descriptor() {
- public EValidator getEValidator() {
- return UMLXValidator.INSTANCE;
- }
- });
+ (theUMLXPackage,
+ new EValidator.Descriptor() {
+ @Override
+ public EValidator getEValidator() {
+ return UMLXValidator.INSTANCE;
+ }
+ });
// Mark meta-data to indicate it can't be changed
theUMLXPackage.freeze();
-
+
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(UMLXPackage.eNS_URI, theUMLXPackage);
return theUMLXPackage;
@@ -546,8 +571,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EAttribute getRelPatternExpressionNode_Expression() {
- return (EAttribute)relPatternExpressionNodeEClass.getEStructuralFeatures().get(0);
+ public EClass getRelPatternNode() {
+ return relPatternNodeEClass;
}
/**
@@ -556,8 +581,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EClass getRelPatternNode() {
- return relPatternNodeEClass;
+ public EReference getRelPatternNode_Incoming() {
+ return (EReference)relPatternNodeEClass.getEStructuralFeatures().get(0);
}
/**
@@ -566,8 +591,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EReference getRelPatternNode_Incoming() {
- return (EReference)relPatternNodeEClass.getEStructuralFeatures().get(0);
+ public EAttribute getRelPatternNode_InitExpressionLines() {
+ return (EAttribute)relPatternNodeEClass.getEStructuralFeatures().get(1);
}
/**
@@ -577,7 +602,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
*/
@Override
public EAttribute getRelPatternNode_IsRoot() {
- return (EAttribute)relPatternNodeEClass.getEStructuralFeatures().get(1);
+ return (EAttribute)relPatternNodeEClass.getEStructuralFeatures().get(2);
}
/**
@@ -587,7 +612,17 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
*/
@Override
public EReference getRelPatternNode_OwningRelDomainNode() {
- return (EReference)relPatternNodeEClass.getEStructuralFeatures().get(2);
+ return (EReference)relPatternNodeEClass.getEStructuralFeatures().get(3);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getRelPatternNode_InvokingRelInvocationEdges() {
+ return (EReference)relPatternNodeEClass.getEStructuralFeatures().get(4);
}
/**
@@ -636,7 +671,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EReference getTxDiagram_OwnedTxTypedModelNodes() {
+ public EReference getTxDiagram_OwnedTxQueryNodes() {
return (EReference)txDiagramEClass.getEStructuralFeatures().get(3);
}
@@ -646,8 +681,18 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
+ public EReference getTxDiagram_OwnedTxTypedModelNodes() {
+ return (EReference)txDiagramEClass.getEStructuralFeatures().get(4);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EAttribute getTxDiagram_Package() {
- return (EAttribute)txDiagramEClass.getEStructuralFeatures().get(4);
+ return (EAttribute)txDiagramEClass.getEStructuralFeatures().get(5);
}
/**
@@ -766,6 +811,46 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
+ public EClass getTxQueryNode() {
+ return txQueryNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getTxQueryNode_InitExpressionLines() {
+ return (EAttribute)txQueryNodeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTxQueryNode_OwnedTxParameterNodes() {
+ return (EReference)txQueryNodeEClass.getEStructuralFeatures().get(1);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTxQueryNode_OwningTxDiagram() {
+ return (EReference)txQueryNodeEClass.getEStructuralFeatures().get(2);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getTxNode() {
return txNodeEClass;
}
@@ -806,6 +891,26 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
+ public EClass getTxParameterNode() {
+ return txParameterNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EReference getTxParameterNode_OwningTxQueryNode() {
+ return (EReference)txParameterNodeEClass.getEStructuralFeatures().get(0);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
public EClass getTxTypedModelNode() {
return txTypedModelNodeEClass;
}
@@ -916,8 +1021,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EClass getRelPatternClassNode() {
- return relPatternClassNodeEClass;
+ public EClass getUMLXTypedElement() {
+ return umlxTypedElementEClass;
}
/**
@@ -925,8 +1030,9 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EAttribute getRelPatternClassNode_IsAnon() {
- return (EAttribute)relPatternClassNodeEClass.getEStructuralFeatures().get(0);
+ @Override
+ public EAttribute getUMLXTypedElement_IsMany() {
+ return (EAttribute)umlxTypedElementEClass.getEStructuralFeatures().get(0);
}
/**
@@ -935,8 +1041,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EAttribute getRelPatternClassNode_IsMany() {
- return (EAttribute)relPatternClassNodeEClass.getEStructuralFeatures().get(1);
+ public EAttribute getUMLXTypedElement_IsNullFree() {
+ return (EAttribute)umlxTypedElementEClass.getEStructuralFeatures().get(1);
}
/**
@@ -945,8 +1051,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EAttribute getRelPatternClassNode_IsNullFree() {
- return (EAttribute)relPatternClassNodeEClass.getEStructuralFeatures().get(2);
+ public EAttribute getUMLXTypedElement_IsOrdered() {
+ return (EAttribute)umlxTypedElementEClass.getEStructuralFeatures().get(2);
}
/**
@@ -955,8 +1061,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EAttribute getRelPatternClassNode_IsOrdered() {
- return (EAttribute)relPatternClassNodeEClass.getEStructuralFeatures().get(3);
+ public EAttribute getUMLXTypedElement_IsRequired() {
+ return (EAttribute)umlxTypedElementEClass.getEStructuralFeatures().get(3);
}
/**
@@ -965,8 +1071,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EAttribute getRelPatternClassNode_IsRequired() {
- return (EAttribute)relPatternClassNodeEClass.getEStructuralFeatures().get(4);
+ public EAttribute getUMLXTypedElement_IsUnique() {
+ return (EAttribute)umlxTypedElementEClass.getEStructuralFeatures().get(4);
}
/**
@@ -975,8 +1081,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EAttribute getRelPatternClassNode_IsUnique() {
- return (EAttribute)relPatternClassNodeEClass.getEStructuralFeatures().get(5);
+ public EReference getUMLXTypedElement_ReferredEClassifier() {
+ return (EReference)umlxTypedElementEClass.getEStructuralFeatures().get(5);
}
/**
@@ -984,8 +1090,19 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* <!-- end-user-doc -->
* @generated
*/
- public EReference getRelPatternClassNode_Outgoing() {
- return (EReference)relPatternClassNodeEClass.getEStructuralFeatures().get(6);
+ @Override
+ public EClass getRelPatternClassNode() {
+ return relPatternClassNodeEClass;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EAttribute getRelPatternClassNode_IsAnon() {
+ return (EAttribute)relPatternClassNodeEClass.getEStructuralFeatures().get(0);
}
/**
@@ -994,8 +1111,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
@Override
- public EReference getRelPatternClassNode_ReferredEClassifier() {
- return (EReference)relPatternClassNodeEClass.getEStructuralFeatures().get(7);
+ public EReference getRelPatternClassNode_Outgoing() {
+ return (EReference)relPatternClassNodeEClass.getEStructuralFeatures().get(1);
}
/**
@@ -1005,7 +1122,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
*/
@Override
public EReference getRelPatternClassNode_RelDomainNode() {
- return (EReference)relPatternClassNodeEClass.getEStructuralFeatures().get(8);
+ return (EReference)relPatternClassNodeEClass.getEStructuralFeatures().get(2);
}
/**
@@ -1066,13 +1183,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
relPatternClassNodeEClass = createEClass(REL_PATTERN_CLASS_NODE);
createEAttribute(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__IS_ANON);
- createEAttribute(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__IS_MANY);
- createEAttribute(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__IS_NULL_FREE);
- createEAttribute(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__IS_ORDERED);
- createEAttribute(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__IS_REQUIRED);
- createEAttribute(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__IS_UNIQUE);
createEReference(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__OUTGOING);
- createEReference(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER);
createEReference(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE);
relPatternEdgeEClass = createEClass(REL_PATTERN_EDGE);
@@ -1083,17 +1194,19 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
createEReference(relPatternEdgeEClass, REL_PATTERN_EDGE__TARGET);
relPatternExpressionNodeEClass = createEClass(REL_PATTERN_EXPRESSION_NODE);
- createEAttribute(relPatternExpressionNodeEClass, REL_PATTERN_EXPRESSION_NODE__EXPRESSION);
relPatternNodeEClass = createEClass(REL_PATTERN_NODE);
createEReference(relPatternNodeEClass, REL_PATTERN_NODE__INCOMING);
+ createEAttribute(relPatternNodeEClass, REL_PATTERN_NODE__INIT_EXPRESSION_LINES);
createEAttribute(relPatternNodeEClass, REL_PATTERN_NODE__IS_ROOT);
createEReference(relPatternNodeEClass, REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE);
+ createEReference(relPatternNodeEClass, REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES);
txDiagramEClass = createEClass(TX_DIAGRAM);
createEReference(txDiagramEClass, TX_DIAGRAM__OWNED_REL_DIAGRAMS);
createEReference(txDiagramEClass, TX_DIAGRAM__OWNED_TX_IMPORT_NODES);
createEReference(txDiagramEClass, TX_DIAGRAM__OWNED_TX_KEY_NODES);
+ createEReference(txDiagramEClass, TX_DIAGRAM__OWNED_TX_QUERY_NODES);
createEReference(txDiagramEClass, TX_DIAGRAM__OWNED_TX_TYPED_MODEL_NODES);
createEAttribute(txDiagramEClass, TX_DIAGRAM__PACKAGE);
@@ -1112,11 +1225,19 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
createEReference(txPackageNodeEClass, TX_PACKAGE_NODE__REFERRED_EPACKAGE);
createEReference(txPackageNodeEClass, TX_PACKAGE_NODE__OWNING_TX_TYPED_MODEL_NODE);
+ txParameterNodeEClass = createEClass(TX_PARAMETER_NODE);
+ createEReference(txParameterNodeEClass, TX_PARAMETER_NODE__OWNING_TX_QUERY_NODE);
+
txPartNodeEClass = createEClass(TX_PART_NODE);
createEReference(txPartNodeEClass, TX_PART_NODE__OWNING_TX_KEY_NODE);
createEAttribute(txPartNodeEClass, TX_PART_NODE__IS_OPPOSITE);
createEReference(txPartNodeEClass, TX_PART_NODE__REFERRED_ESTRUCTURAL_FEATURE);
+ txQueryNodeEClass = createEClass(TX_QUERY_NODE);
+ createEAttribute(txQueryNodeEClass, TX_QUERY_NODE__INIT_EXPRESSION_LINES);
+ createEReference(txQueryNodeEClass, TX_QUERY_NODE__OWNED_TX_PARAMETER_NODES);
+ createEReference(txQueryNodeEClass, TX_QUERY_NODE__OWNING_TX_DIAGRAM);
+
txTypedModelNodeEClass = createEClass(TX_TYPED_MODEL_NODE);
createEAttribute(txTypedModelNodeEClass, TX_TYPED_MODEL_NODE__CHECK);
createEAttribute(txTypedModelNodeEClass, TX_TYPED_MODEL_NODE__ENFORCE);
@@ -1131,6 +1252,14 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
umlxNamedElementEClass = createEClass(UMLX_NAMED_ELEMENT);
createEAttribute(umlxNamedElementEClass, UMLX_NAMED_ELEMENT__NAME);
+
+ umlxTypedElementEClass = createEClass(UMLX_TYPED_ELEMENT);
+ createEAttribute(umlxTypedElementEClass, UMLX_TYPED_ELEMENT__IS_MANY);
+ createEAttribute(umlxTypedElementEClass, UMLX_TYPED_ELEMENT__IS_NULL_FREE);
+ createEAttribute(umlxTypedElementEClass, UMLX_TYPED_ELEMENT__IS_ORDERED);
+ createEAttribute(umlxTypedElementEClass, UMLX_TYPED_ELEMENT__IS_REQUIRED);
+ createEAttribute(umlxTypedElementEClass, UMLX_TYPED_ELEMENT__IS_UNIQUE);
+ createEReference(umlxTypedElementEClass, UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER);
}
/**
@@ -1168,7 +1297,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
relInvocationNodeEClass.getESuperTypes().add(this.getRelNode());
relNodeEClass.getESuperTypes().add(this.getUMLXElement());
relPatternClassNodeEClass.getESuperTypes().add(this.getRelPatternNode());
- relPatternClassNodeEClass.getESuperTypes().add(this.getUMLXNamedElement());
+ relPatternClassNodeEClass.getESuperTypes().add(this.getUMLXTypedElement());
relPatternEdgeEClass.getESuperTypes().add(this.getRelEdge());
relPatternExpressionNodeEClass.getESuperTypes().add(this.getRelPatternNode());
relPatternNodeEClass.getESuperTypes().add(this.getRelNode());
@@ -1178,11 +1307,16 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
txKeyNodeEClass.getESuperTypes().add(this.getTxNode());
txNodeEClass.getESuperTypes().add(this.getUMLXElement());
txPackageNodeEClass.getESuperTypes().add(this.getTxNode());
+ txParameterNodeEClass.getESuperTypes().add(this.getTxNode());
+ txParameterNodeEClass.getESuperTypes().add(this.getUMLXTypedElement());
txPartNodeEClass.getESuperTypes().add(this.getTxNode());
+ txQueryNodeEClass.getESuperTypes().add(this.getTxNode());
+ txQueryNodeEClass.getESuperTypes().add(this.getUMLXTypedElement());
txTypedModelNodeEClass.getESuperTypes().add(this.getTxNode());
txTypedModelNodeEClass.getESuperTypes().add(this.getUMLXNamedElement());
umlxModelEClass.getESuperTypes().add(this.getUMLXElement());
umlxNamedElementEClass.getESuperTypes().add(this.getUMLXElement());
+ umlxTypedElementEClass.getESuperTypes().add(this.getUMLXNamedElement());
// Initialize classes and features; add operations and parameters
initEClass(relDiagramEClass, RelDiagram.class, "RelDiagram", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
@@ -1209,7 +1343,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
initEClass(relEdgeEClass, RelEdge.class, "RelEdge", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEClass(relInvocationEdgeEClass, RelInvocationEdge.class, "RelInvocationEdge", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEReference(getRelInvocationEdge_InvokingRelPatternNode(), this.getRelPatternNode(), null, "invokingRelPatternNode", null, 1, 1, RelInvocationEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRelInvocationEdge_InvokingRelPatternNode(), this.getRelPatternNode(), this.getRelPatternNode_InvokingRelInvocationEdges(), "invokingRelPatternNode", null, 1, 1, RelInvocationEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getRelInvocationEdge_OwningRelInvocationNode(), this.getRelInvocationNode(), this.getRelInvocationNode_OwnedRelInvocationEdges(), "owningRelInvocationNode", null, 1, 1, RelInvocationEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getRelInvocationEdge_ReferredRelPatternNode(), this.getRelPatternClassNode(), null, "referredRelPatternNode", null, 1, 1, RelInvocationEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1232,13 +1366,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
initEClass(relPatternClassNodeEClass, RelPatternClassNode.class, "RelPatternClassNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getRelPatternClassNode_IsAnon(), ecorePackage.getEBoolean(), "isAnon", "false", 1, 1, RelPatternClassNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getRelPatternClassNode_IsMany(), ecorePackage.getEBoolean(), "isMany", "false", 1, 1, RelPatternClassNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getRelPatternClassNode_IsNullFree(), ecorePackage.getEBoolean(), "isNullFree", "true", 1, 1, RelPatternClassNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getRelPatternClassNode_IsOrdered(), ecorePackage.getEBoolean(), "isOrdered", "false", 1, 1, RelPatternClassNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getRelPatternClassNode_IsRequired(), ecorePackage.getEBoolean(), "isRequired", "true", 1, 1, RelPatternClassNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEAttribute(getRelPatternClassNode_IsUnique(), ecorePackage.getEBoolean(), "isUnique", "true", 1, 1, RelPatternClassNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getRelPatternClassNode_Outgoing(), this.getRelPatternEdge(), this.getRelPatternEdge_Source(), "outgoing", null, 0, -1, RelPatternClassNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- initEReference(getRelPatternClassNode_ReferredEClassifier(), ecorePackage.getEClassifier(), null, "referredEClassifier", null, 1, 1, RelPatternClassNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getRelPatternClassNode_RelDomainNode(), this.getRelDomainNode(), null, "relDomainNode", null, 0, 1, RelPatternClassNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
op = addEOperation(relPatternClassNodeEClass, ecorePackage.getEBoolean(), "validateAnonIsUnnamed", 0, 1, IS_UNIQUE, IS_ORDERED);
@@ -1348,21 +1476,23 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED);
initEClass(relPatternExpressionNodeEClass, RelPatternExpressionNode.class, "RelPatternExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
- initEAttribute(getRelPatternExpressionNode_Expression(), ecorePackage.getEString(), "expression", null, 1, 1, RelPatternExpressionNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(relPatternNodeEClass, RelPatternNode.class, "RelPatternNode", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getRelPatternNode_Incoming(), this.getRelPatternEdge(), this.getRelPatternEdge_Target(), "incoming", null, 0, -1, RelPatternNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getRelPatternNode_InitExpressionLines(), ecorePackage.getEString(), "initExpressionLines", null, 0, -1, RelPatternNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getRelPatternNode_IsRoot(), ecorePackage.getEBoolean(), "isRoot", "false", 1, 1, RelPatternNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getRelPatternNode_OwningRelDomainNode(), this.getRelDomainNode(), this.getRelDomainNode_OwnedRelPatternNodes(), "owningRelDomainNode", null, 1, 1, RelPatternNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getRelPatternNode_InvokingRelInvocationEdges(), this.getRelInvocationEdge(), this.getRelInvocationEdge_InvokingRelPatternNode(), "invokingRelInvocationEdges", null, 0, -1, RelPatternNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEClass(txDiagramEClass, TxDiagram.class, "TxDiagram", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getTxDiagram_OwnedRelDiagrams(), this.getRelDiagram(), this.getRelDiagram_OwningTxDiagram(), "ownedRelDiagrams", null, 0, -1, TxDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getTxDiagram_OwnedTxImportNodes(), this.getTxImportNode(), this.getTxImportNode_OwningTxDiagram(), "ownedTxImportNodes", null, 0, -1, TxDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getTxDiagram_OwnedTxKeyNodes(), this.getTxKeyNode(), this.getTxKeyNode_OwningTxDiagram(), "ownedTxKeyNodes", null, 0, -1, TxDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTxDiagram_OwnedTxQueryNodes(), this.getTxQueryNode(), this.getTxQueryNode_OwningTxDiagram(), "ownedTxQueryNodes", null, 0, -1, TxDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getTxDiagram_OwnedTxTypedModelNodes(), this.getTxTypedModelNode(), this.getTxTypedModelNode_OwningTxDiagram(), "ownedTxTypedModelNodes", null, 0, -1, TxDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getTxDiagram_Package(), ecorePackage.getEString(), "package", null, 0, 1, TxDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
- op = addEOperation(txDiagramEClass, ecorePackage.getEBoolean(), "validateRelDiagramNamesAreUnique", 0, 1, IS_UNIQUE, IS_ORDERED);
+ op = addEOperation(txDiagramEClass, ecorePackage.getEBoolean(), "validateTxTypedModelNodeNamesAreUnique", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEJavaObject());
@@ -1371,7 +1501,16 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED);
- op = addEOperation(txDiagramEClass, ecorePackage.getEBoolean(), "validateTxTypedModelNodeNamesAreUnique", 0, 1, IS_UNIQUE, IS_ORDERED);
+ op = addEOperation(txDiagramEClass, ecorePackage.getEBoolean(), "validateTxQueryNodeNamesAreUnique", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED);
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED);
+
+ op = addEOperation(txDiagramEClass, ecorePackage.getEBoolean(), "validateRelDiagramNamesAreUnique", 0, 1, IS_UNIQUE, IS_ORDERED);
addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED);
g1 = createEGenericType(ecorePackage.getEMap());
g2 = createEGenericType(ecorePackage.getEJavaObject());
@@ -1404,6 +1543,9 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
initEReference(getTxPackageNode_ReferredEPackage(), ecorePackage.getEPackage(), null, "referredEPackage", null, 1, 1, TxPackageNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEReference(getTxPackageNode_OwningTxTypedModelNode(), this.getTxTypedModelNode(), this.getTxTypedModelNode_OwnedTxPackageNodes(), "owningTxTypedModelNode", null, 1, 1, TxPackageNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEClass(txParameterNodeEClass, TxParameterNode.class, "TxParameterNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEReference(getTxParameterNode_OwningTxQueryNode(), this.getTxQueryNode(), this.getTxQueryNode_OwnedTxParameterNodes(), "owningTxQueryNode", null, 1, 1, TxParameterNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
initEClass(txPartNodeEClass, TxPartNode.class, "TxPartNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEReference(getTxPartNode_OwningTxKeyNode(), this.getTxKeyNode(), this.getTxKeyNode_OwnedTxPartNodes(), "owningTxKeyNode", null, 1, 1, TxPartNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getTxPartNode_IsOpposite(), ecorePackage.getEBoolean(), "isOpposite", "false", 1, 1, TxPartNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1418,6 +1560,20 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
g1.getETypeArguments().add(g2);
addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED);
+ initEClass(txQueryNodeEClass, TxQueryNode.class, "TxQueryNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getTxQueryNode_InitExpressionLines(), ecorePackage.getEString(), "initExpressionLines", null, 0, -1, TxQueryNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTxQueryNode_OwnedTxParameterNodes(), this.getTxParameterNode(), this.getTxParameterNode_OwningTxQueryNode(), "ownedTxParameterNodes", null, 1, -1, TxQueryNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getTxQueryNode_OwningTxDiagram(), this.getTxDiagram(), this.getTxDiagram_OwnedTxQueryNodes(), "owningTxDiagram", null, 1, 1, TxQueryNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
+ op = addEOperation(txQueryNodeEClass, ecorePackage.getEBoolean(), "validateParametersAreUnique", 0, 1, IS_UNIQUE, IS_ORDERED);
+ addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED);
+ g1 = createEGenericType(ecorePackage.getEMap());
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ g2 = createEGenericType(ecorePackage.getEJavaObject());
+ g1.getETypeArguments().add(g2);
+ addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED);
+
initEClass(txTypedModelNodeEClass, TxTypedModelNode.class, "TxTypedModelNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getTxTypedModelNode_Check(), ecorePackage.getEBoolean(), "check", "false", 1, 1, TxTypedModelNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
initEAttribute(getTxTypedModelNode_Enforce(), ecorePackage.getEBoolean(), "enforce", "false", 1, 1, TxTypedModelNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
@@ -1442,6 +1598,14 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
initEClass(umlxNamedElementEClass, UMLXNamedElement.class, "UMLXNamedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
initEAttribute(getUMLXNamedElement_Name(), ecorePackage.getEString(), "name", null, 1, 1, UMLXNamedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEClass(umlxTypedElementEClass, UMLXTypedElement.class, "UMLXTypedElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS);
+ initEAttribute(getUMLXTypedElement_IsMany(), ecorePackage.getEBoolean(), "isMany", "false", 1, 1, UMLXTypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getUMLXTypedElement_IsNullFree(), ecorePackage.getEBoolean(), "isNullFree", "true", 1, 1, UMLXTypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getUMLXTypedElement_IsOrdered(), ecorePackage.getEBoolean(), "isOrdered", "false", 1, 1, UMLXTypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getUMLXTypedElement_IsRequired(), ecorePackage.getEBoolean(), "isRequired", "true", 1, 1, UMLXTypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEAttribute(getUMLXTypedElement_IsUnique(), ecorePackage.getEBoolean(), "isUnique", "true", 1, 1, UMLXTypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+ initEReference(getUMLXTypedElement_ReferredEClassifier(), ecorePackage.getEClassifier(), null, "referredEClassifier", null, 1, 1, UMLXTypedElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED);
+
// Create resource
createResource(eNS_URI);
@@ -1459,60 +1623,66 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
protected void createEcoreAnnotations() {
- String source = "http://www.eclipse.org/emf/2002/Ecore";
+ String source = "http://www.eclipse.org/emf/2002/Ecore";
+ addAnnotation
+ (this,
+ source,
+ new String[] {
+ });
addAnnotation
- (this,
- source,
- new String[] {
- });
+ (relDiagramEClass,
+ source,
+ new String[] {
+ "constraints", "RelPatternNodeNamesAreUnique"
+ });
addAnnotation
- (relDiagramEClass,
- source,
- new String[] {
- "constraints", "RelPatternNodeNamesAreUnique"
- });
+ (relInvocationNodeEClass,
+ source,
+ new String[] {
+ "constraints", "CompatibleEdges"
+ });
addAnnotation
- (relInvocationNodeEClass,
- source,
- new String[] {
- "constraints", "CompatibleEdges"
- });
+ (relPatternClassNodeEClass,
+ source,
+ new String[] {
+ "constraints", "AnonIsUnnamed EClassifierIsInTypedModel"
+ });
addAnnotation
- (relPatternClassNodeEClass,
- source,
- new String[] {
- "constraints", "AnonIsUnnamed EClassifierIsInTypedModel"
- });
+ (relPatternEdgeEClass,
+ source,
+ new String[] {
+ "constraints", "SourceIsClassNode SourceIsEClass CompatiblePropertySource CompatibleSourceIndex CompatibleSourceMultiplicity CompatibleEAttributePropertyTarget CompatibleEReferencePropertyTarget CompatibleMemberPropertyTarget CompatibleRestPropertyTarget"
+ });
addAnnotation
- (relPatternEdgeEClass,
- source,
- new String[] {
- "constraints", "SourceIsClassNode SourceIsEClass CompatiblePropertySource CompatibleSourceIndex CompatibleSourceMultiplicity CompatibleEAttributePropertyTarget CompatibleEReferencePropertyTarget CompatibleMemberPropertyTarget CompatibleRestPropertyTarget"
- });
+ (txDiagramEClass,
+ source,
+ new String[] {
+ "constraints", "RelDiagramNamesAreUnique TxQueryNodeNamesAreUnique TxTypedModelNodeNamesAreUnique"
+ });
addAnnotation
- (txDiagramEClass,
- source,
- new String[] {
- "constraints", "RelDiagramNamesAreUnique TxTypedModelNodeNamesAreUnique"
- });
+ (txKeyNodeEClass,
+ source,
+ new String[] {
+ "constraints", "PartsAreUnique"
+ });
addAnnotation
- (txKeyNodeEClass,
- source,
- new String[] {
- "constraints", "PartsAreUnique"
- });
+ (txPartNodeEClass,
+ source,
+ new String[] {
+ "constraints", "PartIsPropertyOfKey"
+ });
addAnnotation
- (txPartNodeEClass,
- source,
- new String[] {
- "constraints", "PartIsPropertyOfKey"
- });
+ (txQueryNodeEClass,
+ source,
+ new String[] {
+ "constraints", "ParametersAreUnique"
+ });
addAnnotation
- (txTypedModelNodeEClass,
- source,
- new String[] {
- "constraints", "TxPackageNodePackagesAreUnique"
- });
+ (txTypedModelNodeEClass,
+ source,
+ new String[] {
+ "constraints", "TxPackageNodePackagesAreUnique"
+ });
}
/**
@@ -1522,115 +1692,127 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage {
* @generated
*/
protected void createUMLAnnotations() {
- String source = "http://www.eclipse.org/uml2/2.0.0/UML";
+ String source = "http://www.eclipse.org/uml2/2.0.0/UML";
+ addAnnotation
+ (relDiagramEClass.getEOperations().get(0),
+ source,
+ new String[] {
+ "originalName", "RelPatternNodeNamesAreUnique"
+ });
+ addAnnotation
+ (relInvocationNodeEClass.getEOperations().get(0),
+ source,
+ new String[] {
+ "originalName", "CompatibleEdges"
+ });
addAnnotation
- (relDiagramEClass.getEOperations().get(0),
- source,
- new String[] {
- "originalName", "RelPatternNodeNamesAreUnique"
- });
+ (relPatternClassNodeEClass.getEOperations().get(0),
+ source,
+ new String[] {
+ "originalName", "AnonIsUnnamed"
+ });
addAnnotation
- (relInvocationNodeEClass.getEOperations().get(0),
- source,
- new String[] {
- "originalName", "CompatibleEdges"
- });
+ (relPatternClassNodeEClass.getEOperations().get(1),
+ source,
+ new String[] {
+ "originalName", "EClassifierIsInTypedModel"
+ });
addAnnotation
- (relPatternClassNodeEClass.getEOperations().get(0),
- source,
- new String[] {
- "originalName", "AnonIsUnnamed"
- });
+ (relPatternEdgeEClass.getEOperations().get(0),
+ source,
+ new String[] {
+ "originalName", "SourceIsEClass"
+ });
addAnnotation
- (relPatternClassNodeEClass.getEOperations().get(1),
- source,
- new String[] {
- "originalName", "EClassifierIsInTypedModel"
- });
+ (relPatternEdgeEClass.getEOperations().get(1),
+ source,
+ new String[] {
+ "originalName", "SourceIsClassNode"
+ });
addAnnotation
- (relPatternEdgeEClass.getEOperations().get(0),
- source,
- new String[] {
- "originalName", "SourceIsEClass"
- });
+ (relPatternEdgeEClass.getEOperations().get(2),
+ source,
+ new String[] {
+ "originalName", "CompatibleEAttributePropertyTarget"
+ });
addAnnotation
- (relPatternEdgeEClass.getEOperations().get(1),
- source,
- new String[] {
- "originalName", "SourceIsClassNode"
- });
+ (relPatternEdgeEClass.getEOperations().get(3),
+ source,
+ new String[] {
+ "originalName", "CompatibleSourceMultiplicity"
+ });
addAnnotation
- (relPatternEdgeEClass.getEOperations().get(2),
- source,
- new String[] {
- "originalName", "CompatibleEAttributePropertyTarget"
- });
+ (relPatternEdgeEClass.getEOperations().get(4),
+ source,
+ new String[] {
+ "originalName", "CompatibleEReferencePropertyTarget"
+ });
addAnnotation
- (relPatternEdgeEClass.getEOperations().get(3),
- source,
- new String[] {
- "originalName", "CompatibleSourceMultiplicity"
- });
+ (relPatternEdgeEClass.getEOperations().get(5),
+ source,
+ new String[] {
+ "originalName", "CompatiblePropertySource"
+ });
addAnnotation
- (relPatternEdgeEClass.getEOperations().get(4),
- source,
- new String[] {
- "originalName", "CompatibleEReferencePropertyTarget"
- });
+ (relPatternEdgeEClass.getEOperations().get(6),
+ source,
+ new String[] {
+ "originalName", "CompatibleSourceIndex"
+ });
addAnnotation
- (relPatternEdgeEClass.getEOperations().get(5),
- source,
- new String[] {
- "originalName", "CompatiblePropertySource"
- });
+ (relPatternEdgeEClass.getEOperations().get(7),
+ source,
+ new String[] {
+ "originalName", "CompatibleRestPropertyTarget"
+ });
addAnnotation
- (relPatternEdgeEClass.getEOperations().get(6),
- source,
- new String[] {
- "originalName", "CompatibleSourceIndex"
- });
+ (relPatternEdgeEClass.getEOperations().get(8),
+ source,
+ new String[] {
+ "originalName", "CompatibleMemberPropertyTarget"
+ });
addAnnotation
- (relPatternEdgeEClass.getEOperations().get(7),
- source,
- new String[] {
- "originalName", "CompatibleRestPropertyTarget"
- });
+ (txDiagramEClass.getEOperations().get(0),
+ source,
+ new String[] {
+ "originalName", "TxTypedModelNodeNamesAreUnique"
+ });
addAnnotation
- (relPatternEdgeEClass.getEOperations().get(8),
- source,
- new String[] {
- "originalName", "CompatibleMemberPropertyTarget"
- });
+ (txDiagramEClass.getEOperations().get(1),
+ source,
+ new String[] {
+ "originalName", "TxQueryNodeNamesAreUnique"
+ });
addAnnotation
- (txDiagramEClass.getEOperations().get(0),
- source,
- new String[] {
- "originalName", "RelDiagramNamesAreUnique"
- });
+ (txDiagramEClass.getEOperations().get(2),
+ source,
+ new String[] {
+ "originalName", "RelDiagramNamesAreUnique"
+ });
addAnnotation
- (txDiagramEClass.getEOperations().get(1),
- source,
- new String[] {
- "originalName", "TxTypedModelNodeNamesAreUnique"
- });
+ (txKeyNodeEClass.getEOperations().get(0),
+ source,
+ new String[] {
+ "originalName", "PartsAreUnique"
+ });
addAnnotation
- (txKeyNodeEClass.getEOperations().get(0),
- source,
- new String[] {
- "originalName", "PartsAreUnique"
- });
+ (txPartNodeEClass.getEOperations().get(0),
+ source,
+ new String[] {
+ "originalName", "PartIsPropertyOfKey"
+ });
addAnnotation
- (txPartNodeEClass.getEOperations().get(0),
- source,
- new String[] {
- "originalName", "PartIsPropertyOfKey"
- });
+ (txQueryNodeEClass.getEOperations().get(0),
+ source,
+ new String[] {
+ "originalName", "ParametersAreUnique"
+ });
addAnnotation
- (txTypedModelNodeEClass.getEOperations().get(0),
- source,
- new String[] {
- "originalName", "TxPackageNodePackagesAreUnique"
- });
+ (txTypedModelNodeEClass.getEOperations().get(0),
+ source,
+ new String[] {
+ "originalName", "TxPackageNodePackagesAreUnique"
+ });
}
} //UMLXPackageImpl
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXTypedElementImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXTypedElementImpl.java
new file mode 100644
index 000000000..e67e9eb87
--- /dev/null
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/UMLXTypedElementImpl.java
@@ -0,0 +1,447 @@
+/**
+ * Copyright (c) 2016 Willink Transformations and others.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * E.D.Willink - Initial API and implementation
+ */
+package org.eclipse.qvtd.umlx.impl;
+
+import org.eclipse.emf.common.notify.Notification;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EClassifier;
+import org.eclipse.emf.ecore.InternalEObject;
+
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+
+import org.eclipse.qvtd.umlx.UMLXPackage;
+import org.eclipse.qvtd.umlx.UMLXTypedElement;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Typed Element</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.UMLXTypedElementImpl#isIsMany <em>Is Many</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.UMLXTypedElementImpl#isIsNullFree <em>Is Null Free</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.UMLXTypedElementImpl#isIsOrdered <em>Is Ordered</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.UMLXTypedElementImpl#isIsRequired <em>Is Required</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.UMLXTypedElementImpl#isIsUnique <em>Is Unique</em>}</li>
+ * <li>{@link org.eclipse.qvtd.umlx.impl.UMLXTypedElementImpl#getReferredEClassifier <em>Referred EClassifier</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public abstract class UMLXTypedElementImpl extends UMLXNamedElementImpl implements UMLXTypedElement {
+ /**
+ * The default value of the '{@link #isIsMany() <em>Is Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsMany()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_MANY_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsMany() <em>Is Many</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsMany()
+ * @generated
+ * @ordered
+ */
+ protected boolean isMany = IS_MANY_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsNullFree() <em>Is Null Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsNullFree()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_NULL_FREE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isIsNullFree() <em>Is Null Free</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsNullFree()
+ * @generated
+ * @ordered
+ */
+ protected boolean isNullFree = IS_NULL_FREE_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsOrdered()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_ORDERED_EDEFAULT = false;
+
+ /**
+ * The cached value of the '{@link #isIsOrdered() <em>Is Ordered</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsOrdered()
+ * @generated
+ * @ordered
+ */
+ protected boolean isOrdered = IS_ORDERED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsRequired() <em>Is Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsRequired()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_REQUIRED_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isIsRequired() <em>Is Required</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsRequired()
+ * @generated
+ * @ordered
+ */
+ protected boolean isRequired = IS_REQUIRED_EDEFAULT;
+
+ /**
+ * The default value of the '{@link #isIsUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsUnique()
+ * @generated
+ * @ordered
+ */
+ protected static final boolean IS_UNIQUE_EDEFAULT = true;
+
+ /**
+ * The cached value of the '{@link #isIsUnique() <em>Is Unique</em>}' attribute.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #isIsUnique()
+ * @generated
+ * @ordered
+ */
+ protected boolean isUnique = IS_UNIQUE_EDEFAULT;
+
+ /**
+ * The cached value of the '{@link #getReferredEClassifier() <em>Referred EClassifier</em>}' reference.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @see #getReferredEClassifier()
+ * @generated
+ * @ordered
+ */
+ protected EClassifier referredEClassifier;
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ protected UMLXTypedElementImpl() {
+ super();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ protected EClass eStaticClass() {
+ return UMLXPackage.Literals.UMLX_TYPED_ELEMENT;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsMany() {
+ return isMany;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsMany(boolean newIsMany) {
+ boolean oldIsMany = isMany;
+ isMany = newIsMany;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY, oldIsMany, isMany));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsNullFree() {
+ return isNullFree;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsNullFree(boolean newIsNullFree) {
+ boolean oldIsNullFree = isNullFree;
+ isNullFree = newIsNullFree;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE, oldIsNullFree, isNullFree));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsOrdered() {
+ return isOrdered;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsOrdered(boolean newIsOrdered) {
+ boolean oldIsOrdered = isOrdered;
+ isOrdered = newIsOrdered;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED, oldIsOrdered, isOrdered));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsRequired() {
+ return isRequired;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsRequired(boolean newIsRequired) {
+ boolean oldIsRequired = isRequired;
+ isRequired = newIsRequired;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED, oldIsRequired, isRequired));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean isIsUnique() {
+ return isUnique;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setIsUnique(boolean newIsUnique) {
+ boolean oldIsUnique = isUnique;
+ isUnique = newIsUnique;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE, oldIsUnique, isUnique));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public EClassifier getReferredEClassifier() {
+ if (referredEClassifier != null && referredEClassifier.eIsProxy()) {
+ InternalEObject oldReferredEClassifier = (InternalEObject)referredEClassifier;
+ referredEClassifier = (EClassifier)eResolveProxy(oldReferredEClassifier);
+ if (referredEClassifier != oldReferredEClassifier) {
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.RESOLVE, UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER, oldReferredEClassifier, referredEClassifier));
+ }
+ }
+ return referredEClassifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public EClassifier basicGetReferredEClassifier() {
+ return referredEClassifier;
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void setReferredEClassifier(EClassifier newReferredEClassifier) {
+ EClassifier oldReferredEClassifier = referredEClassifier;
+ referredEClassifier = newReferredEClassifier;
+ if (eNotificationRequired())
+ eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER, oldReferredEClassifier, referredEClassifier));
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public String toString() {
+ return super.toString();
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public Object eGet(int featureID, boolean resolve, boolean coreType) {
+ switch (featureID) {
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY:
+ return isIsMany();
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE:
+ return isIsNullFree();
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED:
+ return isIsOrdered();
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED:
+ return isIsRequired();
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE:
+ return isIsUnique();
+ case UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER:
+ if (resolve) return getReferredEClassifier();
+ return basicGetReferredEClassifier();
+ }
+ return super.eGet(featureID, resolve, coreType);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eSet(int featureID, Object newValue) {
+ switch (featureID) {
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY:
+ setIsMany((Boolean)newValue);
+ return;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE:
+ setIsNullFree((Boolean)newValue);
+ return;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED:
+ setIsOrdered((Boolean)newValue);
+ return;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED:
+ setIsRequired((Boolean)newValue);
+ return;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE:
+ setIsUnique((Boolean)newValue);
+ return;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER:
+ setReferredEClassifier((EClassifier)newValue);
+ return;
+ }
+ super.eSet(featureID, newValue);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public void eUnset(int featureID) {
+ switch (featureID) {
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY:
+ setIsMany(IS_MANY_EDEFAULT);
+ return;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE:
+ setIsNullFree(IS_NULL_FREE_EDEFAULT);
+ return;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED:
+ setIsOrdered(IS_ORDERED_EDEFAULT);
+ return;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED:
+ setIsRequired(IS_REQUIRED_EDEFAULT);
+ return;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE:
+ setIsUnique(IS_UNIQUE_EDEFAULT);
+ return;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER:
+ setReferredEClassifier((EClassifier)null);
+ return;
+ }
+ super.eUnset(featureID);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ @Override
+ public boolean eIsSet(int featureID) {
+ switch (featureID) {
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY:
+ return isMany != IS_MANY_EDEFAULT;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE:
+ return isNullFree != IS_NULL_FREE_EDEFAULT;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED:
+ return isOrdered != IS_ORDERED_EDEFAULT;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED:
+ return isRequired != IS_REQUIRED_EDEFAULT;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE:
+ return isUnique != IS_UNIQUE_EDEFAULT;
+ case UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER:
+ return referredEClassifier != null;
+ }
+ return super.eIsSet(featureID);
+ }
+
+
+} //UMLXTypedElementImpl
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/AbstractExtendingUMLXVisitor.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/AbstractExtendingUMLXVisitor.java
index 7efd2c05c..01a6f0ad5 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/AbstractExtendingUMLXVisitor.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/AbstractExtendingUMLXVisitor.java
@@ -113,11 +113,21 @@ public abstract class AbstractExtendingUMLXVisitor<R, C>
}
@Override
+ public R visitTxParameterNode(org.eclipse.qvtd.umlx.@NonNull TxParameterNode object) {
+ return visitTxNode(object);
+ }
+
+ @Override
public R visitTxPartNode(org.eclipse.qvtd.umlx.@NonNull TxPartNode object) {
return visitTxNode(object);
}
@Override
+ public R visitTxQueryNode(org.eclipse.qvtd.umlx.@NonNull TxQueryNode object) {
+ return visitTxNode(object);
+ }
+
+ @Override
public R visitTxTypedModelNode(org.eclipse.qvtd.umlx.@NonNull TxTypedModelNode object) {
return visitTxNode(object);
}
@@ -136,4 +146,9 @@ public abstract class AbstractExtendingUMLXVisitor<R, C>
public R visitUMLXNamedElement(org.eclipse.qvtd.umlx.@NonNull UMLXNamedElement object) {
return visitUMLXElement(object);
}
+
+ @Override
+ public R visitUMLXTypedElement(org.eclipse.qvtd.umlx.@NonNull UMLXTypedElement object) {
+ return visitUMLXNamedElement(object);
+ }
}
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXAdapterFactory.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXAdapterFactory.java
index cef01aada..13155dc9f 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXAdapterFactory.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXAdapterFactory.java
@@ -136,10 +136,18 @@ public class UMLXAdapterFactory extends AdapterFactoryImpl {
return createTxPackageNodeAdapter();
}
@Override
+ public Adapter caseTxParameterNode(TxParameterNode object) {
+ return createTxParameterNodeAdapter();
+ }
+ @Override
public Adapter caseTxPartNode(TxPartNode object) {
return createTxPartNodeAdapter();
}
@Override
+ public Adapter caseTxQueryNode(TxQueryNode object) {
+ return createTxQueryNodeAdapter();
+ }
+ @Override
public Adapter caseTxTypedModelNode(TxTypedModelNode object) {
return createTxTypedModelNodeAdapter();
}
@@ -156,6 +164,10 @@ public class UMLXAdapterFactory extends AdapterFactoryImpl {
return createUMLXNamedElementAdapter();
}
@Override
+ public Adapter caseUMLXTypedElement(UMLXTypedElement object) {
+ return createUMLXTypedElementAdapter();
+ }
+ @Override
public Adapter defaultCase(EObject object) {
return createEObjectAdapter();
}
@@ -358,6 +370,20 @@ public class UMLXAdapterFactory extends AdapterFactoryImpl {
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.umlx.TxQueryNode <em>Tx Query Node</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.qvtd.umlx.TxQueryNode
+ * @generated
+ */
+ public Adapter createTxQueryNodeAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.qvtd.umlx.TxNode <em>Tx Node</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
@@ -386,6 +412,20 @@ public class UMLXAdapterFactory extends AdapterFactoryImpl {
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.umlx.TxParameterNode <em>Tx Parameter Node</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.qvtd.umlx.TxParameterNode
+ * @generated
+ */
+ public Adapter createTxParameterNodeAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.qvtd.umlx.TxTypedModelNode <em>Tx Typed Model Node</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
@@ -442,6 +482,20 @@ public class UMLXAdapterFactory extends AdapterFactoryImpl {
}
/**
+ * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.umlx.UMLXTypedElement <em>Typed Element</em>}'.
+ * <!-- begin-user-doc -->
+ * This default implementation returns null so that we can easily ignore cases;
+ * it's useful to ignore a case when inheritance will catch all the cases anyway.
+ * <!-- end-user-doc -->
+ * @return the new adapter.
+ * @see org.eclipse.qvtd.umlx.UMLXTypedElement
+ * @generated
+ */
+ public Adapter createUMLXTypedElementAdapter() {
+ return null;
+ }
+
+ /**
* Creates a new adapter for an object of class '{@link org.eclipse.qvtd.umlx.RelPatternClassNode <em>Rel Pattern Class Node</em>}'.
* <!-- begin-user-doc -->
* This default implementation returns null so that we can easily ignore cases;
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXSwitch.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXSwitch.java
index de76bfa2b..7e75a1f2c 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXSwitch.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXSwitch.java
@@ -124,8 +124,9 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> {
RelPatternClassNode relPatternClassNode = (RelPatternClassNode)theEObject;
T result = caseRelPatternClassNode(relPatternClassNode);
if (result == null) result = caseRelPatternNode(relPatternClassNode);
- if (result == null) result = caseUMLXNamedElement(relPatternClassNode);
+ if (result == null) result = caseUMLXTypedElement(relPatternClassNode);
if (result == null) result = caseRelNode(relPatternClassNode);
+ if (result == null) result = caseUMLXNamedElement(relPatternClassNode);
if (result == null) result = caseUMLXElement(relPatternClassNode);
if (result == null) result = defaultCase(theEObject);
return result;
@@ -195,6 +196,16 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> {
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case UMLXPackage.TX_PARAMETER_NODE: {
+ TxParameterNode txParameterNode = (TxParameterNode)theEObject;
+ T result = caseTxParameterNode(txParameterNode);
+ if (result == null) result = caseTxNode(txParameterNode);
+ if (result == null) result = caseUMLXTypedElement(txParameterNode);
+ if (result == null) result = caseUMLXNamedElement(txParameterNode);
+ if (result == null) result = caseUMLXElement(txParameterNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
case UMLXPackage.TX_PART_NODE: {
TxPartNode txPartNode = (TxPartNode)theEObject;
T result = caseTxPartNode(txPartNode);
@@ -203,6 +214,16 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> {
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case UMLXPackage.TX_QUERY_NODE: {
+ TxQueryNode txQueryNode = (TxQueryNode)theEObject;
+ T result = caseTxQueryNode(txQueryNode);
+ if (result == null) result = caseTxNode(txQueryNode);
+ if (result == null) result = caseUMLXTypedElement(txQueryNode);
+ if (result == null) result = caseUMLXNamedElement(txQueryNode);
+ if (result == null) result = caseUMLXElement(txQueryNode);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
case UMLXPackage.TX_TYPED_MODEL_NODE: {
TxTypedModelNode txTypedModelNode = (TxTypedModelNode)theEObject;
T result = caseTxTypedModelNode(txTypedModelNode);
@@ -232,6 +253,14 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> {
if (result == null) result = defaultCase(theEObject);
return result;
}
+ case UMLXPackage.UMLX_TYPED_ELEMENT: {
+ UMLXTypedElement umlxTypedElement = (UMLXTypedElement)theEObject;
+ T result = caseUMLXTypedElement(umlxTypedElement);
+ if (result == null) result = caseUMLXNamedElement(umlxTypedElement);
+ if (result == null) result = caseUMLXElement(umlxTypedElement);
+ if (result == null) result = defaultCase(theEObject);
+ return result;
+ }
default: return defaultCase(theEObject);
}
}
@@ -432,6 +461,21 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Tx Query Node</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Tx Query Node</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTxQueryNode(TxQueryNode object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Tx Node</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
@@ -462,6 +506,21 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Tx Parameter Node</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Tx Parameter Node</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseTxParameterNode(TxParameterNode object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Tx Typed Model Node</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
@@ -522,6 +581,21 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> {
}
/**
+ * Returns the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+ * <!-- begin-user-doc -->
+ * This implementation returns null;
+ * returning a non-null result will terminate the switch.
+ * <!-- end-user-doc -->
+ * @param object the target of the switch.
+ * @return the result of interpreting the object as an instance of '<em>Typed Element</em>'.
+ * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject)
+ * @generated
+ */
+ public T caseUMLXTypedElement(UMLXTypedElement object) {
+ return null;
+ }
+
+ /**
* Returns the result of interpreting the object as an instance of '<em>Rel Pattern Class Node</em>'.
* <!-- begin-user-doc -->
* This implementation returns null;
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXValidator.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXValidator.java
index 253883564..f3dae50b5 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXValidator.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXValidator.java
@@ -4,7 +4,7 @@
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
- *
+ *
* Contributors:
* E.D.Willink - Initial API and implementation
*/
@@ -158,7 +158,7 @@ public class UMLXValidator extends EObjectValidator {
* <!-- end-user-doc -->
* @generated
*/
- public static final int TX_DIAGRAM__VALIDATE_REL_DIAGRAM_NAMES_ARE_UNIQUE = 14;
+ public static final int TX_DIAGRAM__VALIDATE_REL_DIAGRAM_NAMES_ARE_UNIQUE = 16;
/**
* The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Tx Typed Model Node Names Are Unique' of 'Tx Diagram'.
@@ -166,7 +166,15 @@ public class UMLXValidator extends EObjectValidator {
* <!-- end-user-doc -->
* @generated
*/
- public static final int TX_DIAGRAM__VALIDATE_TX_TYPED_MODEL_NODE_NAMES_ARE_UNIQUE = 15;
+ public static final int TX_DIAGRAM__VALIDATE_TX_TYPED_MODEL_NODE_NAMES_ARE_UNIQUE = 14;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Tx Query Node Names Are Unique' of 'Tx Diagram'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int TX_DIAGRAM__VALIDATE_TX_QUERY_NODE_NAMES_ARE_UNIQUE = 15;
/**
* The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parts Are Unique' of 'Tx Key Node'.
@@ -174,7 +182,7 @@ public class UMLXValidator extends EObjectValidator {
* <!-- end-user-doc -->
* @generated
*/
- public static final int TX_KEY_NODE__VALIDATE_PARTS_ARE_UNIQUE = 16;
+ public static final int TX_KEY_NODE__VALIDATE_PARTS_ARE_UNIQUE = 17;
/**
* The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Part Is Property Of Key' of 'Tx Part Node'.
@@ -182,7 +190,15 @@ public class UMLXValidator extends EObjectValidator {
* <!-- end-user-doc -->
* @generated
*/
- public static final int TX_PART_NODE__VALIDATE_PART_IS_PROPERTY_OF_KEY = 17;
+ public static final int TX_PART_NODE__VALIDATE_PART_IS_PROPERTY_OF_KEY = 18;
+
+ /**
+ * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parameters Are Unique' of 'Tx Query Node'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public static final int TX_QUERY_NODE__VALIDATE_PARAMETERS_ARE_UNIQUE = 19;
/**
* The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Tx Package Node Packages Are Unique' of 'Tx Typed Model Node'.
@@ -190,7 +206,7 @@ public class UMLXValidator extends EObjectValidator {
* <!-- end-user-doc -->
* @generated
*/
- public static final int TX_TYPED_MODEL_NODE__VALIDATE_TX_PACKAGE_NODE_PACKAGES_ARE_UNIQUE = 18;
+ public static final int TX_TYPED_MODEL_NODE__VALIDATE_TX_PACKAGE_NODE_PACKAGES_ARE_UNIQUE = 20;
/**
* A constant with a fixed name that can be used as the base value for additional hand written constants.
@@ -198,7 +214,7 @@ public class UMLXValidator extends EObjectValidator {
* <!-- end-user-doc -->
* @generated
*/
- private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 18;
+ private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 20;
/**
* A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
@@ -226,7 +242,7 @@ public class UMLXValidator extends EObjectValidator {
*/
@Override
protected EPackage getEPackage() {
- return UMLXPackage.eINSTANCE;
+ return UMLXPackage.eINSTANCE;
}
/**
@@ -268,8 +284,12 @@ public class UMLXValidator extends EObjectValidator {
return validateTxNode((TxNode)value, diagnostics, context);
case UMLXPackage.TX_PACKAGE_NODE:
return validateTxPackageNode((TxPackageNode)value, diagnostics, context);
+ case UMLXPackage.TX_PARAMETER_NODE:
+ return validateTxParameterNode((TxParameterNode)value, diagnostics, context);
case UMLXPackage.TX_PART_NODE:
return validateTxPartNode((TxPartNode)value, diagnostics, context);
+ case UMLXPackage.TX_QUERY_NODE:
+ return validateTxQueryNode((TxQueryNode)value, diagnostics, context);
case UMLXPackage.TX_TYPED_MODEL_NODE:
return validateTxTypedModelNode((TxTypedModelNode)value, diagnostics, context);
case UMLXPackage.UMLX_ELEMENT:
@@ -278,6 +298,8 @@ public class UMLXValidator extends EObjectValidator {
return validateUMLXModel((UMLXModel)value, diagnostics, context);
case UMLXPackage.UMLX_NAMED_ELEMENT:
return validateUMLXNamedElement((UMLXNamedElement)value, diagnostics, context);
+ case UMLXPackage.UMLX_TYPED_ELEMENT:
+ return validateUMLXTypedElement((UMLXTypedElement)value, diagnostics, context);
default:
return true;
}
@@ -317,14 +339,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "RelPatternNodeNamesAreUnique", getObjectLabel(relDiagram, context) },
- new Object[] { relDiagram },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "RelPatternNodeNamesAreUnique", getObjectLabel(relDiagram, context) },
+ new Object[] { relDiagram },
+ context));
}
return false;
}
@@ -402,14 +424,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "CompatibleEdges", getObjectLabel(relInvocationNode, context) },
- new Object[] { relInvocationNode },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "CompatibleEdges", getObjectLabel(relInvocationNode, context) },
+ new Object[] { relInvocationNode },
+ context));
}
return false;
}
@@ -471,14 +493,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "AnonIsUnnamed", getObjectLabel(relPatternClassNode, context) },
- new Object[] { relPatternClassNode },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "AnonIsUnnamed", getObjectLabel(relPatternClassNode, context) },
+ new Object[] { relPatternClassNode },
+ context));
}
return false;
}
@@ -499,14 +521,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "EClassifierIsInTypedModel", getObjectLabel(relPatternClassNode, context) },
- new Object[] { relPatternClassNode },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "EClassifierIsInTypedModel", getObjectLabel(relPatternClassNode, context) },
+ new Object[] { relPatternClassNode },
+ context));
}
return false;
}
@@ -583,14 +605,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "SourceIsClassNode", getObjectLabel(relPatternEdge, context) },
- new Object[] { relPatternEdge },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "SourceIsClassNode", getObjectLabel(relPatternEdge, context) },
+ new Object[] { relPatternEdge },
+ context));
}
return false;
}
@@ -611,14 +633,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "SourceIsEClass", getObjectLabel(relPatternEdge, context) },
- new Object[] { relPatternEdge },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "SourceIsEClass", getObjectLabel(relPatternEdge, context) },
+ new Object[] { relPatternEdge },
+ context));
}
return false;
}
@@ -639,14 +661,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "CompatiblePropertySource", getObjectLabel(relPatternEdge, context) },
- new Object[] { relPatternEdge },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "CompatiblePropertySource", getObjectLabel(relPatternEdge, context) },
+ new Object[] { relPatternEdge },
+ context));
}
return false;
}
@@ -667,14 +689,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "CompatibleSourceIndex", getObjectLabel(relPatternEdge, context) },
- new Object[] { relPatternEdge },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "CompatibleSourceIndex", getObjectLabel(relPatternEdge, context) },
+ new Object[] { relPatternEdge },
+ context));
}
return false;
}
@@ -695,14 +717,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "CompatibleSourceMultiplicity", getObjectLabel(relPatternEdge, context) },
- new Object[] { relPatternEdge },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "CompatibleSourceMultiplicity", getObjectLabel(relPatternEdge, context) },
+ new Object[] { relPatternEdge },
+ context));
}
return false;
}
@@ -723,14 +745,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "CompatibleEAttributePropertyTarget", getObjectLabel(relPatternEdge, context) },
- new Object[] { relPatternEdge },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "CompatibleEAttributePropertyTarget", getObjectLabel(relPatternEdge, context) },
+ new Object[] { relPatternEdge },
+ context));
}
return false;
}
@@ -751,14 +773,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "CompatibleEReferencePropertyTarget", getObjectLabel(relPatternEdge, context) },
- new Object[] { relPatternEdge },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "CompatibleEReferencePropertyTarget", getObjectLabel(relPatternEdge, context) },
+ new Object[] { relPatternEdge },
+ context));
}
return false;
}
@@ -779,14 +801,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "CompatibleMemberPropertyTarget", getObjectLabel(relPatternEdge, context) },
- new Object[] { relPatternEdge },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "CompatibleMemberPropertyTarget", getObjectLabel(relPatternEdge, context) },
+ new Object[] { relPatternEdge },
+ context));
}
return false;
}
@@ -807,14 +829,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "CompatibleRestPropertyTarget", getObjectLabel(relPatternEdge, context) },
- new Object[] { relPatternEdge },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "CompatibleRestPropertyTarget", getObjectLabel(relPatternEdge, context) },
+ new Object[] { relPatternEdge },
+ context));
}
return false;
}
@@ -945,9 +967,11 @@ public class UMLXValidator extends EObjectValidator {
if (result || diagnostics != null) result &= validate_EveryKeyUnique(txDiagram, diagnostics, context);
if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(txDiagram, diagnostics, context);
if (result || diagnostics != null) result &= validateTxDiagram_RelDiagramNamesAreUnique(txDiagram, diagnostics, context);
+ if (result || diagnostics != null) result &= validateTxDiagram_TxQueryNodeNamesAreUnique(txDiagram, diagnostics, context);
if (result || diagnostics != null) result &= validateTxDiagram_TxTypedModelNodeNamesAreUnique(txDiagram, diagnostics, context);
- if (result || diagnostics != null) result &= validateTxDiagram_validateRelDiagramNamesAreUnique(txDiagram, diagnostics, context);
if (result || diagnostics != null) result &= validateTxDiagram_validateTxTypedModelNodeNamesAreUnique(txDiagram, diagnostics, context);
+ if (result || diagnostics != null) result &= validateTxDiagram_validateTxQueryNodeNamesAreUnique(txDiagram, diagnostics, context);
+ if (result || diagnostics != null) result &= validateTxDiagram_validateRelDiagramNamesAreUnique(txDiagram, diagnostics, context);
return result;
}
@@ -965,14 +989,42 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "RelDiagramNamesAreUnique", getObjectLabel(txDiagram, context) },
- new Object[] { txDiagram },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "RelDiagramNamesAreUnique", getObjectLabel(txDiagram, context) },
+ new Object[] { txDiagram },
+ context));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Validates the TxQueryNodeNamesAreUnique constraint of '<em>Tx Diagram</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTxDiagram_TxQueryNodeNamesAreUnique(TxDiagram txDiagram, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // TODO implement the constraint
+ // -> specify the condition that violates the constraint
+ // -> verify the diagnostic details, including severity, code, and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "TxQueryNodeNamesAreUnique", getObjectLabel(txDiagram, context) },
+ new Object[] { txDiagram },
+ context));
}
return false;
}
@@ -993,14 +1045,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "TxTypedModelNodeNamesAreUnique", getObjectLabel(txDiagram, context) },
- new Object[] { txDiagram },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "TxTypedModelNodeNamesAreUnique", getObjectLabel(txDiagram, context) },
+ new Object[] { txDiagram },
+ context));
}
return false;
}
@@ -1028,6 +1080,16 @@ public class UMLXValidator extends EObjectValidator {
}
/**
+ * Validates the validateTxQueryNodeNamesAreUnique constraint of '<em>Tx Diagram</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTxDiagram_validateTxQueryNodeNamesAreUnique(TxDiagram txDiagram, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return txDiagram.validateTxQueryNodeNamesAreUnique(diagnostics, context);
+ }
+
+ /**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
@@ -1070,14 +1132,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "PartsAreUnique", getObjectLabel(txKeyNode, context) },
- new Object[] { txKeyNode },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "PartsAreUnique", getObjectLabel(txKeyNode, context) },
+ new Object[] { txKeyNode },
+ context));
}
return false;
}
@@ -1117,6 +1179,15 @@ public class UMLXValidator extends EObjectValidator {
* <!-- end-user-doc -->
* @generated
*/
+ public boolean validateTxParameterNode(TxParameterNode txParameterNode, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(txParameterNode, diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public boolean validateTxPartNode(TxPartNode txPartNode, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(txPartNode, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(txPartNode, diagnostics, context);
@@ -1146,14 +1217,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "PartIsPropertyOfKey", getObjectLabel(txPartNode, context) },
- new Object[] { txPartNode },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "PartIsPropertyOfKey", getObjectLabel(txPartNode, context) },
+ new Object[] { txPartNode },
+ context));
}
return false;
}
@@ -1175,6 +1246,64 @@ public class UMLXValidator extends EObjectValidator {
* <!-- end-user-doc -->
* @generated
*/
+ public boolean validateTxQueryNode(TxQueryNode txQueryNode, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ if (!validate_NoCircularContainment(txQueryNode, diagnostics, context)) return false;
+ boolean result = validate_EveryMultiplicityConforms(txQueryNode, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryDataValueConforms(txQueryNode, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(txQueryNode, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(txQueryNode, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryProxyResolves(txQueryNode, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_UniqueID(txQueryNode, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryKeyUnique(txQueryNode, diagnostics, context);
+ if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(txQueryNode, diagnostics, context);
+ if (result || diagnostics != null) result &= validateTxQueryNode_ParametersAreUnique(txQueryNode, diagnostics, context);
+ if (result || diagnostics != null) result &= validateTxQueryNode_validateParametersAreUnique(txQueryNode, diagnostics, context);
+ return result;
+ }
+
+ /**
+ * Validates the ParametersAreUnique constraint of '<em>Tx Query Node</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTxQueryNode_ParametersAreUnique(TxQueryNode txQueryNode, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ // TODO implement the constraint
+ // -> specify the condition that violates the constraint
+ // -> verify the diagnostic details, including severity, code, and message
+ // Ensure that you remove @generated or mark it @generated NOT
+ if (false) {
+ if (diagnostics != null) {
+ diagnostics.add
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "ParametersAreUnique", getObjectLabel(txQueryNode, context) },
+ new Object[] { txQueryNode },
+ context));
+ }
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Validates the validateParametersAreUnique constraint of '<em>Tx Query Node</em>'.
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateTxQueryNode_validateParametersAreUnique(TxQueryNode txQueryNode, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return txQueryNode.validateParametersAreUnique(diagnostics, context);
+ }
+
+ /**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
public boolean validateTxTypedModelNode(TxTypedModelNode txTypedModelNode, DiagnosticChain diagnostics, Map<Object, Object> context) {
if (!validate_NoCircularContainment(txTypedModelNode, diagnostics, context)) return false;
boolean result = validate_EveryMultiplicityConforms(txTypedModelNode, diagnostics, context);
@@ -1204,14 +1333,14 @@ public class UMLXValidator extends EObjectValidator {
if (false) {
if (diagnostics != null) {
diagnostics.add
- (createDiagnostic
- (Diagnostic.ERROR,
- DIAGNOSTIC_SOURCE,
- 0,
- "_UI_GenericConstraint_diagnostic",
- new Object[] { "TxPackageNodePackagesAreUnique", getObjectLabel(txTypedModelNode, context) },
- new Object[] { txTypedModelNode },
- context));
+ (createDiagnostic
+ (Diagnostic.ERROR,
+ DIAGNOSTIC_SOURCE,
+ 0,
+ "_UI_GenericConstraint_diagnostic",
+ new Object[] { "TxPackageNodePackagesAreUnique", getObjectLabel(txTypedModelNode, context) },
+ new Object[] { txTypedModelNode },
+ context));
}
return false;
}
@@ -1256,6 +1385,15 @@ public class UMLXValidator extends EObjectValidator {
}
/**
+ * <!-- begin-user-doc -->
+ * <!-- end-user-doc -->
+ * @generated
+ */
+ public boolean validateUMLXTypedElement(UMLXTypedElement umlxTypedElement, DiagnosticChain diagnostics, Map<Object, Object> context) {
+ return validate_EveryDefaultConstraint(umlxTypedElement, diagnostics, context);
+ }
+
+ /**
* Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXVisitor.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXVisitor.java
index ded111a4b..491b4253b 100644
--- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXVisitor.java
+++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/util/UMLXVisitor.java
@@ -56,9 +56,12 @@ public interface UMLXVisitor<R>
R visitTxKeyNode(org.eclipse.qvtd.umlx.@NonNull TxKeyNode object);
R visitTxNode(org.eclipse.qvtd.umlx.@NonNull TxNode object);
R visitTxPackageNode(org.eclipse.qvtd.umlx.@NonNull TxPackageNode object);
+ R visitTxParameterNode(org.eclipse.qvtd.umlx.@NonNull TxParameterNode object);
R visitTxPartNode(org.eclipse.qvtd.umlx.@NonNull TxPartNode object);
+ R visitTxQueryNode(org.eclipse.qvtd.umlx.@NonNull TxQueryNode object);
R visitTxTypedModelNode(org.eclipse.qvtd.umlx.@NonNull TxTypedModelNode object);
R visitUMLXElement(org.eclipse.qvtd.umlx.@NonNull UMLXElement object);
R visitUMLXModel(org.eclipse.qvtd.umlx.@NonNull UMLXModel object);
R visitUMLXNamedElement(org.eclipse.qvtd.umlx.@NonNull UMLXNamedElement object);
+ R visitUMLXTypedElement(org.eclipse.qvtd.umlx.@NonNull UMLXTypedElement object);
}
diff --git a/plugins/org.eclipse.qvtd.umlx/model/UMLX.ecore b/plugins/org.eclipse.qvtd.umlx/model/UMLX.ecore
index 98c7a1fa8..1777d6cfa 100644
--- a/plugins/org.eclipse.qvtd.umlx/model/UMLX.ecore
+++ b/plugins/org.eclipse.qvtd.umlx/model/UMLX.ecore
@@ -1,213 +1,645 @@
<?xml version="1.0" encoding="UTF-8"?>
-<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="umlx" nsURI="http://www.eclipse.org/qvt/2016/UMLX" nsPrefix="umlx">
- <eAnnotations source="http://www.eclipse.org/OCL/Import">
- <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/>
+<ecore:EPackage
+ xmi:version="2.0"
+ xmlns:xmi="http://www.omg.org/XMI"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
+ name="umlx"
+ nsURI="http://www.eclipse.org/qvt/2016/UMLX"
+ nsPrefix="umlx">
+ <eAnnotations
+ source="http://www.eclipse.org/OCL/Import">
+ <details
+ key="ecore"
+ value="http://www.eclipse.org/emf/2002/Ecore"/>
</eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="invocationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
- <details key="settingDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
- <details key="validationDelegates" value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore">
+ <details
+ key="invocationDelegates"
+ value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
+ <details
+ key="settingDelegates"
+ value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
+ <details
+ key="validationDelegates"
+ value="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"/>
</eAnnotations>
- <eClassifiers xsi:type="ecore:EClass" name="RelDiagram" eSuperTypes="#//UMLXNamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="RelPatternNodeNamesAreUnique"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="RelDiagram"
+ eSuperTypes="#//UMLXNamedElement">
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore">
+ <details
+ key="constraints"
+ value="RelPatternNodeNamesAreUnique"/>
</eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="RelPatternNodeNamesAreUnique" value="let allNames = ownedRelDomainNodes.ownedRelPatternNodes->selectByKind(RelPatternClassNode)->select(not isAnon).name in&#xA;&#x9;&#x9;Tuple{status : Boolean = allNames->isUnique(n | n),&#xA;&#x9;&#x9;&#x9;message : String = let repeatedNames = allNames->select(n | allNames->count(n) > 1)->asSet() in&#xA;&#x9;&#x9;&#x9;repeatedNames->iterate(n; acc:String = 'RelDiagram::RelPatternNodeNamesAreUnique:' | acc + ' \'' + n + '\'') + ' are not unique for ' + name&#xA;&#x9;&#x9;}.status"/>
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details
+ key="RelPatternNodeNamesAreUnique"
+ value="let allNames = ownedRelDomainNodes.ownedRelPatternNodes->selectByKind(RelPatternClassNode)->select(not isAnon).name in&#xA;&#x9;&#x9;Tuple{status : Boolean = allNames->isUnique(n | n),&#xA;&#x9;&#x9;&#x9;message : String = let repeatedNames = allNames->select(n | allNames->count(n) > 1)->asSet() in&#xA;&#x9;&#x9;&#x9;repeatedNames->iterate(n; acc:String = 'RelDiagram::RelPatternNodeNamesAreUnique:' | acc + ' \'' + n + '\'') + ' are not unique for ' + name&#xA;&#x9;&#x9;}.status"/>
</eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isTop" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="isTop"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="false"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRelDomainNodes" upperBound="-1"
- eType="#//RelDomainNode" containment="true" eOpposite="#//RelDomainNode/owningRelDiagram"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRelInvocationNodes"
- upperBound="-1" eType="#//RelInvocationNode" containment="true" eOpposite="#//RelInvocationNode/owningRelDiagram"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningTxDiagram" lowerBound="1"
- eType="#//TxDiagram" eOpposite="#//TxDiagram/ownedRelDiagrams"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RelDomainNode" eSuperTypes="#//RelNode">
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRelPatternEdges" upperBound="-1"
- eType="#//RelPatternEdge" containment="true" eOpposite="#//RelPatternEdge/owningRelDomainNode"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRelPatternNodes" upperBound="-1"
- eType="#//RelPatternNode" containment="true" eOpposite="#//RelPatternNode/owningRelDomainNode"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningRelDiagram" lowerBound="1"
- eType="#//RelDiagram" eOpposite="#//RelDiagram/ownedRelDomainNodes"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="referredTxTypedModelNode"
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedRelDomainNodes"
+ upperBound="-1"
+ eType="#//RelDomainNode"
+ containment="true"
+ eOpposite="#//RelDomainNode/owningRelDiagram"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedRelInvocationNodes"
+ upperBound="-1"
+ eType="#//RelInvocationNode"
+ containment="true"
+ eOpposite="#//RelInvocationNode/owningRelDiagram"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningTxDiagram"
+ lowerBound="1"
+ eType="#//TxDiagram"
+ eOpposite="#//TxDiagram/ownedRelDiagrams"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="RelDomainNode"
+ eSuperTypes="#//RelNode">
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedRelPatternEdges"
+ upperBound="-1"
+ eType="#//RelPatternEdge"
+ containment="true"
+ eOpposite="#//RelPatternEdge/owningRelDomainNode"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedRelPatternNodes"
+ upperBound="-1"
+ eType="#//RelPatternNode"
+ containment="true"
+ eOpposite="#//RelPatternNode/owningRelDomainNode"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningRelDiagram"
+ lowerBound="1"
+ eType="#//RelDiagram"
+ eOpposite="#//RelDiagram/ownedRelDomainNodes"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="referredTxTypedModelNode"
eType="#//TxTypedModelNode"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RelEdge" abstract="true" eSuperTypes="#//UMLXElement"/>
- <eClassifiers xsi:type="ecore:EClass" name="RelInvocationEdge" eSuperTypes="#//RelEdge">
- <eStructuralFeatures xsi:type="ecore:EReference" name="invokingRelPatternNode"
- lowerBound="1" eType="#//RelPatternNode"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningRelInvocationNode"
- lowerBound="1" eType="#//RelInvocationNode" eOpposite="#//RelInvocationNode/ownedRelInvocationEdges"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="referredRelPatternNode"
- lowerBound="1" eType="#//RelPatternClassNode"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RelInvocationNode" eSuperTypes="#//RelNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="CompatibleEdges"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="CompatibleEdges" value="&#xA;&#x9;&#x9;&#x9;let expectedNodes = referredRelDiagram.ownedRelDomainNodes.ownedRelPatternNodes->select(isRoot)->asSet() in&#xA;&#x9;&#x9;&#x9;let actualNodes = ownedRelInvocationEdges.referredRelPatternNode->asSet() in&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;Tuple{status : Boolean = expectedNodes = actualNodes,&#xA;&#x9;&#x9;&#x9;&#x9;message : String = 'RelInvocationNode::CompatibleEdges ' + expectedNodes->size().toString() + '/' + expectedNodes->size().toString()&#xA;&#x9;&#x9;&#x9;}.status"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isThen" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningRelDiagram" lowerBound="1"
- eType="#//RelDiagram" eOpposite="#//RelDiagram/ownedRelInvocationNodes"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRelInvocationEdges"
- upperBound="-1" eType="#//RelInvocationEdge" containment="true" eOpposite="#//RelInvocationEdge/owningRelInvocationNode"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="referredRelDiagram" lowerBound="1"
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="RelEdge"
+ abstract="true"
+ eSuperTypes="#//UMLXElement"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="RelInvocationEdge"
+ eSuperTypes="#//RelEdge">
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="invokingRelPatternNode"
+ lowerBound="1"
+ eType="#//RelPatternNode"
+ eOpposite="#//RelPatternNode/invokingRelInvocationEdges"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningRelInvocationNode"
+ lowerBound="1"
+ eType="#//RelInvocationNode"
+ eOpposite="#//RelInvocationNode/ownedRelInvocationEdges"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="referredRelPatternNode"
+ lowerBound="1"
+ eType="#//RelPatternClassNode"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="RelInvocationNode"
+ eSuperTypes="#//RelNode">
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore">
+ <details
+ key="constraints"
+ value="CompatibleEdges"/>
+ </eAnnotations>
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details
+ key="CompatibleEdges"
+ value="&#xA;&#x9;&#x9;&#x9;let expectedNodes = referredRelDiagram.ownedRelDomainNodes.ownedRelPatternNodes->select(isRoot)->asSet() in&#xA;&#x9;&#x9;&#x9;let actualNodes = ownedRelInvocationEdges.referredRelPatternNode->asSet() in&#x9;&#x9;&#xA;&#x9;&#x9;&#x9;Tuple{status : Boolean = expectedNodes = actualNodes,&#xA;&#x9;&#x9;&#x9;&#x9;message : String = 'RelInvocationNode::CompatibleEdges ' + expectedNodes->size().toString() + '/' + expectedNodes->size().toString()&#xA;&#x9;&#x9;&#x9;}.status"/>
+ </eAnnotations>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="isThen"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningRelDiagram"
+ lowerBound="1"
+ eType="#//RelDiagram"
+ eOpposite="#//RelDiagram/ownedRelInvocationNodes"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedRelInvocationEdges"
+ upperBound="-1"
+ eType="#//RelInvocationEdge"
+ containment="true"
+ eOpposite="#//RelInvocationEdge/owningRelInvocationNode"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="referredRelDiagram"
+ lowerBound="1"
eType="#//RelDiagram"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RelNode" abstract="true" eSuperTypes="#//UMLXElement"/>
- <eClassifiers xsi:type="ecore:EClass" name="RelPatternClassNode" eSuperTypes="#//RelPatternNode #//UMLXNamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="AnonIsUnnamed EClassifierIsInTypedModel"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="AnonIsUnnamed" value="isAnon = (name = '')"/>
- <details key="EClassifierIsInTypedModel" value="let txTypedModelNode = owningRelDomainNode.referredTxTypedModelNode in&#xA;&#x9;&#x9;txTypedModelNode &lt;> null implies&#xA;&#x9;&#x9;txTypedModelNode.ownedTxPackageNodes.referredEPackage.eClassifiers->includes(referredEClassifier)"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isAnon" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isMany" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isNullFree" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOrdered" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRequired" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isUnique" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="true"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="outgoing" upperBound="-1"
- eType="#//RelPatternEdge" eOpposite="#//RelPatternEdge/source"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="referredEClassifier" lowerBound="1"
- eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClassifier"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="relDomainNode" eType="#//RelDomainNode"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RelPatternEdge" eSuperTypes="#//RelEdge">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="SourceIsClassNode SourceIsEClass CompatiblePropertySource CompatibleSourceIndex CompatibleSourceMultiplicity CompatibleEAttributePropertyTarget CompatibleEReferencePropertyTarget CompatibleMemberPropertyTarget CompatibleRestPropertyTarget"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="SourceIsClassNode" value="&#xA;&#x9;&#x9;&#x9;source.oclIsKindOf(RelPatternClassNode)"/>
- <details key="SourceIsEClass" value="&#xA;&#x9;&#x9;&#x9;source.oclIsKindOf(RelPatternClassNode) implies&#xA;&#x9;&#x9;&#x9;source.oclAsType(RelPatternClassNode).referredEClassifier.oclIsKindOf(ecore::EClassifier)"/>
- <details key="CompatiblePropertySource" value="&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature &lt;> null implies&#xA;&#x9;&#x9;&#x9;source.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass)->closure(eSuperTypes)->includes(referredEStructuralFeature.eContainingClass)"/>
- <details key="CompatibleSourceIndex" value="&#xA;&#x9;&#x9;&#x9;(referredEStructuralFeature &lt;> null) = (sourceIndex = 0)"/>
- <details key="CompatibleSourceMultiplicity" value="&#xA;&#x9;&#x9;&#x9;(referredEStructuralFeature = null) = source.oclAsType(RelPatternClassNode).isMany"/>
- <details key="CompatibleEAttributePropertyTarget" value="&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature &lt;> null and&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature.oclIsKindOf(ecore::EAttribute) and&#xA;&#x9;&#x9;&#x9;target.oclIsKindOf(RelPatternClassNode) implies&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature.eType = target.oclAsType(RelPatternClassNode).referredEClassifier"/>
- <details key="CompatibleEReferencePropertyTarget" value="&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature &lt;> null and&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature.oclIsKindOf(ecore::EReference) and&#xA;&#x9;&#x9;&#x9;target.oclIsKindOf(RelPatternClassNode) implies&#xA;&#x9;&#x9;&#x9;let sourceEClass = target.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in&#xA;&#x9;&#x9;&#x9;sourceEClass->closure(eSuperTypes)->includes(referredEStructuralFeature.eType)"/>
- <details key="CompatibleMemberPropertyTarget" value="&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature = null and&#xA;&#x9;&#x9;&#x9;sourceIndex > 0 and&#xA;&#x9;&#x9;&#x9;target.oclIsKindOf(RelPatternClassNode) implies&#xA;&#x9;&#x9;&#x9;let sourceEClass = source.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in&#xA;&#x9;&#x9;&#x9;let targetEClass = target.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in&#xA;&#x9;&#x9;&#x9;sourceEClass->closure(eSuperTypes)->includes(targetEClass) or targetEClass->closure(eSuperTypes)->includes(sourceEClass)"/>
- <details key="CompatibleRestPropertyTarget" value="&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature = null and&#xA;&#x9;&#x9;&#x9;sourceIndex &lt; 0 and&#xA;&#x9;&#x9;&#x9;target.oclIsKindOf(RelPatternClassNode) implies&#xA;&#x9;&#x9;&#x9;let sourceClassNode = source.oclAsType(RelPatternClassNode) in&#xA;&#x9;&#x9;&#x9;let targetClassNode = target.oclAsType(RelPatternClassNode) in&#xA;&#x9;&#x9;&#x9;let sourceEClass = sourceClassNode.referredEClassifier.oclAsType(ecore::EClass) in&#xA;&#x9;&#x9;&#x9;let targetEClass = targetClassNode.referredEClassifier.oclAsType(ecore::EClass) in&#xA;&#x9;&#x9;&#x9;sourceEClass = targetEClass and&#xA;&#x9;&#x9;&#x9;sourceClassNode.isMany = targetClassNode.isMany and&#xA;&#x9;&#x9;&#x9;sourceClassNode.isNullFree = targetClassNode.isNullFree and&#xA;&#x9;&#x9;&#x9;sourceClassNode.isOrdered = targetClassNode.isOrdered and&#xA;&#x9;&#x9;&#x9;sourceClassNode.isUnique = targetClassNode.isUnique"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningRelDomainNode" eType="#//RelDomainNode"
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="RelNode"
+ abstract="true"
+ eSuperTypes="#//UMLXElement"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="RelPatternClassNode"
+ eSuperTypes="#//RelPatternNode #//UMLXTypedElement">
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore">
+ <details
+ key="constraints"
+ value="AnonIsUnnamed EClassifierIsInTypedModel"/>
+ </eAnnotations>
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details
+ key="AnonIsUnnamed"
+ value="isAnon = (name = '')"/>
+ <details
+ key="EClassifierIsInTypedModel"
+ value="let txTypedModelNode = owningRelDomainNode.referredTxTypedModelNode in&#xA;&#x9;&#x9;txTypedModelNode &lt;> null implies&#xA;&#x9;&#x9;txTypedModelNode.ownedTxPackageNodes.referredEPackage.eClassifiers->includes(referredEClassifier)"/>
+ </eAnnotations>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="isAnon"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="outgoing"
+ upperBound="-1"
+ eType="#//RelPatternEdge"
+ eOpposite="#//RelPatternEdge/source"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="relDomainNode"
+ eType="#//RelDomainNode"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="RelPatternEdge"
+ eSuperTypes="#//RelEdge">
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore">
+ <details
+ key="constraints"
+ value="SourceIsClassNode SourceIsEClass CompatiblePropertySource CompatibleSourceIndex CompatibleSourceMultiplicity CompatibleEAttributePropertyTarget CompatibleEReferencePropertyTarget CompatibleMemberPropertyTarget CompatibleRestPropertyTarget"/>
+ </eAnnotations>
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details
+ key="SourceIsClassNode"
+ value="&#xA;&#x9;&#x9;&#x9;source.oclIsKindOf(RelPatternClassNode)"/>
+ <details
+ key="SourceIsEClass"
+ value="&#xA;&#x9;&#x9;&#x9;source.oclIsKindOf(RelPatternClassNode) implies&#xA;&#x9;&#x9;&#x9;source.oclAsType(RelPatternClassNode).referredEClassifier.oclIsKindOf(ecore::EClassifier)"/>
+ <details
+ key="CompatiblePropertySource"
+ value="&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature &lt;> null implies&#xA;&#x9;&#x9;&#x9;source.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass)->closure(eSuperTypes)->includes(referredEStructuralFeature.eContainingClass)"/>
+ <details
+ key="CompatibleSourceIndex"
+ value="&#xA;&#x9;&#x9;&#x9;(referredEStructuralFeature &lt;> null) = (sourceIndex = 0)"/>
+ <details
+ key="CompatibleSourceMultiplicity"
+ value="&#xA;&#x9;&#x9;&#x9;(referredEStructuralFeature = null) = source.oclAsType(RelPatternClassNode).isMany"/>
+ <details
+ key="CompatibleEAttributePropertyTarget"
+ value="&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature &lt;> null and&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature.oclIsKindOf(ecore::EAttribute) and&#xA;&#x9;&#x9;&#x9;target.oclIsKindOf(RelPatternClassNode) implies&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature.eType = target.oclAsType(RelPatternClassNode).referredEClassifier"/>
+ <details
+ key="CompatibleEReferencePropertyTarget"
+ value="&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature &lt;> null and&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature.oclIsKindOf(ecore::EReference) and&#xA;&#x9;&#x9;&#x9;target.oclIsKindOf(RelPatternClassNode) implies&#xA;&#x9;&#x9;&#x9;let sourceEClass = target.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in&#xA;&#x9;&#x9;&#x9;sourceEClass->closure(eSuperTypes)->includes(referredEStructuralFeature.eType)"/>
+ <details
+ key="CompatibleMemberPropertyTarget"
+ value="&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature = null and&#xA;&#x9;&#x9;&#x9;sourceIndex > 0 and&#xA;&#x9;&#x9;&#x9;target.oclIsKindOf(RelPatternClassNode) implies&#xA;&#x9;&#x9;&#x9;let sourceEClass = source.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in&#xA;&#x9;&#x9;&#x9;let targetEClass = target.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in&#xA;&#x9;&#x9;&#x9;sourceEClass->closure(eSuperTypes)->includes(targetEClass) or targetEClass->closure(eSuperTypes)->includes(sourceEClass)"/>
+ <details
+ key="CompatibleRestPropertyTarget"
+ value="&#xA;&#x9;&#x9;&#x9;referredEStructuralFeature = null and&#xA;&#x9;&#x9;&#x9;sourceIndex &lt; 0 and&#xA;&#x9;&#x9;&#x9;target.oclIsKindOf(RelPatternClassNode) implies&#xA;&#x9;&#x9;&#x9;let sourceClassNode = source.oclAsType(RelPatternClassNode) in&#xA;&#x9;&#x9;&#x9;let targetClassNode = target.oclAsType(RelPatternClassNode) in&#xA;&#x9;&#x9;&#x9;let sourceEClass = sourceClassNode.referredEClassifier.oclAsType(ecore::EClass) in&#xA;&#x9;&#x9;&#x9;let targetEClass = targetClassNode.referredEClassifier.oclAsType(ecore::EClass) in&#xA;&#x9;&#x9;&#x9;sourceEClass = targetEClass and&#xA;&#x9;&#x9;&#x9;sourceClassNode.isMany = targetClassNode.isMany and&#xA;&#x9;&#x9;&#x9;sourceClassNode.isNullFree = targetClassNode.isNullFree and&#xA;&#x9;&#x9;&#x9;sourceClassNode.isOrdered = targetClassNode.isOrdered and&#xA;&#x9;&#x9;&#x9;sourceClassNode.isUnique = targetClassNode.isUnique"/>
+ </eAnnotations>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningRelDomainNode"
+ eType="#//RelDomainNode"
eOpposite="#//RelDomainNode/ownedRelPatternEdges"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="referredEStructuralFeature"
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="referredEStructuralFeature"
eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="source" lowerBound="1"
- eType="#//RelPatternClassNode" eOpposite="#//RelPatternClassNode/outgoing"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="sourceIndex" lowerBound="1"
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="source"
+ lowerBound="1"
+ eType="#//RelPatternClassNode"
+ eOpposite="#//RelPatternClassNode/outgoing"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="sourceIndex"
+ lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EInt"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="target" lowerBound="1"
- eType="#//RelPatternNode" eOpposite="#//RelPatternNode/incoming"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="target"
+ lowerBound="1"
+ eType="#//RelPatternNode"
+ eOpposite="#//RelPatternNode/incoming"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="RelPatternExpressionNode"
+ eSuperTypes="#//RelPatternNode"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="RelPatternNode"
+ abstract="true"
+ eSuperTypes="#//RelNode">
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="incoming"
+ upperBound="-1"
+ eType="#//RelPatternEdge"
+ eOpposite="#//RelPatternEdge/target"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="initExpressionLines"
+ upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="isRoot"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningRelDomainNode"
+ lowerBound="1"
+ eType="#//RelDomainNode"
+ eOpposite="#//RelDomainNode/ownedRelPatternNodes"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="invokingRelInvocationEdges"
+ upperBound="-1"
+ eType="#//RelInvocationEdge"
+ eOpposite="#//RelInvocationEdge/invokingRelPatternNode"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="TxDiagram"
+ eSuperTypes="#//UMLXNamedElement">
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore">
+ <details
+ key="constraints"
+ value="RelDiagramNamesAreUnique TxQueryNodeNamesAreUnique TxTypedModelNodeNamesAreUnique"/>
+ </eAnnotations>
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details
+ key="RelDiagramNamesAreUnique"
+ value="ownedRelDiagrams->isUnique(name)"/>
+ <details
+ key="TxQueryNodeNamesAreUnique"
+ value="ownedTxQueryNodes->isUnique(name)"/>
+ <details
+ key="TxTypedModelNodeNamesAreUnique"
+ value="ownedTxTypedModelNodes->isUnique(name)"/>
+ </eAnnotations>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedRelDiagrams"
+ upperBound="-1"
+ eType="#//RelDiagram"
+ containment="true"
+ eOpposite="#//RelDiagram/owningTxDiagram"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedTxImportNodes"
+ upperBound="-1"
+ eType="#//TxImportNode"
+ containment="true"
+ eOpposite="#//TxImportNode/owningTxDiagram"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedTxKeyNodes"
+ upperBound="-1"
+ eType="#//TxKeyNode"
+ containment="true"
+ eOpposite="#//TxKeyNode/owningTxDiagram"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedTxQueryNodes"
+ upperBound="-1"
+ eType="#//TxQueryNode"
+ containment="true"
+ eOpposite="#//TxQueryNode/owningTxDiagram"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedTxTypedModelNodes"
+ upperBound="-1"
+ eType="#//TxTypedModelNode"
+ containment="true"
+ eOpposite="#//TxTypedModelNode/owningTxDiagram"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="package"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RelPatternExpressionNode" eSuperTypes="#//RelPatternNode">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="expression" lowerBound="1"
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="TxImportNode"
+ eSuperTypes="#//TxNode #//UMLXNamedElement">
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningTxDiagram"
+ lowerBound="1"
+ eType="#//TxDiagram"
+ eOpposite="#//TxDiagram/ownedTxImportNodes"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="uri"
+ lowerBound="1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="RelPatternNode" abstract="true" eSuperTypes="#//RelNode">
- <eStructuralFeatures xsi:type="ecore:EReference" name="incoming" upperBound="-1"
- eType="#//RelPatternEdge" eOpposite="#//RelPatternEdge/target"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isRoot" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningRelDomainNode" lowerBound="1"
- eType="#//RelDomainNode" eOpposite="#//RelDomainNode/ownedRelPatternNodes"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TxDiagram" eSuperTypes="#//UMLXNamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="RelDiagramNamesAreUnique TxTypedModelNodeNamesAreUnique"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="RelDiagramNamesAreUnique" value="ownedRelDiagrams->isUnique(name)"/>
- <details key="TxTypedModelNodeNamesAreUnique" value="ownedTxTypedModelNodes->isUnique(name)"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedRelDiagrams" upperBound="-1"
- eType="#//RelDiagram" containment="true" eOpposite="#//RelDiagram/owningTxDiagram"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTxImportNodes" upperBound="-1"
- eType="#//TxImportNode" containment="true" eOpposite="#//TxImportNode/owningTxDiagram"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTxKeyNodes" upperBound="-1"
- eType="#//TxKeyNode" containment="true" eOpposite="#//TxKeyNode/owningTxDiagram"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTxTypedModelNodes"
- upperBound="-1" eType="#//TxTypedModelNode" containment="true" eOpposite="#//TxTypedModelNode/owningTxDiagram"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="package" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TxImportNode" eSuperTypes="#//TxNode #//UMLXNamedElement">
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningTxDiagram" lowerBound="1"
- eType="#//TxDiagram" eOpposite="#//TxDiagram/ownedTxImportNodes"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="uri" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TxKeyNode" eSuperTypes="#//TxNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="PartsAreUnique"/>
- </eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="PartsAreUnique" value="ownedTxPartNodes->isUnique(referredEStructuralFeature)"/>
- </eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTxPartNodes" lowerBound="1"
- upperBound="-1" eType="#//TxPartNode" containment="true" eOpposite="#//TxPartNode/owningTxKeyNode"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningTxDiagram" lowerBound="1"
- eType="#//TxDiagram" eOpposite="#//TxDiagram/ownedTxKeyNodes"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="referredEClass" lowerBound="1"
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="TxKeyNode"
+ eSuperTypes="#//TxNode">
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore">
+ <details
+ key="constraints"
+ value="PartsAreUnique"/>
+ </eAnnotations>
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details
+ key="PartsAreUnique"
+ value="ownedTxPartNodes->isUnique(referredEStructuralFeature)"/>
+ </eAnnotations>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedTxPartNodes"
+ lowerBound="1"
+ upperBound="-1"
+ eType="#//TxPartNode"
+ containment="true"
+ eOpposite="#//TxPartNode/owningTxKeyNode"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningTxDiagram"
+ lowerBound="1"
+ eType="#//TxDiagram"
+ eOpposite="#//TxDiagram/ownedTxKeyNodes"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="referredEClass"
+ lowerBound="1"
eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClass"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TxNode" eSuperTypes="#//UMLXElement"/>
- <eClassifiers xsi:type="ecore:EClass" name="TxPackageNode" eSuperTypes="#//TxNode">
- <eStructuralFeatures xsi:type="ecore:EReference" name="referredEPackage" lowerBound="1"
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="TxNode"
+ eSuperTypes="#//UMLXElement"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="TxPackageNode"
+ eSuperTypes="#//TxNode">
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="referredEPackage"
+ lowerBound="1"
eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EPackage"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningTxTypedModelNode"
- lowerBound="1" eType="#//TxTypedModelNode" eOpposite="#//TxTypedModelNode/ownedTxPackageNodes"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningTxTypedModelNode"
+ lowerBound="1"
+ eType="#//TxTypedModelNode"
+ eOpposite="#//TxTypedModelNode/ownedTxPackageNodes"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TxPartNode" eSuperTypes="#//TxNode">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="PartIsPropertyOfKey"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="TxParameterNode"
+ eSuperTypes="#//TxNode #//UMLXTypedElement">
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningTxQueryNode"
+ lowerBound="1"
+ eType="#//TxQueryNode"
+ eOpposite="#//TxQueryNode/ownedTxParameterNodes"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="TxPartNode"
+ eSuperTypes="#//TxNode">
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore">
+ <details
+ key="constraints"
+ value="PartIsPropertyOfKey"/>
</eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="PartIsPropertyOfKey" value="owningTxKeyNode.referredEClass.oclAsType(ecore::EClass)->closure(eSuperTypes)->includes(referredEStructuralFeature.eContainingClass)"/>
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details
+ key="PartIsPropertyOfKey"
+ value="owningTxKeyNode.referredEClass.oclAsType(ecore::EClass)->closure(eSuperTypes)->includes(referredEStructuralFeature.eContainingClass)"/>
</eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningTxKeyNode" lowerBound="1"
- eType="#//TxKeyNode" eOpposite="#//TxKeyNode/ownedTxPartNodes"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="isOpposite" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="referredEStructuralFeature"
- lowerBound="1" eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningTxKeyNode"
+ lowerBound="1"
+ eType="#//TxKeyNode"
+ eOpposite="#//TxKeyNode/ownedTxPartNodes"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="isOpposite"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="referredEStructuralFeature"
+ lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EStructuralFeature"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="TxTypedModelNode" eSuperTypes="#//TxNode #//UMLXNamedElement">
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore">
- <details key="constraints" value="TxPackageNodePackagesAreUnique"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="TxQueryNode"
+ eSuperTypes="#//TxNode #//UMLXTypedElement">
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore">
+ <details
+ key="constraints"
+ value="ParametersAreUnique"/>
+ </eAnnotations>
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details
+ key="ParametersAreUnique"
+ value="ownedTxParameterNodes->isUnique(name)"/>
</eAnnotations>
- <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
- <details key="TxPackageNodePackagesAreUnique" value="ownedTxPackageNodes->isUnique(referredEPackage)"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="initExpressionLines"
+ upperBound="-1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedTxParameterNodes"
+ lowerBound="1"
+ upperBound="-1"
+ eType="#//TxParameterNode"
+ containment="true"
+ eOpposite="#//TxParameterNode/owningTxQueryNode"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningTxDiagram"
+ lowerBound="1"
+ eType="#//TxDiagram"
+ eOpposite="#//TxDiagram/ownedTxQueryNodes"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="TxTypedModelNode"
+ eSuperTypes="#//TxNode #//UMLXNamedElement">
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore">
+ <details
+ key="constraints"
+ value="TxPackageNodePackagesAreUnique"/>
</eAnnotations>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="check" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ <eAnnotations
+ source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot">
+ <details
+ key="TxPackageNodePackagesAreUnique"
+ value="ownedTxPackageNodes->isUnique(referredEPackage)"/>
+ </eAnnotations>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="check"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="enforce"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
defaultValueLiteral="false"/>
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="enforce" lowerBound="1"
- eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean" defaultValueLiteral="false"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTxPackageNodes" upperBound="-1"
- eType="#//TxPackageNode" containment="true" eOpposite="#//TxPackageNode/owningTxTypedModelNode"/>
- <eStructuralFeatures xsi:type="ecore:EReference" name="owningTxDiagram" lowerBound="1"
- eType="#//TxDiagram" eOpposite="#//TxDiagram/ownedTxTypedModelNodes"/>
- </eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="UMLXElement" abstract="true">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="comments" upperBound="-1"
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedTxPackageNodes"
+ upperBound="-1"
+ eType="#//TxPackageNode"
+ containment="true"
+ eOpposite="#//TxPackageNode/owningTxTypedModelNode"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="owningTxDiagram"
+ lowerBound="1"
+ eType="#//TxDiagram"
+ eOpposite="#//TxDiagram/ownedTxTypedModelNodes"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="UMLXElement"
+ abstract="true">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="comments"
+ upperBound="-1"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="UMLXModel" eSuperTypes="#//UMLXElement">
- <eStructuralFeatures xsi:type="ecore:EReference" name="ownedTxDiagrams" upperBound="-1"
- eType="#//TxDiagram" containment="true"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="UMLXModel"
+ eSuperTypes="#//UMLXElement">
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="ownedTxDiagrams"
+ upperBound="-1"
+ eType="#//TxDiagram"
+ containment="true"/>
+ </eClassifiers>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="UMLXNamedElement"
+ abstract="true"
+ eSuperTypes="#//UMLXElement">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="name"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
- <eClassifiers xsi:type="ecore:EClass" name="UMLXNamedElement" abstract="true" eSuperTypes="#//UMLXElement">
- <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
+ <eClassifiers
+ xsi:type="ecore:EClass"
+ name="UMLXTypedElement"
+ abstract="true"
+ eSuperTypes="#//UMLXNamedElement">
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="isMany"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="isNullFree"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="isOrdered"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="false"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="isRequired"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EAttribute"
+ name="isUnique"
+ lowerBound="1"
+ eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EBoolean"
+ defaultValueLiteral="true"/>
+ <eStructuralFeatures
+ xsi:type="ecore:EReference"
+ name="referredEClassifier"
+ lowerBound="1"
+ eType="ecore:EClass http://www.eclipse.org/emf/2002/Ecore#//EClassifier"/>
</eClassifiers>
</ecore:EPackage>
diff --git a/plugins/org.eclipse.qvtd.umlx/model/UMLX.genmodel b/plugins/org.eclipse.qvtd.umlx/model/UMLX.genmodel
index be6d599e1..5de3af784 100644
--- a/plugins/org.eclipse.qvtd.umlx/model/UMLX.genmodel
+++ b/plugins/org.eclipse.qvtd.umlx/model/UMLX.genmodel
@@ -51,13 +51,7 @@
<genClasses image="false" ecoreClass="UMLX.ecore#//RelNode"/>
<genClasses ecoreClass="UMLX.ecore#//RelPatternClassNode">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//RelPatternClassNode/isAnon"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//RelPatternClassNode/isMany"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//RelPatternClassNode/isNullFree"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//RelPatternClassNode/isOrdered"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//RelPatternClassNode/isRequired"/>
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//RelPatternClassNode/isUnique"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference UMLX.ecore#//RelPatternClassNode/outgoing"/>
- <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference UMLX.ecore#//RelPatternClassNode/referredEClassifier"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference UMLX.ecore#//RelPatternClassNode/relDomainNode"/>
</genClasses>
<genClasses ecoreClass="UMLX.ecore#//RelPatternEdge">
@@ -67,18 +61,19 @@
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//RelPatternEdge/sourceIndex"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference UMLX.ecore#//RelPatternEdge/target"/>
</genClasses>
- <genClasses ecoreClass="UMLX.ecore#//RelPatternExpressionNode">
- <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//RelPatternExpressionNode/expression"/>
- </genClasses>
+ <genClasses ecoreClass="UMLX.ecore#//RelPatternExpressionNode"/>
<genClasses image="false" ecoreClass="UMLX.ecore#//RelPatternNode">
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference UMLX.ecore#//RelPatternNode/incoming"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//RelPatternNode/initExpressionLines"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//RelPatternNode/isRoot"/>
<genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference UMLX.ecore#//RelPatternNode/owningRelDomainNode"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference UMLX.ecore#//RelPatternNode/invokingRelInvocationEdges"/>
</genClasses>
<genClasses ecoreClass="UMLX.ecore#//TxDiagram">
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference UMLX.ecore#//TxDiagram/ownedRelDiagrams"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference UMLX.ecore#//TxDiagram/ownedTxImportNodes"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference UMLX.ecore#//TxDiagram/ownedTxKeyNodes"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference UMLX.ecore#//TxDiagram/ownedTxQueryNodes"/>
<genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference UMLX.ecore#//TxDiagram/ownedTxTypedModelNodes"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//TxDiagram/package"/>
</genClasses>
@@ -96,11 +91,19 @@
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference UMLX.ecore#//TxPackageNode/referredEPackage"/>
<genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference UMLX.ecore#//TxPackageNode/owningTxTypedModelNode"/>
</genClasses>
+ <genClasses ecoreClass="UMLX.ecore#//TxParameterNode">
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference UMLX.ecore#//TxParameterNode/owningTxQueryNode"/>
+ </genClasses>
<genClasses ecoreClass="UMLX.ecore#//TxPartNode">
<genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference UMLX.ecore#//TxPartNode/owningTxKeyNode"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//TxPartNode/isOpposite"/>
<genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference UMLX.ecore#//TxPartNode/referredEStructuralFeature"/>
</genClasses>
+ <genClasses ecoreClass="UMLX.ecore#//TxQueryNode">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//TxQueryNode/initExpressionLines"/>
+ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference UMLX.ecore#//TxQueryNode/ownedTxParameterNodes"/>
+ <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference UMLX.ecore#//TxQueryNode/owningTxDiagram"/>
+ </genClasses>
<genClasses ecoreClass="UMLX.ecore#//TxTypedModelNode">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//TxTypedModelNode/check"/>
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//TxTypedModelNode/enforce"/>
@@ -116,5 +119,13 @@
<genClasses image="false" ecoreClass="UMLX.ecore#//UMLXNamedElement">
<genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//UMLXNamedElement/name"/>
</genClasses>
+ <genClasses image="false" ecoreClass="UMLX.ecore#//UMLXTypedElement">
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//UMLXTypedElement/isMany"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//UMLXTypedElement/isNullFree"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//UMLXTypedElement/isOrdered"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//UMLXTypedElement/isRequired"/>
+ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute UMLX.ecore#//UMLXTypedElement/isUnique"/>
+ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference UMLX.ecore#//UMLXTypedElement/referredEClassifier"/>
+ </genClasses>
</genPackages>
</genmodel:GenModel>
diff --git a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdUMLXModels.mwe2 b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdUMLXModels.mwe2
index 61e89b7c8..0492a0017 100644
--- a/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdUMLXModels.mwe2
+++ b/releng/org.eclipse.qvtd.build/src/org/eclipse/qvtd/build/mwe2/GenerateQVTdUMLXModels.mwe2
@@ -31,23 +31,6 @@ Workflow {
scanClassPath = true
}
-
-
- bean = ResourceSetImpl : umlxMergeResourceSet {}
- bean = ProjectMapSetup { resourceSet = umlxMergeResourceSet }
- bean = UMLStandaloneSetup { resourceSet = umlxMergeResourceSet }
- bean = OCLStandaloneSetup {}
- bean = EcoreGenModelSetup { resourceSet = umlxMergeResourceSet }
- component = ConstraintMerger { resourceSet = umlxMergeResourceSet skipOnErrors = true
- projectName = "org.eclipse.qvtd.pivot.qvttemplate"
- libraryURI = "http://www.eclipse.org/qvt/2015/QVTbaseLibrary"
- ecoreURI = "model/QVTtemplate.ecore"
- oclURI = "model/QVTtemplate.ocl"
- invariantPrefix = "validate"
- }
-
-
-
bean = EcoreGenModelSetup { resourceSet = resourceSet }
component = GenerateModel { resourceSet = resourceSet skipOnErrors = true

Back to the top