diff options
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
		Tuple{status : Boolean = allNames->isUnique(n | n),
			message : String = let repeatedNames = allNames->select(n | allNames->count(n) > 1)->asSet() in
			repeatedNames->iterate(n; acc:String = 'RelDiagram::RelPatternNodeNamesAreUnique:' | acc + ' \'' + n + '\'') + ' are not unique for ' + name
		}.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
		Tuple{status : Boolean = allNames->isUnique(n | n),
			message : String = let repeatedNames = allNames->select(n | allNames->count(n) > 1)->asSet() in
			repeatedNames->iterate(n; acc:String = 'RelDiagram::RelPatternNodeNamesAreUnique:' | acc + ' \'' + n + '\'') + ' are not unique for ' + name
		}.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="
			let expectedNodes = referredRelDiagram.ownedRelDomainNodes.ownedRelPatternNodes->select(isRoot)->asSet() in
			let actualNodes = ownedRelInvocationEdges.referredRelPatternNode->asSet() in		
			Tuple{status : Boolean = expectedNodes = actualNodes,
				message : String = 'RelInvocationNode::CompatibleEdges ' + expectedNodes->size().toString() + '/' + expectedNodes->size().toString()
			}.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="
			let expectedNodes = referredRelDiagram.ownedRelDomainNodes.ownedRelPatternNodes->select(isRoot)->asSet() in
			let actualNodes = ownedRelInvocationEdges.referredRelPatternNode->asSet() in		
			Tuple{status : Boolean = expectedNodes = actualNodes,
				message : String = 'RelInvocationNode::CompatibleEdges ' + expectedNodes->size().toString() + '/' + expectedNodes->size().toString()
			}.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
		txTypedModelNode <> null implies
		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="
			source.oclIsKindOf(RelPatternClassNode)"/>
- <details key="SourceIsEClass" value="
			source.oclIsKindOf(RelPatternClassNode) implies
			source.oclAsType(RelPatternClassNode).referredEClassifier.oclIsKindOf(ecore::EClassifier)"/>
- <details key="CompatiblePropertySource" value="
			referredEStructuralFeature <> null implies
			source.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass)->closure(eSuperTypes)->includes(referredEStructuralFeature.eContainingClass)"/>
- <details key="CompatibleSourceIndex" value="
			(referredEStructuralFeature <> null) = (sourceIndex = 0)"/>
- <details key="CompatibleSourceMultiplicity" value="
			(referredEStructuralFeature = null) = source.oclAsType(RelPatternClassNode).isMany"/>
- <details key="CompatibleEAttributePropertyTarget" value="
			referredEStructuralFeature <> null and
			referredEStructuralFeature.oclIsKindOf(ecore::EAttribute) and
			target.oclIsKindOf(RelPatternClassNode) implies
			referredEStructuralFeature.eType = target.oclAsType(RelPatternClassNode).referredEClassifier"/>
- <details key="CompatibleEReferencePropertyTarget" value="
			referredEStructuralFeature <> null and
			referredEStructuralFeature.oclIsKindOf(ecore::EReference) and
			target.oclIsKindOf(RelPatternClassNode) implies
			let sourceEClass = target.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in
			sourceEClass->closure(eSuperTypes)->includes(referredEStructuralFeature.eType)"/>
- <details key="CompatibleMemberPropertyTarget" value="
			referredEStructuralFeature = null and
			sourceIndex > 0 and
			target.oclIsKindOf(RelPatternClassNode) implies
			let sourceEClass = source.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in
			let targetEClass = target.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in
			sourceEClass->closure(eSuperTypes)->includes(targetEClass) or targetEClass->closure(eSuperTypes)->includes(sourceEClass)"/>
- <details key="CompatibleRestPropertyTarget" value="
			referredEStructuralFeature = null and
			sourceIndex < 0 and
			target.oclIsKindOf(RelPatternClassNode) implies
			let sourceClassNode = source.oclAsType(RelPatternClassNode) in
			let targetClassNode = target.oclAsType(RelPatternClassNode) in
			let sourceEClass = sourceClassNode.referredEClassifier.oclAsType(ecore::EClass) in
			let targetEClass = targetClassNode.referredEClassifier.oclAsType(ecore::EClass) in
			sourceEClass = targetEClass and
			sourceClassNode.isMany = targetClassNode.isMany and
			sourceClassNode.isNullFree = targetClassNode.isNullFree and
			sourceClassNode.isOrdered = targetClassNode.isOrdered and
			sourceClassNode.isUnique = targetClassNode.isUnique"/>
- </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
		txTypedModelNode <> null implies
		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="
			source.oclIsKindOf(RelPatternClassNode)"/>
+ <details
+ key="SourceIsEClass"
+ value="
			source.oclIsKindOf(RelPatternClassNode) implies
			source.oclAsType(RelPatternClassNode).referredEClassifier.oclIsKindOf(ecore::EClassifier)"/>
+ <details
+ key="CompatiblePropertySource"
+ value="
			referredEStructuralFeature <> null implies
			source.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass)->closure(eSuperTypes)->includes(referredEStructuralFeature.eContainingClass)"/>
+ <details
+ key="CompatibleSourceIndex"
+ value="
			(referredEStructuralFeature <> null) = (sourceIndex = 0)"/>
+ <details
+ key="CompatibleSourceMultiplicity"
+ value="
			(referredEStructuralFeature = null) = source.oclAsType(RelPatternClassNode).isMany"/>
+ <details
+ key="CompatibleEAttributePropertyTarget"
+ value="
			referredEStructuralFeature <> null and
			referredEStructuralFeature.oclIsKindOf(ecore::EAttribute) and
			target.oclIsKindOf(RelPatternClassNode) implies
			referredEStructuralFeature.eType = target.oclAsType(RelPatternClassNode).referredEClassifier"/>
+ <details
+ key="CompatibleEReferencePropertyTarget"
+ value="
			referredEStructuralFeature <> null and
			referredEStructuralFeature.oclIsKindOf(ecore::EReference) and
			target.oclIsKindOf(RelPatternClassNode) implies
			let sourceEClass = target.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in
			sourceEClass->closure(eSuperTypes)->includes(referredEStructuralFeature.eType)"/>
+ <details
+ key="CompatibleMemberPropertyTarget"
+ value="
			referredEStructuralFeature = null and
			sourceIndex > 0 and
			target.oclIsKindOf(RelPatternClassNode) implies
			let sourceEClass = source.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in
			let targetEClass = target.oclAsType(RelPatternClassNode).referredEClassifier.oclAsType(ecore::EClass) in
			sourceEClass->closure(eSuperTypes)->includes(targetEClass) or targetEClass->closure(eSuperTypes)->includes(sourceEClass)"/>
+ <details
+ key="CompatibleRestPropertyTarget"
+ value="
			referredEStructuralFeature = null and
			sourceIndex < 0 and
			target.oclIsKindOf(RelPatternClassNode) implies
			let sourceClassNode = source.oclAsType(RelPatternClassNode) in
			let targetClassNode = target.oclAsType(RelPatternClassNode) in
			let sourceEClass = sourceClassNode.referredEClassifier.oclAsType(ecore::EClass) in
			let targetEClass = targetClassNode.referredEClassifier.oclAsType(ecore::EClass) in
			sourceEClass = targetEClass and
			sourceClassNode.isMany = targetClassNode.isMany and
			sourceClassNode.isNullFree = targetClassNode.isNullFree and
			sourceClassNode.isOrdered = targetClassNode.isOrdered and
			sourceClassNode.isUnique = targetClassNode.isUnique"/>
+ </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 |