diff options
author | Ed Willink | 2017-02-02 22:54:12 +0000 |
---|---|---|
committer | Ed Willink | 2017-02-02 22:54:12 +0000 |
commit | 743bc8f81c095f88c1e6246f4303dace2ef7ea29 (patch) | |
tree | d3526c40b893025051394595b1dfe62c3ad4b913 | |
parent | 45f37b5cbea79a3d0323acb4eff091e0a00ba67a (diff) | |
download | org.eclipse.qvtd-743bc8f81c095f88c1e6246f4303dace2ef7ea29.tar.gz org.eclipse.qvtd-743bc8f81c095f88c1e6246f4303dace2ef7ea29.tar.xz org.eclipse.qvtd-743bc8f81c095f88c1e6246f4303dace2ef7ea29.zip |
[495621] Regenerate
38 files changed, 2468 insertions, 3234 deletions
diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelDiagram.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelDiagram.java index 916df16b8..02c5df1db 100644 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelDiagram.java +++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelDiagram.java @@ -127,5 +127,12 @@ public interface RelDiagram extends UMLXNamedElement { * <!-- end-user-doc --> * @generated */ + boolean validateNameIsRequired(DiagnosticChain diagnostics, Map<Object, Object> context); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ boolean validateRelPatternNodeNamesAreUnique(DiagnosticChain diagnostics, Map<Object, Object> context); } // RelDiagram 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 bee43e522..969bdbc30 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 @@ -39,11 +39,11 @@ public interface RelInvocationEdge extends RelEdge { * </p> * <!-- end-user-doc --> * @return the value of the '<em>Referred Rel Pattern Node</em>' reference. - * @see #setReferredRelPatternNode(RelPatternClassNode) + * @see #setReferredRelPatternNode(RelPatternNode) * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelInvocationEdge_ReferredRelPatternNode() * @generated */ - RelPatternClassNode getReferredRelPatternNode(); + RelPatternNode getReferredRelPatternNode(); /** * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelInvocationEdge#getReferredRelPatternNode <em>Referred Rel Pattern Node</em>}' reference. @@ -53,7 +53,7 @@ public interface RelInvocationEdge extends RelEdge { * @see #getReferredRelPatternNode() * @generated */ - void setReferredRelPatternNode(RelPatternClassNode value); + void setReferredRelPatternNode(RelPatternNode value); /** * Returns the value of the '<em><b>Owning Rel Invocation Node</b></em>' container reference. 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 deleted file mode 100644 index be7bd2451..000000000 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternClassNode.java +++ /dev/null @@ -1,117 +0,0 @@ -/** - * 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>Rel Pattern Node</b></em>'. - * <!-- end-user-doc --> - * - * <p> - * The following features are supported: - * </p> - * <ul> - * <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsAnon <em>Is Anon</em>}</li> - * <li>{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getOutgoing <em>Outgoing</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, UMLXTypedElement { - /** - * Returns the value of the '<em><b>Is Anon</b></em>' attribute. - * The default value is <code>"false"</code>. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Is Anon</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 Anon</em>' attribute. - * @see #setIsAnon(boolean) - * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternClassNode_IsAnon() - * @generated - */ - boolean isIsAnon(); - - /** - * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#isIsAnon <em>Is Anon</em>}' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Is Anon</em>' attribute. - * @see #isIsAnon() - * @generated - */ - void setIsAnon(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>}'. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Outgoing</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>Outgoing</em>' reference list. - * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternClassNode_Outgoing() - * @see org.eclipse.qvtd.umlx.RelPatternEdge#getSource - * @generated - */ - EList<RelPatternEdge> getOutgoing(); - - /** - * Returns the value of the '<em><b>Rel Domain Node</b></em>' reference. - * <!-- begin-user-doc --> - * <p> - * If the meaning of the '<em>Rel Domain Node</em>' reference isn't clear, - * there really should be more of a description here... - * </p> - * <!-- end-user-doc --> - * @return the value of the '<em>Rel Domain Node</em>' reference. - * @see #setRelDomainNode(RelDomainNode) - * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternClassNode_RelDomainNode() - * @generated - */ - RelDomainNode getRelDomainNode(); - - /** - * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getRelDomainNode <em>Rel Domain Node</em>}' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @param value the new value of the '<em>Rel Domain Node</em>' reference. - * @see #getRelDomainNode() - * @generated - */ - void setRelDomainNode(RelDomainNode value); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - boolean validateAnonIsUnnamed(DiagnosticChain diagnostics, Map<Object, Object> context); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - boolean validateEClassifierIsInTypedModel(DiagnosticChain diagnostics, Map<Object, Object> context); - -} // RelPatternNode diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternEdge.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternEdge.java index 5541be67f..60ef75cca 100644 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternEdge.java +++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternEdge.java @@ -36,7 +36,7 @@ import org.eclipse.emf.ecore.EStructuralFeature; public interface RelPatternEdge extends RelEdge { /** * Returns the value of the '<em><b>Source</b></em>' reference. - * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getOutgoing <em>Outgoing</em>}'. + * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.RelPatternNode#getOutgoing <em>Outgoing</em>}'. * <!-- begin-user-doc --> * <p> * If the meaning of the '<em>Source</em>' reference isn't clear, @@ -44,12 +44,12 @@ public interface RelPatternEdge extends RelEdge { * </p> * <!-- end-user-doc --> * @return the value of the '<em>Source</em>' reference. - * @see #setSource(RelPatternClassNode) + * @see #setSource(RelPatternNode) * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternEdge_Source() - * @see org.eclipse.qvtd.umlx.RelPatternClassNode#getOutgoing + * @see org.eclipse.qvtd.umlx.RelPatternNode#getOutgoing * @generated */ - RelPatternClassNode getSource(); + RelPatternNode getSource(); /** * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternEdge#getSource <em>Source</em>}' reference. @@ -59,7 +59,7 @@ public interface RelPatternEdge extends RelEdge { * @see #getSource() * @generated */ - void setSource(RelPatternClassNode value); + void setSource(RelPatternNode value); /** * Returns the value of the '<em><b>Source Index</b></em>' attribute. @@ -170,7 +170,7 @@ public interface RelPatternEdge extends RelEdge { * <!-- end-user-doc --> * @generated */ - boolean validateCompatibleMemberPropertyTarget(DiagnosticChain diagnostics, Map<Object, Object> context); + boolean validateSourceIsEClass(DiagnosticChain diagnostics, Map<Object, Object> context); /** * <!-- begin-user-doc --> @@ -184,48 +184,48 @@ public interface RelPatternEdge extends RelEdge { * <!-- end-user-doc --> * @generated */ - boolean validateSourceIsEClass(DiagnosticChain diagnostics, Map<Object, Object> context); + boolean validateCompatibleEAttributePropertyTarget(DiagnosticChain diagnostics, Map<Object, Object> context); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - boolean validateCompatibleSourceIndex(DiagnosticChain diagnostics, Map<Object, Object> context); + boolean validateCompatibleSourceMultiplicity(DiagnosticChain diagnostics, Map<Object, Object> context); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - boolean validateCompatibleRestPropertyTarget(DiagnosticChain diagnostics, Map<Object, Object> context); + boolean validateCompatibleEReferencePropertyTarget(DiagnosticChain diagnostics, Map<Object, Object> context); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - boolean validateCompatibleEAttributePropertyTarget(DiagnosticChain diagnostics, Map<Object, Object> context); + boolean validateCompatiblePropertySource(DiagnosticChain diagnostics, Map<Object, Object> context); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - boolean validateCompatiblePropertySource(DiagnosticChain diagnostics, Map<Object, Object> context); + boolean validateCompatibleSourceIndex(DiagnosticChain diagnostics, Map<Object, Object> context); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - boolean validateCompatibleSourceMultiplicity(DiagnosticChain diagnostics, Map<Object, Object> context); + boolean validateCompatibleRestPropertyTarget(DiagnosticChain diagnostics, Map<Object, Object> context); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - boolean validateCompatibleEReferencePropertyTarget(DiagnosticChain diagnostics, Map<Object, Object> context); + boolean validateCompatibleMemberPropertyTarget(DiagnosticChain diagnostics, Map<Object, Object> context); } // RelPatternEdge 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 deleted file mode 100644 index 81b4b8454..000000000 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/RelPatternExpressionNode.java +++ /dev/null @@ -1,25 +0,0 @@ -/** - * 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>Rel Constraint Node</b></em>'. - * <!-- end-user-doc --> - * - * - * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternExpressionNode() - * @generated - */ -public interface RelPatternExpressionNode extends RelPatternNode { - -} // 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 d258c8f0b..16ec127a6 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 @@ -10,6 +10,8 @@ */ package org.eclipse.qvtd.umlx; +import java.util.Map; +import org.eclipse.emf.common.util.DiagnosticChain; import org.eclipse.emf.common.util.EList; @@ -24,15 +26,17 @@ import org.eclipse.emf.common.util.EList; * <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#getInvokingRelInvocationEdges <em>Invoking Rel Invocation Edges</em>}</li> + * <li>{@link org.eclipse.qvtd.umlx.RelPatternNode#isIsAnon <em>Is Anon</em>}</li> * <li>{@link org.eclipse.qvtd.umlx.RelPatternNode#isIsRoot <em>Is Root</em>}</li> + * <li>{@link org.eclipse.qvtd.umlx.RelPatternNode#getOutgoing <em>Outgoing</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() * @generated */ -public interface RelPatternNode extends RelNode { +public interface RelPatternNode extends RelNode, UMLXTypedElement { /** * Returns the value of the '<em><b>Incoming</b></em>' reference list. @@ -93,6 +97,23 @@ public interface RelPatternNode extends RelNode { void setIsRoot(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>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Outgoing</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>Outgoing</em>' reference list. + * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternNode_Outgoing() + * @see org.eclipse.qvtd.umlx.RelPatternEdge#getSource + * @generated + */ + EList<RelPatternEdge> getOutgoing(); + + /** * Returns the value of the '<em><b>Owning Rel Domain Node</b></em>' container reference. * It is bidirectional and its opposite is '{@link org.eclipse.qvtd.umlx.RelDomainNode#getOwnedRelPatternNodes <em>Owned Rel Pattern Nodes</em>}'. * <!-- begin-user-doc --> @@ -120,6 +141,34 @@ public interface RelPatternNode extends RelNode { void setOwningRelDomainNode(RelDomainNode value); /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + Boolean isExpression(); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + boolean validateAnonIsUnnamed(DiagnosticChain diagnostics, Map<Object, Object> context); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + boolean validateTypeIsRequired(DiagnosticChain diagnostics, Map<Object, Object> context); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + boolean validateEClassifierIsInTypedModel(DiagnosticChain diagnostics, Map<Object, Object> context); + + /** * 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>}'. @@ -135,4 +184,30 @@ public interface RelPatternNode extends RelNode { * @generated */ EList<RelInvocationEdge> getInvokingRelInvocationEdges(); + + /** + * Returns the value of the '<em><b>Is Anon</b></em>' attribute. + * The default value is <code>"false"</code>. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Is Anon</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 Anon</em>' attribute. + * @see #setIsAnon(boolean) + * @see org.eclipse.qvtd.umlx.UMLXPackage#getRelPatternNode_IsAnon() + * @generated + */ + boolean isIsAnon(); + + /** + * Sets the value of the '{@link org.eclipse.qvtd.umlx.RelPatternNode#isIsAnon <em>Is Anon</em>}' attribute. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Is Anon</em>' attribute. + * @see #isIsAnon() + * @generated + */ + void setIsAnon(boolean value); } // 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 33486f11c..1e8e48783 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 @@ -150,6 +150,13 @@ public interface TxDiagram extends UMLXNamedElement { * <!-- end-user-doc --> * @generated */ + boolean validateTxQueryNodeNamesAreUnique(DiagnosticChain diagnostics, Map<Object, Object> context); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ boolean validateRelDiagramNamesAreUnique(DiagnosticChain diagnostics, Map<Object, Object> context); /** @@ -157,13 +164,13 @@ public interface TxDiagram extends UMLXNamedElement { * <!-- end-user-doc --> * @generated */ - boolean validateTxTypedModelNodeNamesAreUnique(DiagnosticChain diagnostics, Map<Object, Object> context); + boolean validateNameIsRequired(DiagnosticChain diagnostics, Map<Object, Object> context); /** * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - boolean validateTxQueryNodeNamesAreUnique(DiagnosticChain diagnostics, Map<Object, Object> context); + boolean validateTxTypedModelNodeNamesAreUnique(DiagnosticChain diagnostics, Map<Object, Object> context); } // TxDiagram diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxImportNode.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxImportNode.java index 1e9d575f2..5ca2069e9 100644 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxImportNode.java +++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxImportNode.java @@ -10,6 +10,9 @@ */ package org.eclipse.qvtd.umlx; +import java.util.Map; +import org.eclipse.emf.common.util.DiagnosticChain; + /** * <!-- begin-user-doc --> @@ -80,4 +83,11 @@ public interface TxImportNode extends TxNode, UMLXNamedElement { */ void setUri(String value); + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + boolean validateNameIsRequired(DiagnosticChain diagnostics, Map<Object, Object> context); + } // TxImportNode 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 index c2af64cd6..50ba1190e 100644 --- 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 @@ -10,6 +10,9 @@ */ package org.eclipse.qvtd.umlx; +import java.util.Map; +import org.eclipse.emf.common.util.DiagnosticChain; + /** * <!-- begin-user-doc --> @@ -54,4 +57,18 @@ public interface TxParameterNode extends TxNode, UMLXTypedElement { */ void setOwningTxQueryNode(TxQueryNode value); + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + boolean validateNameIsRequired(DiagnosticChain diagnostics, Map<Object, Object> context); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + boolean validateTypeIsRequired(DiagnosticChain diagnostics, Map<Object, Object> context); + } // 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 index 582d69895..c798aec29 100644 --- 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 @@ -97,6 +97,20 @@ public interface TxQueryNode extends TxNode, UMLXTypedElement { * <!-- end-user-doc --> * @generated */ + boolean validateNameIsRequired(DiagnosticChain diagnostics, Map<Object, Object> context); + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + boolean validateTypeIsRequired(DiagnosticChain diagnostics, Map<Object, Object> context); + + /** + * <!-- 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/TxTypedModelNode.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxTypedModelNode.java index 335beb152..afe5bc880 100644 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxTypedModelNode.java +++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/TxTypedModelNode.java @@ -136,4 +136,11 @@ public interface TxTypedModelNode extends TxNode, UMLXNamedElement { */ boolean validateTxPackageNodePackagesAreUnique(DiagnosticChain diagnostics, Map<Object, Object> context); + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + boolean validateNameIsRequired(DiagnosticChain diagnostics, Map<Object, Object> context); + } // TxTypedModelNode 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 8d84e4a9a..ce6019a9b 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 @@ -67,15 +67,6 @@ public interface UMLXFactory extends EFactory { @NonNull RelInvocationNode createRelInvocationNode(); /** - * Returns a new object of class '<em>Rel Pattern Class Node</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return a new object of class '<em>Rel Pattern Class Node</em>'. - * @generated - */ - @NonNull RelPatternClassNode createRelPatternClassNode(); - - /** * Returns a new object of class '<em>Rel Pattern Edge</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -85,13 +76,13 @@ public interface UMLXFactory extends EFactory { @NonNull RelPatternEdge createRelPatternEdge(); /** - * Returns a new object of class '<em>Rel Pattern Expression Node</em>'. + * Returns a new object of class '<em>Rel Pattern Node</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @return a new object of class '<em>Rel Pattern Expression Node</em>'. + * @return a new object of class '<em>Rel Pattern Node</em>'. * @generated */ - @NonNull RelPatternExpressionNode createRelPatternExpressionNode(); + @NonNull RelPatternNode createRelPatternNode(); /** * Returns a new object of class '<em>Tx Diagram</em>'. 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 7557f881d..3c45ceaf9 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 @@ -79,7 +79,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getUMLXElement() * @generated */ - int UMLX_ELEMENT = 19; + int UMLX_ELEMENT = 17; /** * The feature id for the '<em><b>Comments</b></em>' attribute list. @@ -100,16 +100,6 @@ public interface UMLXPackage extends EPackage { int UMLX_ELEMENT_FEATURE_COUNT = 1; /** - * The meta object id 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 - */ - int REL_PATTERN_CLASS_NODE = 6; - - /** * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.UMLXNamedElementImpl <em>Named Element</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -117,7 +107,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getUMLXNamedElement() * @generated */ - int UMLX_NAMED_ELEMENT = 21; + int UMLX_NAMED_ELEMENT = 19; /** * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.RelDiagramImpl <em>Rel Diagram</em>}' class. @@ -177,7 +167,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getRelPatternEdge() * @generated */ - int REL_PATTERN_EDGE = 7; + int REL_PATTERN_EDGE = 6; /** * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.TxDiagramImpl <em>Tx Diagram</em>}' class. @@ -187,7 +177,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxDiagram() * @generated */ - int TX_DIAGRAM = 10; + int TX_DIAGRAM = 8; /** * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.TxNodeImpl <em>Tx Node</em>}' class. @@ -197,7 +187,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxNode() * @generated */ - int TX_NODE = 13; + int TX_NODE = 11; /** * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.TxImportNodeImpl <em>Tx Import Node</em>}' class. @@ -207,7 +197,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxImportNode() * @generated */ - int TX_IMPORT_NODE = 11; + int TX_IMPORT_NODE = 9; /** * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.TxKeyNodeImpl <em>Tx Key Node</em>}' class. @@ -217,7 +207,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxKeyNode() * @generated */ - int TX_KEY_NODE = 12; + int TX_KEY_NODE = 10; /** * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.TxPartNodeImpl <em>Tx Part Node</em>}' class. @@ -227,7 +217,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxPartNode() * @generated */ - int TX_PART_NODE = 16; + int TX_PART_NODE = 14; /** * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.TxPackageNodeImpl <em>Tx Package Node</em>}' class. @@ -237,7 +227,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxPackageNode() * @generated */ - int TX_PACKAGE_NODE = 14; + int TX_PACKAGE_NODE = 12; /** * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.TxTypedModelNodeImpl <em>Tx Typed Model Node</em>}' class. @@ -247,7 +237,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxTypedModelNode() * @generated */ - int TX_TYPED_MODEL_NODE = 18; + int TX_TYPED_MODEL_NODE = 16; /** * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.UMLXModelImpl <em>Model</em>}' class. @@ -257,7 +247,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getUMLXModel() * @generated */ - int UMLX_MODEL = 20; + int UMLX_MODEL = 18; /** * The feature id for the '<em><b>Comments</b></em>' attribute list. @@ -556,7 +546,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getRelPatternNode() * @generated */ - int REL_PATTERN_NODE = 9; + int REL_PATTERN_NODE = 7; /** * The feature id for the '<em><b>Comments</b></em>' attribute list. @@ -565,34 +555,7 @@ public interface UMLXPackage extends EPackage { * @generated * @ordered */ - int REL_PATTERN_NODE__COMMENTS = REL_NODE__COMMENTS; - - /** - * The feature id for the '<em><b>Incoming</b></em>' reference list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - 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 + 2; + int REL_PATTERN_EDGE__COMMENTS = REL_EDGE__COMMENTS; /** * The feature id for the '<em><b>Owning Rel Domain Node</b></em>' container reference. @@ -601,79 +564,61 @@ public interface UMLXPackage extends EPackage { * @generated * @ordered */ - 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. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int REL_PATTERN_NODE_FEATURE_COUNT = REL_NODE_FEATURE_COUNT + 5; + int REL_PATTERN_EDGE__OWNING_REL_DOMAIN_NODE = REL_EDGE_FEATURE_COUNT + 0; /** - * The feature id for the '<em><b>Comments</b></em>' attribute list. + * The feature id for the '<em><b>Referred EStructural Feature</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__COMMENTS = REL_PATTERN_NODE__COMMENTS; + int REL_PATTERN_EDGE__REFERRED_ESTRUCTURAL_FEATURE = REL_EDGE_FEATURE_COUNT + 1; /** - * The feature id for the '<em><b>Incoming</b></em>' reference list. + * The feature id for the '<em><b>Source</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__INCOMING = REL_PATTERN_NODE__INCOMING; + int REL_PATTERN_EDGE__SOURCE = REL_EDGE_FEATURE_COUNT + 2; /** - * The feature id for the '<em><b>Init Expression Lines</b></em>' attribute list. + * The feature id for the '<em><b>Source Index</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__INIT_EXPRESSION_LINES = REL_PATTERN_NODE__INIT_EXPRESSION_LINES; + int REL_PATTERN_EDGE__SOURCE_INDEX = REL_EDGE_FEATURE_COUNT + 3; /** - * The feature id for the '<em><b>Is Root</b></em>' attribute. + * The feature id for the '<em><b>Target</b></em>' reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__IS_ROOT = REL_PATTERN_NODE__IS_ROOT; + int REL_PATTERN_EDGE__TARGET = REL_EDGE_FEATURE_COUNT + 4; /** - * The feature id for the '<em><b>Owning Rel Domain Node</b></em>' container reference. + * The number of structural features of the '<em>Rel Pattern Edge</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__OWNING_REL_DOMAIN_NODE = REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE; + int REL_PATTERN_EDGE_FEATURE_COUNT = REL_EDGE_FEATURE_COUNT + 5; /** - * The feature id for the '<em><b>Invoking Rel Invocation Edges</b></em>' reference list. + * The feature id for the '<em><b>Comments</b></em>' attribute list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__INVOKING_REL_INVOCATION_EDGES = REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES; + int REL_PATTERN_NODE__COMMENTS = REL_NODE__COMMENTS; /** * The feature id for the '<em><b>Name</b></em>' attribute. @@ -682,7 +627,7 @@ public interface UMLXPackage extends EPackage { * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__NAME = REL_PATTERN_NODE_FEATURE_COUNT + 0; + int REL_PATTERN_NODE__NAME = REL_NODE_FEATURE_COUNT + 0; /** * The feature id for the '<em><b>Is Many</b></em>' attribute. @@ -691,7 +636,7 @@ public interface UMLXPackage extends EPackage { * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__IS_MANY = REL_PATTERN_NODE_FEATURE_COUNT + 1; + int REL_PATTERN_NODE__IS_MANY = REL_NODE_FEATURE_COUNT + 1; /** * The feature id for the '<em><b>Is Null Free</b></em>' attribute. @@ -700,7 +645,7 @@ public interface UMLXPackage extends EPackage { * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__IS_NULL_FREE = REL_PATTERN_NODE_FEATURE_COUNT + 2; + int REL_PATTERN_NODE__IS_NULL_FREE = REL_NODE_FEATURE_COUNT + 2; /** * The feature id for the '<em><b>Is Ordered</b></em>' attribute. @@ -709,7 +654,7 @@ public interface UMLXPackage extends EPackage { * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__IS_ORDERED = REL_PATTERN_NODE_FEATURE_COUNT + 3; + int REL_PATTERN_NODE__IS_ORDERED = REL_NODE_FEATURE_COUNT + 3; /** * The feature id for the '<em><b>Is Required</b></em>' attribute. @@ -718,7 +663,7 @@ public interface UMLXPackage extends EPackage { * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__IS_REQUIRED = REL_PATTERN_NODE_FEATURE_COUNT + 4; + int REL_PATTERN_NODE__IS_REQUIRED = REL_NODE_FEATURE_COUNT + 4; /** * The feature id for the '<em><b>Is Unique</b></em>' attribute. @@ -727,7 +672,7 @@ public interface UMLXPackage extends EPackage { * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__IS_UNIQUE = REL_PATTERN_NODE_FEATURE_COUNT + 5; + int REL_PATTERN_NODE__IS_UNIQUE = REL_NODE_FEATURE_COUNT + 5; /** * The feature id for the '<em><b>Referred EClassifier</b></em>' reference. @@ -736,143 +681,43 @@ public interface UMLXPackage extends EPackage { * @generated * @ordered */ - int REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER = REL_PATTERN_NODE_FEATURE_COUNT + 6; - - /** - * 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__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. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE = REL_PATTERN_NODE_FEATURE_COUNT + 9; - - /** - * The number of structural features of the '<em>Rel Pattern Class Node</em>' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int REL_PATTERN_CLASS_NODE_FEATURE_COUNT = REL_PATTERN_NODE_FEATURE_COUNT + 10; - - /** - * The feature id for the '<em><b>Comments</b></em>' attribute list. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int REL_PATTERN_EDGE__COMMENTS = REL_EDGE__COMMENTS; - - /** - * The feature id for the '<em><b>Owning Rel Domain Node</b></em>' container reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int REL_PATTERN_EDGE__OWNING_REL_DOMAIN_NODE = REL_EDGE_FEATURE_COUNT + 0; - - /** - * The feature id for the '<em><b>Referred EStructural Feature</b></em>' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int REL_PATTERN_EDGE__REFERRED_ESTRUCTURAL_FEATURE = REL_EDGE_FEATURE_COUNT + 1; - - /** - * The feature id for the '<em><b>Source</b></em>' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int REL_PATTERN_EDGE__SOURCE = REL_EDGE_FEATURE_COUNT + 2; + int REL_PATTERN_NODE__REFERRED_ECLASSIFIER = REL_NODE_FEATURE_COUNT + 6; /** - * The feature id for the '<em><b>Source Index</b></em>' attribute. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int REL_PATTERN_EDGE__SOURCE_INDEX = REL_EDGE_FEATURE_COUNT + 3; - - /** - * The feature id for the '<em><b>Target</b></em>' reference. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int REL_PATTERN_EDGE__TARGET = REL_EDGE_FEATURE_COUNT + 4; - - /** - * The number of structural features of the '<em>Rel Pattern Edge</em>' class. + * The feature id for the '<em><b>Incoming</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_EDGE_FEATURE_COUNT = REL_EDGE_FEATURE_COUNT + 5; - - /** - * The meta object id for the '{@link org.eclipse.qvtd.umlx.impl.RelPatternExpressionNodeImpl <em>Rel Pattern Expression Node</em>}' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.qvtd.umlx.impl.RelPatternExpressionNodeImpl - * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getRelPatternExpressionNode() - * @generated - */ - int REL_PATTERN_EXPRESSION_NODE = 8; + int REL_PATTERN_NODE__INCOMING = REL_NODE_FEATURE_COUNT + 7; /** - * The feature id for the '<em><b>Comments</b></em>' attribute list. + * 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__COMMENTS = REL_PATTERN_NODE__COMMENTS; + int REL_PATTERN_NODE__INIT_EXPRESSION_LINES = REL_NODE_FEATURE_COUNT + 8; /** - * The feature id for the '<em><b>Incoming</b></em>' reference list. + * 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__INCOMING = REL_PATTERN_NODE__INCOMING; + int REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES = REL_NODE_FEATURE_COUNT + 9; /** - * The feature id for the '<em><b>Init Expression Lines</b></em>' attribute list. + * The feature id for the '<em><b>Is Anon</b></em>' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_EXPRESSION_NODE__INIT_EXPRESSION_LINES = REL_PATTERN_NODE__INIT_EXPRESSION_LINES; + int REL_PATTERN_NODE__IS_ANON = REL_NODE_FEATURE_COUNT + 10; /** * The feature id for the '<em><b>Is Root</b></em>' attribute. @@ -881,34 +726,34 @@ public interface UMLXPackage extends EPackage { * @generated * @ordered */ - int REL_PATTERN_EXPRESSION_NODE__IS_ROOT = REL_PATTERN_NODE__IS_ROOT; + int REL_PATTERN_NODE__IS_ROOT = REL_NODE_FEATURE_COUNT + 11; /** - * The feature id for the '<em><b>Owning Rel Domain Node</b></em>' container reference. + * The feature id for the '<em><b>Outgoing</b></em>' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_EXPRESSION_NODE__OWNING_REL_DOMAIN_NODE = REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE; + int REL_PATTERN_NODE__OUTGOING = REL_NODE_FEATURE_COUNT + 12; /** - * The feature id for the '<em><b>Invoking Rel Invocation Edges</b></em>' reference list. + * The feature id for the '<em><b>Owning Rel Domain Node</b></em>' container reference. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_EXPRESSION_NODE__INVOKING_REL_INVOCATION_EDGES = REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES; + int REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE = REL_NODE_FEATURE_COUNT + 13; /** - * The number of structural features of the '<em>Rel Pattern Expression Node</em>' class. + * The number of structural features of the '<em>Rel Pattern Node</em>' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated * @ordered */ - int REL_PATTERN_EXPRESSION_NODE_FEATURE_COUNT = REL_PATTERN_NODE_FEATURE_COUNT + 0; + int REL_PATTERN_NODE_FEATURE_COUNT = REL_NODE_FEATURE_COUNT + 14; /** * The feature id for the '<em><b>Comments</b></em>' attribute list. @@ -1143,7 +988,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxParameterNode() * @generated */ - int TX_PARAMETER_NODE = 15; + int TX_PARAMETER_NODE = 13; /** * The feature id for the '<em><b>Comments</b></em>' attribute list. @@ -1288,7 +1133,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getTxQueryNode() * @generated */ - int TX_QUERY_NODE = 17; + int TX_QUERY_NODE = 15; /** * The feature id for the '<em><b>Comments</b></em>' attribute list. @@ -1496,7 +1341,7 @@ public interface UMLXPackage extends EPackage { * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getUMLXTypedElement() * @generated */ - int UMLX_TYPED_ELEMENT = 22; + int UMLX_TYPED_ELEMENT = 20; /** * The feature id for the '<em><b>Comments</b></em>' attribute list. @@ -1870,16 +1715,6 @@ public interface UMLXPackage extends EPackage { EReference getRelPatternEdge_Target(); /** - * Returns the meta object for class '{@link org.eclipse.qvtd.umlx.RelPatternExpressionNode <em>Rel Pattern Expression Node</em>}'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for class '<em>Rel Pattern Expression Node</em>'. - * @see org.eclipse.qvtd.umlx.RelPatternExpressionNode - * @generated - */ - EClass getRelPatternExpressionNode(); - - /** * Returns the meta object for class '{@link org.eclipse.qvtd.umlx.RelPatternNode <em>Rel Pattern Node</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1923,6 +1758,17 @@ public interface UMLXPackage extends EPackage { EAttribute getRelPatternNode_IsRoot(); /** + * Returns the meta object for the reference list '{@link org.eclipse.qvtd.umlx.RelPatternNode#getOutgoing <em>Outgoing</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference list '<em>Outgoing</em>'. + * @see org.eclipse.qvtd.umlx.RelPatternNode#getOutgoing() + * @see #getRelPatternNode() + * @generated + */ + EReference getRelPatternNode_Outgoing(); + + /** * Returns the meta object for the container reference '{@link org.eclipse.qvtd.umlx.RelPatternNode#getOwningRelDomainNode <em>Owning Rel Domain Node</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1945,6 +1791,17 @@ public interface UMLXPackage extends EPackage { EReference getRelPatternNode_InvokingRelInvocationEdges(); /** + * Returns the meta object for the attribute '{@link org.eclipse.qvtd.umlx.RelPatternNode#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.RelPatternNode#isIsAnon() + * @see #getRelPatternNode() + * @generated + */ + EAttribute getRelPatternNode_IsAnon(); + + /** * Returns the meta object for class '{@link org.eclipse.qvtd.umlx.TxDiagram <em>Tx Diagram</em>}'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2438,49 +2295,6 @@ public interface UMLXPackage extends EPackage { EReference getUMLXTypedElement_ReferredEClassifier(); /** - * 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 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 - */ - EAttribute getRelPatternClassNode_IsAnon(); - - /** - * 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 list '<em>Outgoing</em>'. - * @see org.eclipse.qvtd.umlx.RelPatternClassNode#getOutgoing() - * @see #getRelPatternClassNode() - * @generated - */ - EReference getRelPatternClassNode_Outgoing(); - - /** - * Returns the meta object for the reference '{@link org.eclipse.qvtd.umlx.RelPatternClassNode#getRelDomainNode <em>Rel Domain Node</em>}'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the reference '<em>Rel Domain Node</em>'. - * @see org.eclipse.qvtd.umlx.RelPatternClassNode#getRelDomainNode() - * @see #getRelPatternClassNode() - * @generated - */ - EReference getRelPatternClassNode_RelDomainNode(); - - /** * Returns the factory that creates the instances of the model. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2734,16 +2548,6 @@ public interface UMLXPackage extends EPackage { EReference REL_PATTERN_EDGE__TARGET = eINSTANCE.getRelPatternEdge_Target(); /** - * The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.RelPatternExpressionNodeImpl <em>Rel Pattern Expression Node</em>}' class. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see org.eclipse.qvtd.umlx.impl.RelPatternExpressionNodeImpl - * @see org.eclipse.qvtd.umlx.impl.UMLXPackageImpl#getRelPatternExpressionNode() - * @generated - */ - EClass REL_PATTERN_EXPRESSION_NODE = eINSTANCE.getRelPatternExpressionNode(); - - /** * 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 --> @@ -2778,6 +2582,14 @@ public interface UMLXPackage extends EPackage { EAttribute REL_PATTERN_NODE__IS_ROOT = eINSTANCE.getRelPatternNode_IsRoot(); /** + * The meta object literal for the '<em><b>Outgoing</b></em>' reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference REL_PATTERN_NODE__OUTGOING = eINSTANCE.getRelPatternNode_Outgoing(); + + /** * The meta object literal for the '<em><b>Owning Rel Domain Node</b></em>' container reference feature. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2794,6 +2606,14 @@ public interface UMLXPackage extends EPackage { EReference REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES = eINSTANCE.getRelPatternNode_InvokingRelInvocationEdges(); /** + * The meta object literal for the '<em><b>Is Anon</b></em>' attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EAttribute REL_PATTERN_NODE__IS_ANON = eINSTANCE.getRelPatternNode_IsAnon(); + + /** * The meta object literal for the '{@link org.eclipse.qvtd.umlx.impl.TxDiagramImpl <em>Tx Diagram</em>}' class. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -3187,40 +3007,6 @@ public interface UMLXPackage extends EPackage { */ EReference UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER = eINSTANCE.getUMLXTypedElement_ReferredEClassifier(); - /** - * 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 - */ - EClass REL_PATTERN_CLASS_NODE = eINSTANCE.getRelPatternClassNode(); - - /** - * 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__OUTGOING = eINSTANCE.getRelPatternClassNode_Outgoing(); - - /** - * The meta object literal for the '<em><b>Rel Domain Node</b></em>' reference feature. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - EReference REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE = eINSTANCE.getRelPatternClassNode_RelDomainNode(); - } } //UMLXPackage 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 e290c1adb..83007e2a6 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 @@ -20,6 +20,7 @@ package org.eclipse.qvtd.umlx; import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.ocl.pivot.TemplateParameters; import org.eclipse.ocl.pivot.internal.library.ecore.EcoreExecutorPackage; import org.eclipse.ocl.pivot.internal.library.ecore.EcoreExecutorProperty; import org.eclipse.ocl.pivot.internal.library.ecore.EcoreExecutorType; @@ -31,6 +32,7 @@ import org.eclipse.ocl.pivot.internal.library.executor.ExecutorPropertyWithImple import org.eclipse.ocl.pivot.internal.library.executor.ExecutorStandardLibrary; import org.eclipse.ocl.pivot.internal.library.executor.ExecutorType; import org.eclipse.ocl.pivot.oclstdlib.OCLstdlibTables; +import org.eclipse.ocl.pivot.utilities.TypeUtil; import org.eclipse.qvtd.umlx.UMLXTables; /** @@ -73,7 +75,6 @@ public class UMLXTables public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_RelDomainNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("RelDomainNode", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_RelInvocationEdge = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("RelInvocationEdge", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_RelInvocationNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("RelInvocationNode", 0); - public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_RelPatternClassNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("RelPatternClassNode", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_RelPatternEdge = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("RelPatternEdge", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_RelPatternNode = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("RelPatternNode", 0); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull ClassId CLSSid_TxDiagram = org.eclipse.qvtd.umlx.UMLXTables.PACKid_http_c_s_s_www_eclipse_org_s_qvt_s_2016_s_UMLX.getClassId("TxDiagram", 0); @@ -94,12 +95,11 @@ public class UMLXTables public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SEQ_PRIMid_String = org.eclipse.ocl.pivot.ids.TypeId.SEQUENCE.getSpecializedId(org.eclipse.ocl.pivot.ids.TypeId.STRING); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SET_PRIMid_String = org.eclipse.ocl.pivot.ids.TypeId.SET.getSpecializedId(org.eclipse.ocl.pivot.ids.TypeId.STRING); public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_ = ""; + public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelDiagram_c_c_NameIsRequired = "RelDiagram::NameIsRequired"; public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelDiagram_c_c_RelPatternNodeNamesAreUnique = "RelDiagram::RelPatternNodeNamesAreUnique"; public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelDiagram_c_c_RelPatternNodeNamesAreUnique_c = "RelDiagram::RelPatternNodeNamesAreUnique:"; public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelInvocationNode_c_c_CompatibleEdges = "RelInvocationNode::CompatibleEdges"; public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelInvocationNode_c_c_CompatibleEdges_32 = "RelInvocationNode::CompatibleEdges "; - public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelPatternClassNode_c_c_AnonIsUnnamed = "RelPatternClassNode::AnonIsUnnamed"; - public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelPatternClassNode_c_c_EClassifierIsInTypedModel = "RelPatternClassNode::EClassifierIsInTypedModel"; public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelPatternEdge_c_c_CompatibleEAttributePropertyTarget = "RelPatternEdge::CompatibleEAttributePropertyTarget"; public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelPatternEdge_c_c_CompatibleEReferencePropertyTarget = "RelPatternEdge::CompatibleEReferencePropertyTarget"; public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelPatternEdge_c_c_CompatibleMemberPropertyTarget = "RelPatternEdge::CompatibleMemberPropertyTarget"; @@ -109,12 +109,22 @@ public class UMLXTables public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelPatternEdge_c_c_CompatibleSourceMultiplicity = "RelPatternEdge::CompatibleSourceMultiplicity"; 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_RelPatternNode_c_c_AnonIsUnnamed = "RelPatternNode::AnonIsUnnamed"; + public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelPatternNode_c_c_EClassifierIsInTypedModel = "RelPatternNode::EClassifierIsInTypedModel"; + public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_RelPatternNode_c_c_TypeIsRequired = "RelPatternNode::TypeIsRequired"; + public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_TxDiagram_c_c_NameIsRequired = "TxDiagram::NameIsRequired"; 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_TxImportNode_c_c_NameIsRequired = "TxImportNode::NameIsRequired"; 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_TxParameterNode_c_c_NameIsRequired = "TxParameterNode::NameIsRequired"; + public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_TxParameterNode_c_c_TypeIsRequired = "TxParameterNode::TypeIsRequired"; 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_NameIsRequired = "TxQueryNode::NameIsRequired"; 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_TxQueryNode_c_c_TypeIsRequired = "TxQueryNode::TypeIsRequired"; + public static final /*@NonInvalid*/ java.lang.@org.eclipse.jdt.annotation.NonNull String STR_TxTypedModelNode_c_c_NameIsRequired = "TxTypedModelNode::NameIsRequired"; 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 "; @@ -123,7 +133,6 @@ public class UMLXTables public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId BAG_CLSSid_RelDomainNode = org.eclipse.ocl.pivot.ids.TypeId.BAG.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_RelDomainNode); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId BAG_CLSSid_RelInvocationEdge = org.eclipse.ocl.pivot.ids.TypeId.BAG.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_RelInvocationEdge); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId BAG_CLSSid_RelInvocationNode = org.eclipse.ocl.pivot.ids.TypeId.BAG.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_RelInvocationNode); - public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId BAG_CLSSid_RelPatternClassNode = org.eclipse.ocl.pivot.ids.TypeId.BAG.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_RelPatternClassNode); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_EClass = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_EClass); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_EClassifier = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_EClassifier); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId ORD_CLSSid_RelDiagram = org.eclipse.ocl.pivot.ids.TypeId.ORDERED_SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_RelDiagram); @@ -142,10 +151,8 @@ public class UMLXTables 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); - public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SEQ_CLSSid_RelPatternClassNode = org.eclipse.ocl.pivot.ids.TypeId.SEQUENCE.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_RelPatternClassNode); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SEQ_CLSSid_RelPatternNode = org.eclipse.ocl.pivot.ids.TypeId.SEQUENCE.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_RelPatternNode); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SET_CLSSid_EClass = org.eclipse.ocl.pivot.ids.TypeId.SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_EClass); - public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SET_CLSSid_RelPatternClassNode = org.eclipse.ocl.pivot.ids.TypeId.SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_RelPatternClassNode); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull CollectionTypeId SET_CLSSid_RelPatternNode = org.eclipse.ocl.pivot.ids.TypeId.SET.getSpecializedId(org.eclipse.qvtd.umlx.UMLXTables.CLSSid_RelPatternNode); public static final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@org.eclipse.jdt.annotation.NonNull TupleTypeId TUPLid_ = org.eclipse.ocl.pivot.ids.IdManager.getTupleTypeId("Tuple", org.eclipse.qvtd.umlx.UMLXTables.PARTid__0, org.eclipse.qvtd.umlx.UMLXTables.PARTid_); @@ -183,10 +190,8 @@ public class UMLXTables public static final @NonNull EcoreExecutorType _RelInvocationEdge = new EcoreExecutorType(UMLXPackage.Literals.REL_INVOCATION_EDGE, PACKAGE, 0); public static final @NonNull EcoreExecutorType _RelInvocationNode = new EcoreExecutorType(UMLXPackage.Literals.REL_INVOCATION_NODE, PACKAGE, 0); public static final @NonNull EcoreExecutorType _RelNode = new EcoreExecutorType(UMLXPackage.Literals.REL_NODE, PACKAGE, 0 | ExecutorType.ABSTRACT); - public static final @NonNull EcoreExecutorType _RelPatternClassNode = new EcoreExecutorType(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE, PACKAGE, 0); public static final @NonNull EcoreExecutorType _RelPatternEdge = new EcoreExecutorType(UMLXPackage.Literals.REL_PATTERN_EDGE, PACKAGE, 0); - public static final @NonNull EcoreExecutorType _RelPatternExpressionNode = new EcoreExecutorType(UMLXPackage.Literals.REL_PATTERN_EXPRESSION_NODE, PACKAGE, 0); - public static final @NonNull EcoreExecutorType _RelPatternNode = new EcoreExecutorType(UMLXPackage.Literals.REL_PATTERN_NODE, PACKAGE, 0 | ExecutorType.ABSTRACT); + public static final @NonNull EcoreExecutorType _RelPatternNode = new EcoreExecutorType(UMLXPackage.Literals.REL_PATTERN_NODE, PACKAGE, 0); public static final @NonNull EcoreExecutorType _TxDiagram = new EcoreExecutorType(UMLXPackage.Literals.TX_DIAGRAM, PACKAGE, 0); public static final @NonNull EcoreExecutorType _TxImportNode = new EcoreExecutorType(UMLXPackage.Literals.TX_IMPORT_NODE, PACKAGE, 0); public static final @NonNull EcoreExecutorType _TxKeyNode = new EcoreExecutorType(UMLXPackage.Literals.TX_KEY_NODE, PACKAGE, 0); @@ -208,9 +213,7 @@ public class UMLXTables _RelInvocationEdge, _RelInvocationNode, _RelNode, - _RelPatternClassNode, _RelPatternEdge, - _RelPatternExpressionNode, _RelPatternNode, _TxDiagram, _TxImportNode, @@ -284,33 +287,19 @@ public class UMLXTables private static final @NonNull ExecutorFragment _RelNode__RelNode = new ExecutorFragment(Types._RelNode, UMLXTables.Types._RelNode); private static final @NonNull ExecutorFragment _RelNode__UMLXElement = new ExecutorFragment(Types._RelNode, UMLXTables.Types._UMLXElement); - private static final @NonNull ExecutorFragment _RelPatternClassNode__OclAny = new ExecutorFragment(Types._RelPatternClassNode, OCLstdlibTables.Types._OclAny); - private static final @NonNull ExecutorFragment _RelPatternClassNode__OclElement = new ExecutorFragment(Types._RelPatternClassNode, OCLstdlibTables.Types._OclElement); - private static final @NonNull ExecutorFragment _RelPatternClassNode__RelNode = new ExecutorFragment(Types._RelPatternClassNode, UMLXTables.Types._RelNode); - private static final @NonNull ExecutorFragment _RelPatternClassNode__RelPatternClassNode = new ExecutorFragment(Types._RelPatternClassNode, UMLXTables.Types._RelPatternClassNode); - 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); private static final @NonNull ExecutorFragment _RelPatternEdge__RelEdge = new ExecutorFragment(Types._RelPatternEdge, UMLXTables.Types._RelEdge); private static final @NonNull ExecutorFragment _RelPatternEdge__RelPatternEdge = new ExecutorFragment(Types._RelPatternEdge, UMLXTables.Types._RelPatternEdge); private static final @NonNull ExecutorFragment _RelPatternEdge__UMLXElement = new ExecutorFragment(Types._RelPatternEdge, UMLXTables.Types._UMLXElement); - private static final @NonNull ExecutorFragment _RelPatternExpressionNode__OclAny = new ExecutorFragment(Types._RelPatternExpressionNode, OCLstdlibTables.Types._OclAny); - private static final @NonNull ExecutorFragment _RelPatternExpressionNode__OclElement = new ExecutorFragment(Types._RelPatternExpressionNode, OCLstdlibTables.Types._OclElement); - private static final @NonNull ExecutorFragment _RelPatternExpressionNode__RelNode = new ExecutorFragment(Types._RelPatternExpressionNode, UMLXTables.Types._RelNode); - private static final @NonNull ExecutorFragment _RelPatternExpressionNode__RelPatternExpressionNode = new ExecutorFragment(Types._RelPatternExpressionNode, UMLXTables.Types._RelPatternExpressionNode); - private static final @NonNull ExecutorFragment _RelPatternExpressionNode__RelPatternNode = new ExecutorFragment(Types._RelPatternExpressionNode, UMLXTables.Types._RelPatternNode); - private static final @NonNull ExecutorFragment _RelPatternExpressionNode__UMLXElement = new ExecutorFragment(Types._RelPatternExpressionNode, UMLXTables.Types._UMLXElement); - private static final @NonNull ExecutorFragment _RelPatternNode__OclAny = new ExecutorFragment(Types._RelPatternNode, OCLstdlibTables.Types._OclAny); private static final @NonNull ExecutorFragment _RelPatternNode__OclElement = new ExecutorFragment(Types._RelPatternNode, OCLstdlibTables.Types._OclElement); private static final @NonNull ExecutorFragment _RelPatternNode__RelNode = new ExecutorFragment(Types._RelPatternNode, UMLXTables.Types._RelNode); private static final @NonNull ExecutorFragment _RelPatternNode__RelPatternNode = new ExecutorFragment(Types._RelPatternNode, UMLXTables.Types._RelPatternNode); private static final @NonNull ExecutorFragment _RelPatternNode__UMLXElement = new ExecutorFragment(Types._RelPatternNode, UMLXTables.Types._UMLXElement); + private static final @NonNull ExecutorFragment _RelPatternNode__UMLXNamedElement = new ExecutorFragment(Types._RelPatternNode, UMLXTables.Types._UMLXNamedElement); + private static final @NonNull ExecutorFragment _RelPatternNode__UMLXTypedElement = new ExecutorFragment(Types._RelPatternNode, UMLXTables.Types._UMLXTypedElement); private static final @NonNull ExecutorFragment _TxDiagram__OclAny = new ExecutorFragment(Types._TxDiagram, OCLstdlibTables.Types._OclAny); private static final @NonNull ExecutorFragment _TxDiagram__OclElement = new ExecutorFragment(Types._TxDiagram, OCLstdlibTables.Types._OclElement); @@ -438,6 +427,9 @@ public class UMLXTables Parameters.init(); } + public static final @NonNull ExecutorOperation _RelPatternNode__isExpression = new ExecutorOperation("isExpression", TypeUtil.EMPTY_PARAMETER_TYPES, Types._RelPatternNode, + 0, TemplateParameters.EMPTY_LIST, null); + static { Init.initEnd(); } @@ -471,7 +463,6 @@ public class UMLXTables public static final @NonNull ExecutorProperty _RelDomainNode__ownedRelPatternNodes = new EcoreExecutorProperty(UMLXPackage.Literals.REL_DOMAIN_NODE__OWNED_REL_PATTERN_NODES, Types._RelDomainNode, 1); public static final @NonNull ExecutorProperty _RelDomainNode__owningRelDiagram = new EcoreExecutorProperty(UMLXPackage.Literals.REL_DOMAIN_NODE__OWNING_REL_DIAGRAM, Types._RelDomainNode, 2); public static final @NonNull ExecutorProperty _RelDomainNode__referredTxTypedModelNode = new EcoreExecutorProperty(UMLXPackage.Literals.REL_DOMAIN_NODE__REFERRED_TX_TYPED_MODEL_NODE, Types._RelDomainNode, 3); - public static final @NonNull ExecutorProperty _RelDomainNode__RelPatternClassNode__relDomainNode = new ExecutorPropertyWithImplementation("RelPatternClassNode", Types._RelDomainNode, 4, new EcoreLibraryOppositeProperty(UMLXPackage.Literals.REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE)); public static final @NonNull ExecutorProperty _RelInvocationEdge__invokingRelPatternNode = new EcoreExecutorProperty(UMLXPackage.Literals.REL_INVOCATION_EDGE__INVOKING_REL_PATTERN_NODE, Types._RelInvocationEdge, 0); public static final @NonNull ExecutorProperty _RelInvocationEdge__owningRelInvocationNode = new EcoreExecutorProperty(UMLXPackage.Literals.REL_INVOCATION_EDGE__OWNING_REL_INVOCATION_NODE, Types._RelInvocationEdge, 1); @@ -482,11 +473,6 @@ public class UMLXTables public static final @NonNull ExecutorProperty _RelInvocationNode__owningRelDiagram = new EcoreExecutorProperty(UMLXPackage.Literals.REL_INVOCATION_NODE__OWNING_REL_DIAGRAM, Types._RelInvocationNode, 2); 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__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); public static final @NonNull ExecutorProperty _RelPatternEdge__source = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_EDGE__SOURCE, Types._RelPatternEdge, 2); @@ -496,8 +482,11 @@ public class UMLXTables public static final @NonNull ExecutorProperty _RelPatternNode__incoming = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__INCOMING, Types._RelPatternNode, 0); 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 _RelPatternNode__isAnon = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__IS_ANON, Types._RelPatternNode, 3); + public static final @NonNull ExecutorProperty _RelPatternNode__isRoot = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__IS_ROOT, Types._RelPatternNode, 4); + public static final @NonNull ExecutorProperty _RelPatternNode__outgoing = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__OUTGOING, Types._RelPatternNode, 5); + public static final @NonNull ExecutorProperty _RelPatternNode__owningRelDomainNode = new EcoreExecutorProperty(UMLXPackage.Literals.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE, Types._RelPatternNode, 6); + public static final @NonNull ExecutorProperty _RelPatternNode__RelInvocationEdge__referredRelPatternNode = new ExecutorPropertyWithImplementation("RelInvocationEdge", Types._RelPatternNode, 7, new EcoreLibraryOppositeProperty(UMLXPackage.Literals.REL_INVOCATION_EDGE__REFERRED_REL_PATTERN_NODE)); 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); @@ -622,19 +611,6 @@ public class UMLXTables }; private static final int @NonNull [] __RelNode = { 1,1,1,1 }; - private static final @NonNull ExecutorFragment @NonNull [] _RelPatternClassNode = - { - Fragments._RelPatternClassNode__OclAny /* 0 */, - Fragments._RelPatternClassNode__OclElement /* 1 */, - Fragments._RelPatternClassNode__UMLXElement /* 2 */, - 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,2,1 }; - private static final @NonNull ExecutorFragment @NonNull [] _RelPatternEdge = { Fragments._RelPatternEdge__OclAny /* 0 */, @@ -645,26 +621,17 @@ public class UMLXTables }; private static final int @NonNull [] __RelPatternEdge = { 1,1,1,1,1 }; - private static final @NonNull ExecutorFragment @NonNull [] _RelPatternExpressionNode = - { - Fragments._RelPatternExpressionNode__OclAny /* 0 */, - Fragments._RelPatternExpressionNode__OclElement /* 1 */, - Fragments._RelPatternExpressionNode__UMLXElement /* 2 */, - Fragments._RelPatternExpressionNode__RelNode /* 3 */, - Fragments._RelPatternExpressionNode__RelPatternNode /* 4 */, - Fragments._RelPatternExpressionNode__RelPatternExpressionNode /* 5 */ - }; - private static final int @NonNull [] __RelPatternExpressionNode = { 1,1,1,1,1,1 }; - private static final @NonNull ExecutorFragment @NonNull [] _RelPatternNode = { Fragments._RelPatternNode__OclAny /* 0 */, Fragments._RelPatternNode__OclElement /* 1 */, Fragments._RelPatternNode__UMLXElement /* 2 */, Fragments._RelPatternNode__RelNode /* 3 */, - Fragments._RelPatternNode__RelPatternNode /* 4 */ + Fragments._RelPatternNode__UMLXNamedElement /* 3 */, + Fragments._RelPatternNode__UMLXTypedElement /* 4 */, + Fragments._RelPatternNode__RelPatternNode /* 5 */ }; - private static final int @NonNull [] __RelPatternNode = { 1,1,1,1,1 }; + private static final int @NonNull [] __RelPatternNode = { 1,1,1,2,1,1 }; private static final @NonNull ExecutorFragment @NonNull [] _TxDiagram = { @@ -807,9 +774,7 @@ public class UMLXTables Types._RelInvocationEdge.initFragments(_RelInvocationEdge, __RelInvocationEdge); Types._RelInvocationNode.initFragments(_RelInvocationNode, __RelInvocationNode); Types._RelNode.initFragments(_RelNode, __RelNode); - Types._RelPatternClassNode.initFragments(_RelPatternClassNode, __RelPatternClassNode); Types._RelPatternEdge.initFragments(_RelPatternEdge, __RelPatternEdge); - Types._RelPatternExpressionNode.initFragments(_RelPatternExpressionNode, __RelPatternExpressionNode); Types._RelPatternNode.initFragments(_RelPatternNode, __RelPatternNode); Types._TxDiagram.initFragments(_TxDiagram, __TxDiagram); Types._TxImportNode.initFragments(_TxImportNode, __TxImportNode); @@ -1021,39 +986,6 @@ public class UMLXTables }; private static final @NonNull ExecutorOperation @NonNull [] _RelNode__UMLXElement = {}; - private static final @NonNull ExecutorOperation @NonNull [] _RelPatternClassNode__RelPatternClassNode = {}; - private static final @NonNull ExecutorOperation @NonNull [] _RelPatternClassNode__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 [] _RelPatternClassNode__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 [] _RelPatternClassNode__RelNode = {}; - 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 = { OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */, @@ -1084,38 +1016,9 @@ public class UMLXTables private static final @NonNull ExecutorOperation @NonNull [] _RelPatternEdge__RelEdge = {}; private static final @NonNull ExecutorOperation @NonNull [] _RelPatternEdge__UMLXElement = {}; - private static final @NonNull ExecutorOperation @NonNull [] _RelPatternExpressionNode__RelPatternExpressionNode = {}; - private static final @NonNull ExecutorOperation @NonNull [] _RelPatternExpressionNode__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 [] _RelPatternNode__RelPatternNode = { + UMLXTables.Operations._RelPatternNode__isExpression /* isExpression() */ }; - private static final @NonNull ExecutorOperation @NonNull [] _RelPatternExpressionNode__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 [] _RelPatternExpressionNode__RelNode = {}; - private static final @NonNull ExecutorOperation @NonNull [] _RelPatternExpressionNode__RelPatternNode = {}; - private static final @NonNull ExecutorOperation @NonNull [] _RelPatternExpressionNode__UMLXElement = {}; - - private static final @NonNull ExecutorOperation @NonNull [] _RelPatternNode__RelPatternNode = {}; private static final @NonNull ExecutorOperation @NonNull [] _RelPatternNode__OclAny = { OCLstdlibTables.Operations._OclAny___lt__gt_ /* _'<>'(OclSelf[?]) */, OCLstdlibTables.Operations._OclAny___eq_ /* _'='(OclSelf[?]) */, @@ -1144,6 +1047,8 @@ public class UMLXTables }; private static final @NonNull ExecutorOperation @NonNull [] _RelPatternNode__RelNode = {}; private static final @NonNull ExecutorOperation @NonNull [] _RelPatternNode__UMLXElement = {}; + private static final @NonNull ExecutorOperation @NonNull [] _RelPatternNode__UMLXNamedElement = {}; + private static final @NonNull ExecutorOperation @NonNull [] _RelPatternNode__UMLXTypedElement = {}; private static final @NonNull ExecutorOperation @NonNull [] _TxDiagram__TxDiagram = {}; private static final @NonNull ExecutorOperation @NonNull [] _TxDiagram__OclAny = { @@ -1574,33 +1479,19 @@ public class UMLXTables Fragments._RelNode__RelNode.initOperations(_RelNode__RelNode); Fragments._RelNode__UMLXElement.initOperations(_RelNode__UMLXElement); - Fragments._RelPatternClassNode__OclAny.initOperations(_RelPatternClassNode__OclAny); - Fragments._RelPatternClassNode__OclElement.initOperations(_RelPatternClassNode__OclElement); - Fragments._RelPatternClassNode__RelNode.initOperations(_RelPatternClassNode__RelNode); - Fragments._RelPatternClassNode__RelPatternClassNode.initOperations(_RelPatternClassNode__RelPatternClassNode); - 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); Fragments._RelPatternEdge__RelEdge.initOperations(_RelPatternEdge__RelEdge); Fragments._RelPatternEdge__RelPatternEdge.initOperations(_RelPatternEdge__RelPatternEdge); Fragments._RelPatternEdge__UMLXElement.initOperations(_RelPatternEdge__UMLXElement); - Fragments._RelPatternExpressionNode__OclAny.initOperations(_RelPatternExpressionNode__OclAny); - Fragments._RelPatternExpressionNode__OclElement.initOperations(_RelPatternExpressionNode__OclElement); - Fragments._RelPatternExpressionNode__RelNode.initOperations(_RelPatternExpressionNode__RelNode); - Fragments._RelPatternExpressionNode__RelPatternExpressionNode.initOperations(_RelPatternExpressionNode__RelPatternExpressionNode); - Fragments._RelPatternExpressionNode__RelPatternNode.initOperations(_RelPatternExpressionNode__RelPatternNode); - Fragments._RelPatternExpressionNode__UMLXElement.initOperations(_RelPatternExpressionNode__UMLXElement); - Fragments._RelPatternNode__OclAny.initOperations(_RelPatternNode__OclAny); Fragments._RelPatternNode__OclElement.initOperations(_RelPatternNode__OclElement); Fragments._RelPatternNode__RelNode.initOperations(_RelPatternNode__RelNode); Fragments._RelPatternNode__RelPatternNode.initOperations(_RelPatternNode__RelPatternNode); Fragments._RelPatternNode__UMLXElement.initOperations(_RelPatternNode__UMLXElement); + Fragments._RelPatternNode__UMLXNamedElement.initOperations(_RelPatternNode__UMLXNamedElement); + Fragments._RelPatternNode__UMLXTypedElement.initOperations(_RelPatternNode__UMLXTypedElement); Fragments._TxDiagram__OclAny.initOperations(_TxDiagram__OclAny); Fragments._TxDiagram__OclElement.initOperations(_TxDiagram__OclElement); @@ -1739,25 +1630,6 @@ public class UMLXTables UMLXTables.Properties._UMLXElement__comments }; - 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._UMLXTypedElement__isMany, - UMLXTables.Properties._UMLXTypedElement__isNullFree, - UMLXTables.Properties._UMLXTypedElement__isOrdered, - UMLXTables.Properties._UMLXTypedElement__isRequired, - UMLXTables.Properties._RelPatternNode__isRoot, - UMLXTables.Properties._UMLXTypedElement__isUnique, - UMLXTables.Properties._UMLXNamedElement__name, - UMLXTables.Properties._RelPatternClassNode__outgoing, - UMLXTables.Properties._RelPatternNode__owningRelDomainNode, - UMLXTables.Properties._UMLXTypedElement__referredEClassifier, - UMLXTables.Properties._RelPatternClassNode__relDomainNode - }; - private static final @NonNull ExecutorProperty @NonNull [] _RelPatternEdge = { UMLXTables.Properties._UMLXElement__comments, UMLXTables.Properties._RelPatternEdge__owningRelDomainNode, @@ -1767,22 +1639,22 @@ public class UMLXTables UMLXTables.Properties._RelPatternEdge__target }; - private static final @NonNull ExecutorProperty @NonNull [] _RelPatternExpressionNode = { - UMLXTables.Properties._UMLXElement__comments, - UMLXTables.Properties._RelPatternNode__incoming, - UMLXTables.Properties._RelPatternNode__initExpressionLines, - UMLXTables.Properties._RelPatternNode__invokingRelInvocationEdges, - UMLXTables.Properties._RelPatternNode__isRoot, - UMLXTables.Properties._RelPatternNode__owningRelDomainNode - }; - 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__isAnon, + UMLXTables.Properties._UMLXTypedElement__isMany, + UMLXTables.Properties._UMLXTypedElement__isNullFree, + UMLXTables.Properties._UMLXTypedElement__isOrdered, + UMLXTables.Properties._UMLXTypedElement__isRequired, UMLXTables.Properties._RelPatternNode__isRoot, - UMLXTables.Properties._RelPatternNode__owningRelDomainNode + UMLXTables.Properties._UMLXTypedElement__isUnique, + UMLXTables.Properties._UMLXNamedElement__name, + UMLXTables.Properties._RelPatternNode__outgoing, + UMLXTables.Properties._RelPatternNode__owningRelDomainNode, + UMLXTables.Properties._UMLXTypedElement__referredEClassifier }; private static final @NonNull ExecutorProperty @NonNull [] _TxDiagram = { @@ -1897,9 +1769,7 @@ public class UMLXTables Fragments._RelInvocationEdge__RelInvocationEdge.initProperties(_RelInvocationEdge); Fragments._RelInvocationNode__RelInvocationNode.initProperties(_RelInvocationNode); Fragments._RelNode__RelNode.initProperties(_RelNode); - Fragments._RelPatternClassNode__RelPatternClassNode.initProperties(_RelPatternClassNode); Fragments._RelPatternEdge__RelPatternEdge.initProperties(_RelPatternEdge); - Fragments._RelPatternExpressionNode__RelPatternExpressionNode.initProperties(_RelPatternExpressionNode); Fragments._RelPatternNode__RelPatternNode.initProperties(_RelPatternNode); Fragments._TxDiagram__TxDiagram.initProperties(_TxDiagram); Fragments._TxImportNode__TxImportNode.initProperties(_TxImportNode); 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 ee23c941c..9230d3aee 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 @@ -11,9 +11,9 @@ 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; @@ -30,7 +30,6 @@ import org.eclipse.ocl.pivot.ids.TypeId; import org.eclipse.ocl.pivot.internal.utilities.PivotUtilInternal; import org.eclipse.ocl.pivot.library.collection.CollectionAsSetOperation; import org.eclipse.ocl.pivot.library.collection.CollectionCountOperation; -import org.eclipse.ocl.pivot.library.collection.CollectionSelectByKindOperation; import org.eclipse.ocl.pivot.library.logical.BooleanNotOperation; import org.eclipse.ocl.pivot.library.oclany.OclComparableGreaterThanOperation; import org.eclipse.ocl.pivot.library.oclany.OclComparableLessThanEqualOperation; @@ -44,7 +43,6 @@ import org.eclipse.ocl.pivot.values.SetValue; import org.eclipse.qvtd.umlx.RelDiagram; import org.eclipse.qvtd.umlx.RelDomainNode; import org.eclipse.qvtd.umlx.RelInvocationNode; -import org.eclipse.qvtd.umlx.RelPatternClassNode; import org.eclipse.qvtd.umlx.RelPatternNode; import org.eclipse.qvtd.umlx.TxDiagram; import org.eclipse.qvtd.umlx.UMLXPackage; @@ -222,6 +220,42 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram { * @generated */ @Override + public boolean validateNameIsRequired(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv NameIsRequired: + * let severity : Integer[1] = 'RelDiagram::NameIsRequired'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let result : Boolean[1] = name <> null + * in + * 'RelDiagram::NameIsRequired'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelDiagram_c_c_NameIsRequired); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + final /*@NonInvalid*/ java.lang.@Nullable String name = this.getName(); + final /*@NonInvalid*/ boolean result = name != null; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelDiagram_c_c_NameIsRequired, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public boolean validateRelPatternNodeNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * @@ -234,7 +268,8 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram { * else * let * result : OclAny[1] = let - * allNames : Sequence(String) = ownedRelDomainNodes.ownedRelPatternNodes->selectByKind(RelPatternClassNode) + * allNames : Sequence(String)[*|?] = ownedRelDomainNodes.ownedRelPatternNodes->select( + * not isExpression()) * ->select(not isAnon).name * in * let status : Boolean[1] = allNames->isUnique(n | n) @@ -266,7 +301,6 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram { else { /*@Caught*/ @NonNull Object CAUGHT_symbol_1; try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); @SuppressWarnings("null") final /*@NonInvalid*/ java.util.@NonNull List<RelDomainNode> ownedRelDomainNodes = this.getOwnedRelDomainNodes(); final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_ownedRelDomainNodes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_RelDomainNode, ownedRelDomainNodes); @@ -291,22 +325,21 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram { accumulator.add(value); } } - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue selectByKind = (SequenceValue)CollectionSelectByKindOperation.INSTANCE.evaluate(executor, collect, TYP_umlx_c_c_RelPatternClassNode); - /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_CLSSid_RelPatternClassNode); - @NonNull Iterator<Object> ITERATOR__1_0 = selectByKind.iterator(); - /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue select; + /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_CLSSid_RelPatternNode); + @NonNull Iterator<Object> ITERATOR__1_0 = collect.iterator(); + /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue select_0; while (true) { if (!ITERATOR__1_0.hasNext()) { - select = accumulator_0; + select_0 = accumulator_0; break; } @SuppressWarnings("null") - /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode _1_0 = (RelPatternClassNode)ITERATOR__1_0.next(); + /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode _1_0 = (RelPatternNode)ITERATOR__1_0.next(); /** - * not isAnon + * not isExpression() */ - final /*@NonInvalid*/ boolean isAnon = _1_0.isIsAnon(); - final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isAnon); + final /*@NonInvalid*/ boolean isExpression = _1_0.isExpression(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression); if (not == null) { throw new InvalidValueException("Null body for \'Sequence(T).select(Sequence.T[?] | Lambda T() : Boolean[1]) : Sequence(T)\'"); } @@ -315,44 +348,65 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram { accumulator_0.add(_1_0); } } - /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_1 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_PRIMid_String); - @NonNull Iterator<Object> ITERATOR__1_1 = select.iterator(); - /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue allNames; + /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_1 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_CLSSid_RelPatternNode); + @NonNull Iterator<Object> ITERATOR__1_1 = select_0.iterator(); + /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue select; while (true) { if (!ITERATOR__1_1.hasNext()) { - allNames = accumulator_1; + select = accumulator_1; break; } @SuppressWarnings("null") - /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode _1_1 = (RelPatternClassNode)ITERATOR__1_1.next(); + /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode _1_1 = (RelPatternNode)ITERATOR__1_1.next(); /** - * name + * not isAnon */ + final /*@NonInvalid*/ boolean isAnon = _1_1.isIsAnon(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean not_0 = BooleanNotOperation.INSTANCE.evaluate(isAnon); + if (not_0 == null) { + throw new InvalidValueException("Null body for \'Sequence(T).select(Sequence.T[?] | Lambda T() : Boolean[1]) : Sequence(T)\'"); + } + // + if (not_0 == ValueUtil.TRUE_VALUE) { + accumulator_1.add(_1_1); + } + } + /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_2 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_PRIMid_String); + @NonNull Iterator<Object> ITERATOR__1_2 = select.iterator(); + /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue allNames; + while (true) { + if (!ITERATOR__1_2.hasNext()) { + allNames = accumulator_2; + break; + } @SuppressWarnings("null") - final /*@NonInvalid*/ java.lang.@NonNull String name = _1_1.getName(); + /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode _1_2 = (RelPatternNode)ITERATOR__1_2.next(); + /** + * name + */ + final /*@NonInvalid*/ java.lang.@Nullable String name = _1_2.getName(); // - accumulator_1.add(name); + accumulator_2.add(name); } - /*@Thrown*/ SetValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_2 = ValueUtil.createSetAccumulatorValue(UMLXTables.SEQ_PRIMid_String); - @NonNull Iterator<Object> ITERATOR_n = allNames.iterator(); + /*@Thrown*/ SetValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_3 = ValueUtil.createSetAccumulatorValue(UMLXTables.SEQ_PRIMid_String); + @Nullable Iterator<Object> ITERATOR_n = allNames.iterator(); /*@Thrown*/ boolean status; while (true) { if (!ITERATOR_n.hasNext()) { status = ValueUtil.TRUE_VALUE; break; } - @SuppressWarnings("null") - /*@NonInvalid*/ java.lang.@NonNull String n = (String)ITERATOR_n.next(); + /*@NonInvalid*/ java.lang.@Nullable String n = (String)ITERATOR_n.next(); /** * n */ // - if (accumulator_2.includes(n) == ValueUtil.TRUE_VALUE) { + if (accumulator_3.includes(n) == ValueUtil.TRUE_VALUE) { status = ValueUtil.FALSE_VALUE; // Abort after second find break; } else { - accumulator_2.add(n); + accumulator_3.add(n); } } /*@Thrown*/ java.lang.@NonNull Object symbol_1; @@ -360,16 +414,15 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram { symbol_1 = ValueUtil.TRUE_VALUE; } else { - /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_3 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_PRIMid_String); - @NonNull Iterator<Object> ITERATOR_n_0 = allNames.iterator(); - /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue select_0; + /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_4 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_PRIMid_String); + @Nullable Iterator<Object> ITERATOR_n_0 = allNames.iterator(); + /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue select_1; while (true) { if (!ITERATOR_n_0.hasNext()) { - select_0 = accumulator_3; + select_1 = accumulator_4; break; } - @SuppressWarnings("null") - /*@NonInvalid*/ java.lang.@NonNull String n_0 = (String)ITERATOR_n_0.next(); + /*@NonInvalid*/ java.lang.@Nullable String n_0 = (String)ITERATOR_n_0.next(); /** * allNames->count(n) > 1 */ @@ -377,10 +430,10 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram { final /*@Thrown*/ boolean gt = OclComparableGreaterThanOperation.INSTANCE.evaluate(executor, count, UMLXTables.INT_1).booleanValue(); // if (gt == ValueUtil.TRUE_VALUE) { - accumulator_3.add(n_0); + accumulator_4.add(n_0); } } - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue repeatedNames = CollectionAsSetOperation.INSTANCE.evaluate(select_0); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue repeatedNames = CollectionAsSetOperation.INSTANCE.evaluate(select_1); /*@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; @@ -401,8 +454,7 @@ public class RelDiagramImpl extends UMLXNamedElementImpl implements RelDiagram { acc = sum_1; } final /*@Thrown*/ java.lang.@NonNull String sum_2 = StringConcatOperation.INSTANCE.evaluate(iterate, UMLXTables.STR__32_are_32_not_32_unique_32_for_32); - @SuppressWarnings("null") - final /*@NonInvalid*/ java.lang.@NonNull String name_0 = this.getName(); + final /*@NonInvalid*/ java.lang.@Nullable String name_0 = this.getName(); final /*@Thrown*/ java.lang.@NonNull String sum_3 = StringConcatOperation.INSTANCE.evaluate(sum_2, name_0); final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull TupleValue symbol_0 = ValueUtil.createTupleOfEach(UMLXTables.TUPLid_, sum_3, status); symbol_1 = symbol_0; 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 f08400c65..1b1cefefe 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 @@ -19,7 +19,6 @@ import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.qvtd.umlx.RelInvocationEdge; import org.eclipse.qvtd.umlx.RelInvocationNode; -import org.eclipse.qvtd.umlx.RelPatternClassNode; import org.eclipse.qvtd.umlx.RelPatternNode; import org.eclipse.qvtd.umlx.UMLXPackage; import org.eclipse.qvtd.umlx.util.UMLXVisitor; @@ -58,7 +57,7 @@ public class RelInvocationEdgeImpl extends RelEdgeImpl implements RelInvocationE * @generated * @ordered */ - protected RelPatternClassNode referredRelPatternNode; + protected RelPatternNode referredRelPatternNode; /** * <!-- begin-user-doc --> @@ -85,10 +84,10 @@ public class RelInvocationEdgeImpl extends RelEdgeImpl implements RelInvocationE * @generated */ @Override - public RelPatternClassNode getReferredRelPatternNode() { + public RelPatternNode getReferredRelPatternNode() { if (referredRelPatternNode != null && referredRelPatternNode.eIsProxy()) { InternalEObject oldReferredRelPatternNode = (InternalEObject)referredRelPatternNode; - referredRelPatternNode = (RelPatternClassNode)eResolveProxy(oldReferredRelPatternNode); + referredRelPatternNode = (RelPatternNode)eResolveProxy(oldReferredRelPatternNode); if (referredRelPatternNode != oldReferredRelPatternNode) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, UMLXPackage.REL_INVOCATION_EDGE__REFERRED_REL_PATTERN_NODE, oldReferredRelPatternNode, referredRelPatternNode)); @@ -102,7 +101,7 @@ public class RelInvocationEdgeImpl extends RelEdgeImpl implements RelInvocationE * <!-- end-user-doc --> * @generated */ - public RelPatternClassNode basicGetReferredRelPatternNode() { + public RelPatternNode basicGetReferredRelPatternNode() { return referredRelPatternNode; } @@ -112,8 +111,8 @@ public class RelInvocationEdgeImpl extends RelEdgeImpl implements RelInvocationE * @generated */ @Override - public void setReferredRelPatternNode(RelPatternClassNode newReferredRelPatternNode) { - RelPatternClassNode oldReferredRelPatternNode = referredRelPatternNode; + public void setReferredRelPatternNode(RelPatternNode newReferredRelPatternNode) { + RelPatternNode oldReferredRelPatternNode = referredRelPatternNode; referredRelPatternNode = newReferredRelPatternNode; if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.REL_INVOCATION_EDGE__REFERRED_REL_PATTERN_NODE, oldReferredRelPatternNode, referredRelPatternNode)); @@ -309,7 +308,7 @@ public class RelInvocationEdgeImpl extends RelEdgeImpl implements RelInvocationE setOwningRelInvocationNode((RelInvocationNode)newValue); return; case UMLXPackage.REL_INVOCATION_EDGE__REFERRED_REL_PATTERN_NODE: - setReferredRelPatternNode((RelPatternClassNode)newValue); + setReferredRelPatternNode((RelPatternNode)newValue); return; } super.eSet(featureID, newValue); @@ -330,7 +329,7 @@ public class RelInvocationEdgeImpl extends RelEdgeImpl implements RelInvocationE setOwningRelInvocationNode((RelInvocationNode)null); return; case UMLXPackage.REL_INVOCATION_EDGE__REFERRED_REL_PATTERN_NODE: - setReferredRelPatternNode((RelPatternClassNode)null); + setReferredRelPatternNode((RelPatternNode)null); return; } super.eUnset(featureID); diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelInvocationNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelInvocationNodeImpl.java index bdeae67b4..3d5be4244 100644 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelInvocationNodeImpl.java +++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelInvocationNodeImpl.java @@ -188,6 +188,7 @@ public class RelInvocationNodeImpl extends RelNodeImpl implements RelInvocationN * <!-- end-user-doc --> * @generated */ + @Override public boolean validateCompatibleEdges(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * @@ -204,7 +205,7 @@ public class RelInvocationNodeImpl extends RelNodeImpl implements RelInvocationN * ->asSet() * in * let - * actualNodes : Set(umlx::RelPatternClassNode) = ownedRelInvocationEdges.referredRelPatternNode->asSet() + * actualNodes : Set(umlx::RelPatternNode) = ownedRelInvocationEdges.referredRelPatternNode->asSet() * in * let status : Boolean[1] = expectedNodes = actualNodes * in @@ -282,7 +283,7 @@ public class RelInvocationNodeImpl extends RelNodeImpl implements RelInvocationN @SuppressWarnings("null") final /*@NonInvalid*/ java.util.@NonNull List<RelInvocationEdge> ownedRelInvocationEdges = this.getOwnedRelInvocationEdges(); final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_ownedRelInvocationEdges = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_RelInvocationEdge, ownedRelInvocationEdges); - /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_1 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_CLSSid_RelPatternClassNode); + /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_1 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_CLSSid_RelPatternNode); @NonNull Iterator<Object> ITERATOR__1_1 = BOXED_ownedRelInvocationEdges.iterator(); /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue collect_0; while (true) { @@ -296,7 +297,7 @@ public class RelInvocationNodeImpl extends RelNodeImpl implements RelInvocationN * referredRelPatternNode */ @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode referredRelPatternNode = _1_1.getReferredRelPatternNode(); + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode referredRelPatternNode = _1_1.getReferredRelPatternNode(); // accumulator_1.add(referredRelPatternNode); } 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 deleted file mode 100644 index dc738b41b..000000000 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternClassNodeImpl.java +++ /dev/null @@ -1,913 +0,0 @@ -/** - * 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.EPackage; -import org.eclipse.emf.ecore.InternalEObject; -import org.eclipse.emf.ecore.impl.ENotificationImpl; -import org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList; -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.CollectionIncludesOperation; -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.InvalidValueException; -import org.eclipse.ocl.pivot.values.SequenceValue; -import org.eclipse.qvtd.umlx.RelDomainNode; -import org.eclipse.qvtd.umlx.RelPatternClassNode; -import org.eclipse.qvtd.umlx.RelPatternEdge; -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; - -/** - * <!-- begin-user-doc --> - * An implementation of the model object '<em><b>Rel Pattern Node</b></em>'. - * <!-- end-user-doc --> - * <p> - * The following features are implemented: - * </p> - * <ul> - * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternClassNodeImpl#getName <em>Name</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#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> - * - * @generated - */ -public class RelPatternClassNodeImpl extends RelPatternNodeImpl implements RelPatternClassNode { - /** - * 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 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 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. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @see #getRelDomainNode() - * @generated - * @ordered - */ - protected RelDomainNode relDomainNode; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected RelPatternClassNodeImpl() { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() { - return UMLXPackage.Literals.REL_PATTERN_CLASS_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.REL_PATTERN_CLASS_NODE__NAME, oldName, name)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean isIsAnon() { - return isAnon; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void setIsAnon(boolean newIsAnon) { - boolean oldIsAnon = isAnon; - isAnon = newIsAnon; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ANON, oldIsAnon, isAnon)); - } - - /** - * <!-- 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.REL_PATTERN_CLASS_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.REL_PATTERN_CLASS_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.REL_PATTERN_CLASS_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.REL_PATTERN_CLASS_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.REL_PATTERN_CLASS_NODE__IS_UNIQUE, oldIsUnique, isUnique)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public EList<RelPatternEdge> getOutgoing() { - if (outgoing == null) { - outgoing = new EObjectWithInverseResolvingEList<RelPatternEdge>(RelPatternEdge.class, this, UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING, UMLXPackage.REL_PATTERN_EDGE__SOURCE); - } - return outgoing; - } - - /** - * <!-- 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.REL_PATTERN_CLASS_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.REL_PATTERN_CLASS_NODE__REFERRED_ECLASSIFIER, oldReferredEClassifier, referredEClassifier)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public RelDomainNode getRelDomainNode() { - if (relDomainNode != null && relDomainNode.eIsProxy()) { - InternalEObject oldRelDomainNode = (InternalEObject)relDomainNode; - relDomainNode = (RelDomainNode)eResolveProxy(oldRelDomainNode); - if (relDomainNode != oldRelDomainNode) { - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.RESOLVE, UMLXPackage.REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE, oldRelDomainNode, relDomainNode)); - } - } - return relDomainNode; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public RelDomainNode basicGetRelDomainNode() { - return relDomainNode; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public void setRelDomainNode(RelDomainNode newRelDomainNode) { - RelDomainNode oldRelDomainNode = relDomainNode; - relDomainNode = newRelDomainNode; - if (eNotificationRequired()) - eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE, oldRelDomainNode, relDomainNode)); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean validateAnonIsUnnamed(final DiagnosticChain diagnostics, final Map<Object, Object> context) { - /** - * - * inv AnonIsUnnamed: - * let - * severity : Integer[1] = 'RelPatternClassNode::AnonIsUnnamed'.getSeverity() - * in - * if severity <= 0 - * then true - * else - * let result : Boolean[1] = isAnon = name = '' - * in - * 'RelPatternClassNode::AnonIsUnnamed'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) - * endif - */ - final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternClassNode_c_c_AnonIsUnnamed); - final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); - /*@NonInvalid*/ boolean symbol_0; - if (le) { - symbol_0 = ValueUtil.TRUE_VALUE; - } - else { - final /*@NonInvalid*/ boolean isAnon = this.isIsAnon(); - @SuppressWarnings("null") - final /*@NonInvalid*/ java.lang.@NonNull String name = this.getName(); - final /*@NonInvalid*/ boolean eq = name.equals(UMLXTables.STR_); - final /*@NonInvalid*/ boolean result = isAnon == eq; - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternClassNode_c_c_AnonIsUnnamed, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); - symbol_0 = logDiagnostic; - } - return Boolean.TRUE == symbol_0; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean validateEClassifierIsInTypedModel(final DiagnosticChain diagnostics, final Map<Object, Object> context) { - /** - * - * inv EClassifierIsInTypedModel: - * let - * severity : Integer[1] = 'RelPatternClassNode::EClassifierIsInTypedModel'.getSeverity() - * in - * if severity <= 0 - * then true - * else - * let - * result : Boolean[?] = let txTypedModelNode : TxTypedModelNode[?] = owningRelDomainNode.referredTxTypedModelNode - * in txTypedModelNode <> null implies - * txTypedModelNode.ownedTxPackageNodes.referredEPackage.eClassifiers->includes(referredEClassifier) - * in - * 'RelPatternClassNode::EClassifierIsInTypedModel'.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_RelPatternClassNode_c_c_EClassifierIsInTypedModel); - 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_implies; - try { - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelDomainNode owningRelDomainNode = this.getOwningRelDomainNode(); - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@Nullable TxTypedModelNode txTypedModelNode = owningRelDomainNode.getReferredTxTypedModelNode(); - final /*@NonInvalid*/ boolean ne = txTypedModelNode != null; - /*@Thrown*/ boolean implies; - if (ne) { - if (txTypedModelNode == null) { - throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/qvt/2016/UMLX\'::TxTypedModelNode::ownedTxPackageNodes\'"); - } - @SuppressWarnings("null") - final /*@Thrown*/ java.util.@NonNull List<TxPackageNode> ownedTxPackageNodes = txTypedModelNode.getOwnedTxPackageNodes(); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_ownedTxPackageNodes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_TxPackageNode, ownedTxPackageNodes); - /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_CLSSid_EPackage); - @NonNull Iterator<Object> ITERATOR__1 = BOXED_ownedTxPackageNodes.iterator(); - /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue collect_0; - while (true) { - if (!ITERATOR__1.hasNext()) { - collect_0 = accumulator; - break; - } - @SuppressWarnings("null") - /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull TxPackageNode _1 = (TxPackageNode)ITERATOR__1.next(); - /** - * referredEPackage - */ - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.emf.ecore.@NonNull EPackage referredEPackage = _1.getReferredEPackage(); - // - accumulator.add(referredEPackage); - } - /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_CLSSid_EClassifier); - @NonNull Iterator<Object> ITERATOR__1_0 = collect_0.iterator(); - /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue collect; - while (true) { - if (!ITERATOR__1_0.hasNext()) { - collect = accumulator_0; - break; - } - @SuppressWarnings("null") - /*@NonInvalid*/ org.eclipse.emf.ecore.@NonNull EPackage _1_0 = (EPackage)ITERATOR__1_0.next(); - /** - * eClassifiers - */ - @SuppressWarnings("null") - final /*@NonInvalid*/ java.util.@NonNull List<EClassifier> eClassifiers = _1_0.getEClassifiers(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eClassifiers = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClassifier, eClassifiers); - // - for (Object value : BOXED_eClassifiers.flatten().getElements()) { - accumulator_0.add(value); - } - } - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = this.getReferredEClassifier(); - final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(collect, referredEClassifier).booleanValue(); - implies = includes; - } - else { - implies = ValueUtil.TRUE_VALUE; - } - CAUGHT_implies = implies; - } - catch (Exception e) { - CAUGHT_implies = ValueUtil.createInvalidValue(e); - } - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternClassNode_c_c_EClassifierIsInTypedModel, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_implies, UMLXTables.INT_0).booleanValue(); - symbol_0 = logDiagnostic; - } - return Boolean.TRUE == symbol_0; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eGet(int featureID, boolean resolve, boolean coreType) { - switch (featureID) { - case UMLXPackage.REL_PATTERN_CLASS_NODE__NAME: - return getName(); - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_MANY: - return isIsMany(); - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_NULL_FREE: - return isIsNullFree(); - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ORDERED: - return isIsOrdered(); - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_REQUIRED: - return isIsRequired(); - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_UNIQUE: - return isIsUnique(); - 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(); - } - 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.REL_PATTERN_CLASS_NODE__NAME: - setName((String)newValue); - return; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_MANY: - setIsMany((Boolean)newValue); - return; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_NULL_FREE: - setIsNullFree((Boolean)newValue); - return; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ORDERED: - setIsOrdered((Boolean)newValue); - return; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_REQUIRED: - setIsRequired((Boolean)newValue); - return; - 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__REL_DOMAIN_NODE: - setRelDomainNode((RelDomainNode)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_CLASS_NODE__NAME: - setName(NAME_EDEFAULT); - return; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_MANY: - setIsMany(IS_MANY_EDEFAULT); - return; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_NULL_FREE: - setIsNullFree(IS_NULL_FREE_EDEFAULT); - return; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ORDERED: - setIsOrdered(IS_ORDERED_EDEFAULT); - return; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_REQUIRED: - setIsRequired(IS_REQUIRED_EDEFAULT); - return; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_UNIQUE: - setIsUnique(IS_UNIQUE_EDEFAULT); - 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; - } - super.eUnset(featureID); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean eIsSet(int featureID) { - 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_MANY: - return isMany != IS_MANY_EDEFAULT; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_NULL_FREE: - return isNullFree != IS_NULL_FREE_EDEFAULT; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_ORDERED: - return isOrdered != IS_ORDERED_EDEFAULT; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_REQUIRED: - return isRequired != IS_REQUIRED_EDEFAULT; - case UMLXPackage.REL_PATTERN_CLASS_NODE__IS_UNIQUE: - return isUnique != IS_UNIQUE_EDEFAULT; - 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; - } - 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.REL_PATTERN_CLASS_NODE__NAME: return UMLXPackage.UMLX_NAMED_ELEMENT__NAME; - 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); - } - - /** - * <!-- 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.REL_PATTERN_CLASS_NODE__NAME; - 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); - } - - /** - * {@inheritDoc} - * @generated - */ - @Override - public <R> R accept(@NonNull UMLXVisitor<R> visitor) { - return visitor.visitRelPatternClassNode(this); - } - - /** - * <!-- 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.REL_PATTERN_CLASS_NODE__OUTGOING: - return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutgoing()).basicAdd(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.REL_PATTERN_CLASS_NODE__OUTGOING: - return ((InternalEList<?>)getOutgoing()).basicRemove(otherEnd, msgs); - } - return super.eInverseRemove(otherEnd, featureID, msgs); - } - -} //RelPatternNodeImpl diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java index 475018b33..eb4c15841 100644 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java +++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternEdgeImpl.java @@ -31,6 +31,7 @@ import org.eclipse.ocl.pivot.library.LibraryIteration; import org.eclipse.ocl.pivot.library.collection.CollectionIncludesOperation; import org.eclipse.ocl.pivot.library.logical.BooleanAndOperation; import org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation; +import org.eclipse.ocl.pivot.library.logical.BooleanNotOperation; import org.eclipse.ocl.pivot.library.logical.BooleanOrOperation; import org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsSetOperation; import org.eclipse.ocl.pivot.library.oclany.OclAnyOclAsTypeOperation; @@ -46,12 +47,10 @@ import org.eclipse.ocl.pivot.utilities.ValueUtil; import org.eclipse.ocl.pivot.values.InvalidValueException; import org.eclipse.ocl.pivot.values.SetValue; import org.eclipse.qvtd.umlx.RelDomainNode; -import org.eclipse.qvtd.umlx.RelPatternClassNode; import org.eclipse.qvtd.umlx.RelPatternEdge; import org.eclipse.qvtd.umlx.RelPatternNode; import org.eclipse.qvtd.umlx.UMLXPackage; import org.eclipse.qvtd.umlx.UMLXTables; -import org.eclipse.qvtd.umlx.UMLXTypedElement; import org.eclipse.qvtd.umlx.util.UMLXVisitor; /** @@ -90,7 +89,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * @generated * @ordered */ - protected RelPatternClassNode source; + protected RelPatternNode source; /** * The default value of the '{@link #getSourceIndex() <em>Source Index</em>}' attribute. @@ -147,10 +146,10 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * @generated */ @Override - public RelPatternClassNode getSource() { + public RelPatternNode getSource() { if (source != null && source.eIsProxy()) { InternalEObject oldSource = (InternalEObject)source; - source = (RelPatternClassNode)eResolveProxy(oldSource); + source = (RelPatternNode)eResolveProxy(oldSource); if (source != oldSource) { if (eNotificationRequired()) eNotify(new ENotificationImpl(this, Notification.RESOLVE, UMLXPackage.REL_PATTERN_EDGE__SOURCE, oldSource, source)); @@ -164,7 +163,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * <!-- end-user-doc --> * @generated */ - public RelPatternClassNode basicGetSource() { + public RelPatternNode basicGetSource() { return source; } @@ -173,8 +172,8 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * <!-- end-user-doc --> * @generated */ - public NotificationChain basicSetSource(RelPatternClassNode newSource, NotificationChain msgs) { - RelPatternClassNode oldSource = source; + public NotificationChain basicSetSource(RelPatternNode newSource, NotificationChain msgs) { + RelPatternNode oldSource = source; source = newSource; if (eNotificationRequired()) { ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, UMLXPackage.REL_PATTERN_EDGE__SOURCE, oldSource, newSource); @@ -189,13 +188,13 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * @generated */ @Override - public void setSource(RelPatternClassNode newSource) { + public void setSource(RelPatternNode newSource) { if (newSource != source) { NotificationChain msgs = null; if (source != null) - msgs = ((InternalEObject)source).eInverseRemove(this, UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING, RelPatternClassNode.class, msgs); + msgs = ((InternalEObject)source).eInverseRemove(this, UMLXPackage.REL_PATTERN_NODE__OUTGOING, RelPatternNode.class, msgs); if (newSource != null) - msgs = ((InternalEObject)newSource).eInverseAdd(this, UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING, RelPatternClassNode.class, msgs); + msgs = ((InternalEObject)newSource).eInverseAdd(this, UMLXPackage.REL_PATTERN_NODE__OUTGOING, RelPatternNode.class, msgs); msgs = basicSetSource(newSource, msgs); if (msgs != null) msgs.dispatch(); } @@ -377,194 +376,57 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * @generated */ @Override - public boolean validateCompatibleMemberPropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + public boolean validateSourceIsEClass(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * - * inv CompatibleMemberPropertyTarget: - * let - * severity : Integer[1] = 'RelPatternEdge::CompatibleMemberPropertyTarget'.getSeverity() + * inv SourceIsEClass: + * let severity : Integer[1] = 'RelPatternEdge::SourceIsEClass'.getSeverity() * in * if severity <= 0 * then true * else - * let result : Boolean[?] = referredEStructuralFeature = null and sourceIndex > 0 and - * target.oclIsKindOf(RelPatternClassNode) implies - * let - * sourceEClass : ecore::EClass[1] = source.oclAsType(RelPatternClassNode) - * .referredEClassifier.oclAsType(ecore::EClass) - * in - * let - * targetEClass : ecore::EClass[1] = target.oclAsType(RelPatternClassNode) - * .referredEClassifier.oclAsType(ecore::EClass) - * in - * sourceEClass->closure(eSuperTypes) - * ->includes(targetEClass) or - * targetEClass->closure(eSuperTypes) - * ->includes(sourceEClass) + * let + * result : Boolean[?] = not source.isExpression() implies + * source.referredEClassifier.oclIsKindOf(ecore::EClassifier) * in - * 'RelPatternEdge::CompatibleMemberPropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * 'RelPatternEdge::SourceIsEClass'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) * endif */ final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull StandardLibrary standardLibrary = idResolver.getStandardLibrary(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleMemberPropertyTarget); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_SourceIsEClass); final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); - /*@NonInvalid*/ boolean symbol_2; + /*@NonInvalid*/ boolean symbol_0; if (le) { - symbol_2 = ValueUtil.TRUE_VALUE; + symbol_0 = ValueUtil.TRUE_VALUE; } else { /*@Caught*/ @Nullable Object CAUGHT_result; try { - final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature(); - final /*@NonInvalid*/ boolean eq = referredEStructuralFeature == null; - /*@NonInvalid*/ boolean and; - if (eq) { - final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex); - final /*@NonInvalid*/ boolean gt = OclComparableGreaterThanOperation.INSTANCE.evaluate(executor, BOXED_sourceIndex, UMLXTables.INT_0).booleanValue(); - and = gt; - } - else { - and = ValueUtil.FALSE_VALUE; - } - /*@NonInvalid*/ boolean and_0; - if (and) { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget(); - final /*@NonInvalid*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, target, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue(); - and_0 = oclIsKindOf; - } - else { - and_0 = ValueUtil.FALSE_VALUE; - } - /*@Thrown*/ java.lang.@Nullable Boolean result; - if (and_0) { - /*@Caught*/ @NonNull Object CAUGHT_sourceEClass; - try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_1 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource(); - final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_1)); - @SuppressWarnings("null") - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = oclAsType.getReferredEClassifier(); - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0)); - CAUGHT_sourceEClass = sourceEClass; - } - catch (Exception e) { - CAUGHT_sourceEClass = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_targetEClass; - try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_1 = idResolver.getClass(UMLXTables.CLSSid_EClass, null); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_2 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget(); - final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType_0 = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, target_0, TYP_umlx_c_c_RelPatternClassNode_2)); - @SuppressWarnings("null") - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier_0 = oclAsType_0.getReferredEClassifier(); - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass targetEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier_0, TYP_ecore_c_c_EClass_1)); - CAUGHT_targetEClass = targetEClass; - } - catch (Exception e) { - CAUGHT_targetEClass = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_includes; - try { - if (CAUGHT_sourceEClass instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_sourceEClass; - } - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, CAUGHT_sourceEClass); - final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_1 = executor.getStaticTypeOf(oclAsSet); - final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_1 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_1.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure); - final @NonNull Object ACC_closure_1 = IMPL_closure_1.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass); - /** - * Implementation of the iterator body. - */ - final @NonNull AbstractBinaryOperation BODY_closure_1 = new AbstractBinaryOperation() { - /** - * eSuperTypes - */ - @Override - public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final /*@NonInvalid*/ java.lang.@Nullable Object _1) { - final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_0 = (EClass)_1; - if (symbol_0 == null) { - throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'"); - } - @SuppressWarnings("null") - final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes = symbol_0.getESuperTypes(); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes); - return BOXED_eSuperTypes; - } - }; - final @NonNull ExecutorSingleIterationManager MGR_closure_1 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_1, oclAsSet, ACC_closure_1); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure = ClassUtil.nonNullState((SetValue)IMPL_closure_1.evaluateIteration(MGR_closure_1)); - if (CAUGHT_targetEClass instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_targetEClass; - } - final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(closure, CAUGHT_targetEClass).booleanValue(); - CAUGHT_includes = includes; - } - catch (Exception e) { - CAUGHT_includes = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_includes_0; - try { - if (CAUGHT_targetEClass instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_targetEClass; - } - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet_0 = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, CAUGHT_targetEClass); - final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0_0 = executor.getStaticTypeOf(oclAsSet_0); - final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_0_0 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_0_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure); - final @NonNull Object ACC_closure_0_0 = IMPL_closure_0_0.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass); - /** - * Implementation of the iterator body. - */ - final @NonNull AbstractBinaryOperation BODY_closure_0_0 = new AbstractBinaryOperation() { - /** - * eSuperTypes - */ - @Override - public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet_0, final /*@NonInvalid*/ java.lang.@Nullable Object _1_0) { - final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_1 = (EClass)_1_0; - if (symbol_1 == null) { - throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'"); - } - @SuppressWarnings("null") - final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes_0 = symbol_1.getESuperTypes(); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes_0 = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes_0); - return BOXED_eSuperTypes_0; - } - }; - final @NonNull ExecutorSingleIterationManager MGR_closure_0_0 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_0_0, oclAsSet_0, ACC_closure_0_0); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure_0 = ClassUtil.nonNullState((SetValue)IMPL_closure_0_0.evaluateIteration(MGR_closure_0_0)); - if (CAUGHT_sourceEClass instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_sourceEClass; - } - final /*@Thrown*/ boolean includes_0 = CollectionIncludesOperation.INSTANCE.evaluate(closure_0, CAUGHT_sourceEClass).booleanValue(); - CAUGHT_includes_0 = includes_0; - } - catch (Exception e) { - CAUGHT_includes_0 = ValueUtil.createInvalidValue(e); - } - final /*@Thrown*/ java.lang.@Nullable Boolean or = BooleanOrOperation.INSTANCE.evaluate(CAUGHT_includes, CAUGHT_includes_0); - result = or; + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource(); + final /*@NonInvalid*/ boolean isExpression = source.isExpression(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression); + /*@Caught*/ @NonNull Object CAUGHT_oclIsKindOf; + try { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClassifier = idResolver.getClass(UMLXTables.CLSSid_EClassifier, null); + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = source.getReferredEClassifier(); + final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClassifier).booleanValue(); + CAUGHT_oclIsKindOf = oclIsKindOf; } - else { - result = ValueUtil.TRUE_VALUE; + catch (Exception e) { + CAUGHT_oclIsKindOf = ValueUtil.createInvalidValue(e); } + final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(not, CAUGHT_oclIsKindOf); CAUGHT_result = result; } catch (Exception e) { CAUGHT_result = ValueUtil.createInvalidValue(e); } - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleMemberPropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); - symbol_2 = logDiagnostic; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_SourceIsEClass, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; } - return Boolean.TRUE == symbol_2; + return Boolean.TRUE == symbol_0; } /** @@ -583,14 +445,12 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * if severity <= 0 * then true * else - * let - * result : Boolean[1] = source.oclIsKindOf(RelPatternClassNode) + * let result : Boolean[?] = not source.isExpression() * in * 'RelPatternEdge::SourceIsClassNode'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) * endif */ final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver(); final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_SourceIsClassNode); final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); /*@NonInvalid*/ boolean symbol_0; @@ -598,10 +458,10 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { symbol_0 = ValueUtil.TRUE_VALUE; } else { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource(); - final /*@NonInvalid*/ boolean result = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue(); + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource(); + final /*@NonInvalid*/ boolean isExpression = source.isExpression(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean result = BooleanNotOperation.INSTANCE.evaluate(isExpression); final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_SourceIsClassNode, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); symbol_0 = logDiagnostic; } @@ -614,56 +474,87 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * @generated */ @Override - public boolean validateSourceIsEClass(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + public boolean validateCompatibleEAttributePropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * - * inv SourceIsEClass: - * let severity : Integer[1] = 'RelPatternEdge::SourceIsEClass'.getSeverity() + * inv CompatibleEAttributePropertyTarget: + * let + * severity : Integer[1] = 'RelPatternEdge::CompatibleEAttributePropertyTarget'.getSeverity() * in * if severity <= 0 * then true * else - * let - * result : Boolean[?] = source.oclIsKindOf(RelPatternClassNode) implies - * source.oclAsType(RelPatternClassNode) - * .referredEClassifier.oclIsKindOf(ecore::EClassifier) + * let result : Boolean[?] = referredEStructuralFeature <> null and + * referredEStructuralFeature.oclIsKindOf(ecore::EAttribute) and + * not target.isExpression() implies referredEStructuralFeature.eType = target.referredEClassifier * in - * 'RelPatternEdge::SourceIsEClass'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * 'RelPatternEdge::CompatibleEAttributePropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) * endif */ final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_SourceIsEClass); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEAttributePropertyTarget); final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); /*@NonInvalid*/ boolean symbol_0; if (le) { symbol_0 = ValueUtil.TRUE_VALUE; } else { - /*@Caught*/ @NonNull Object CAUGHT_result; + /*@Caught*/ @Nullable Object CAUGHT_result; try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource(); - final /*@NonInvalid*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue(); - /*@Thrown*/ boolean result; - if (oclIsKindOf) { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClassifier = idResolver.getClass(UMLXTables.CLSSid_EClassifier, null); - final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_0)); + /*@Caught*/ @Nullable Object CAUGHT_and_0; + try { + /*@Caught*/ @NonNull Object CAUGHT_and; + try { + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_0 = this.getReferredEStructuralFeature(); + final /*@NonInvalid*/ boolean ne = referredEStructuralFeature_0 != null; + /*@Thrown*/ boolean and; + if (ne) { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EAttribute = idResolver.getClass(UMLXTables.CLSSid_EAttribute, null); + final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEStructuralFeature_0, TYP_ecore_c_c_EAttribute).booleanValue(); + and = oclIsKindOf; + } + else { + and = ValueUtil.FALSE_VALUE; + } + CAUGHT_and = and; + } + catch (Exception e) { + CAUGHT_and = ValueUtil.createInvalidValue(e); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget(); + final /*@NonInvalid*/ boolean isExpression = target.isExpression(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression); + final /*@Thrown*/ java.lang.@Nullable Boolean and_0 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and, not); + CAUGHT_and_0 = and_0; + } + catch (Exception e) { + CAUGHT_and_0 = ValueUtil.createInvalidValue(e); + } + /*@Caught*/ @NonNull Object CAUGHT_eq; + try { + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_1 = this.getReferredEStructuralFeature(); + if (referredEStructuralFeature_1 == null) { + throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::ETypedElement::eType\'"); + } + final /*@Thrown*/ org.eclipse.emf.ecore.@Nullable EClassifier eType = referredEStructuralFeature_1.getEType(); @SuppressWarnings("null") - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = oclAsType.getReferredEClassifier(); - final /*@Thrown*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClassifier).booleanValue(); - result = oclIsKindOf_0; + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget(); + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = target_0.getReferredEClassifier(); + final /*@Thrown*/ boolean eq = (eType != null) ? eType.equals(referredEClassifier) : (referredEClassifier == null); + CAUGHT_eq = eq; } - else { - result = ValueUtil.TRUE_VALUE; + catch (Exception e) { + CAUGHT_eq = ValueUtil.createInvalidValue(e); } + final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(CAUGHT_and_0, CAUGHT_eq); CAUGHT_result = result; } catch (Exception e) { CAUGHT_result = ValueUtil.createInvalidValue(e); } - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_SourceIsEClass, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEAttributePropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); symbol_0 = logDiagnostic; } return Boolean.TRUE == symbol_0; @@ -675,23 +566,23 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * @generated */ @Override - public boolean validateCompatibleSourceIndex(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + public boolean validateCompatibleSourceMultiplicity(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * - * inv CompatibleSourceIndex: + * inv CompatibleSourceMultiplicity: * let - * severity : Integer[1] = 'RelPatternEdge::CompatibleSourceIndex'.getSeverity() + * severity : Integer[1] = 'RelPatternEdge::CompatibleSourceMultiplicity'.getSeverity() * in * if severity <= 0 * then true * else - * let result : Boolean[1] = referredEStructuralFeature <> null = sourceIndex = 0 + * let result : Boolean[1] = referredEStructuralFeature = null = source.isMany * in - * 'RelPatternEdge::CompatibleSourceIndex'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * 'RelPatternEdge::CompatibleSourceMultiplicity'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) * endif */ final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceIndex); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceMultiplicity); final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); /*@NonInvalid*/ boolean symbol_0; if (le) { @@ -699,12 +590,12 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { } else { final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature(); - final /*@NonInvalid*/ boolean ne = referredEStructuralFeature != null; - final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex); - final /*@NonInvalid*/ boolean eq = BOXED_sourceIndex.equals(UMLXTables.INT_0); - final /*@NonInvalid*/ boolean result = ne == eq; - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceIndex, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); + final /*@NonInvalid*/ boolean eq = referredEStructuralFeature == null; + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource(); + final /*@NonInvalid*/ boolean isMany = source.isIsMany(); + final /*@NonInvalid*/ boolean result = eq == isMany; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceMultiplicity, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); symbol_0 = logDiagnostic; } return Boolean.TRUE == symbol_0; @@ -716,285 +607,50 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * @generated */ @Override - public boolean validateCompatibleRestPropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + public boolean validateCompatibleEReferencePropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * - * inv CompatibleRestPropertyTarget: + * inv CompatibleEReferencePropertyTarget: * let - * severity : Integer[1] = 'RelPatternEdge::CompatibleRestPropertyTarget'.getSeverity() + * severity : Integer[1] = 'RelPatternEdge::CompatibleEReferencePropertyTarget'.getSeverity() * in * if severity <= 0 * then true * else - * let result : Boolean[?] = referredEStructuralFeature = null and sourceIndex < 0 and - * target.oclIsKindOf(RelPatternClassNode) implies + * let result : Boolean[?] = referredEStructuralFeature <> null and + * referredEStructuralFeature.oclIsKindOf(ecore::EReference) and + * not target.isExpression() implies * let - * sourceClassNode : RelPatternClassNode[1] = source.oclAsType(RelPatternClassNode) + * sourceEClass : ecore::EClass[1] = target.referredEClassifier.oclAsType(ecore::EClass) * in - * let - * targetClassNode : RelPatternClassNode[1] = target.oclAsType(RelPatternClassNode) - * in - * let - * sourceEClass : ecore::EClass[1] = sourceClassNode.referredEClassifier.oclAsType(ecore::EClass) - * in - * let - * targetEClass : ecore::EClass[1] = targetClassNode.referredEClassifier.oclAsType(ecore::EClass) - * in sourceEClass = targetEClass and sourceClassNode.isMany = targetClassNode.isMany and sourceClassNode.isNullFree = targetClassNode.isNullFree and sourceClassNode.isOrdered = targetClassNode.isOrdered and sourceClassNode.isUnique = targetClassNode.isUnique - * in - * 'RelPatternEdge::CompatibleRestPropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) - * endif - */ - final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleRestPropertyTarget); - final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); - /*@NonInvalid*/ boolean symbol_0; - if (le) { - symbol_0 = ValueUtil.TRUE_VALUE; - } - else { - /*@Caught*/ @Nullable Object CAUGHT_result; - try { - final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature(); - final /*@NonInvalid*/ boolean eq = referredEStructuralFeature == null; - /*@NonInvalid*/ boolean and; - if (eq) { - final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex); - final /*@NonInvalid*/ boolean lt = OclComparableLessThanOperation.INSTANCE.evaluate(executor, BOXED_sourceIndex, UMLXTables.INT_0).booleanValue(); - and = lt; - } - else { - and = ValueUtil.FALSE_VALUE; - } - /*@NonInvalid*/ boolean and_0; - if (and) { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget(); - final /*@NonInvalid*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, target, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue(); - and_0 = oclIsKindOf; - } - else { - and_0 = ValueUtil.FALSE_VALUE; - } - /*@Thrown*/ java.lang.@Nullable Boolean result; - if (and_0) { - /*@Caught*/ @NonNull Object CAUGHT_sourceClassNode; - try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_1 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource(); - final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode sourceClassNode = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_1)); - CAUGHT_sourceClassNode = sourceClassNode; - } - catch (Exception e) { - CAUGHT_sourceClassNode = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_targetClassNode; - try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_2 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget(); - final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode targetClassNode = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, target_0, TYP_umlx_c_c_RelPatternClassNode_2)); - CAUGHT_targetClassNode = targetClassNode; - } - catch (Exception e) { - CAUGHT_targetClassNode = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_sourceEClass; - try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null); - if (CAUGHT_sourceClassNode instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_sourceClassNode; - } - @SuppressWarnings("null") - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = ((UMLXTypedElement)CAUGHT_sourceClassNode).getReferredEClassifier(); - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0)); - CAUGHT_sourceEClass = sourceEClass; - } - catch (Exception e) { - CAUGHT_sourceEClass = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_targetEClass; - try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_1 = idResolver.getClass(UMLXTables.CLSSid_EClass, null); - if (CAUGHT_targetClassNode instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_targetClassNode; - } - @SuppressWarnings("null") - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).getReferredEClassifier(); - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass targetEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier_0, TYP_ecore_c_c_EClass_1)); - CAUGHT_targetEClass = targetEClass; - } - catch (Exception e) { - CAUGHT_targetEClass = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @Nullable Object CAUGHT_and_3; - try { - /*@Caught*/ @Nullable Object CAUGHT_and_2; - try { - /*@Caught*/ @Nullable Object CAUGHT_and_1; - try { - /*@Caught*/ @NonNull Object CAUGHT_eq_0; - try { - if (CAUGHT_sourceEClass instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_sourceEClass; - } - if (CAUGHT_targetEClass instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_targetEClass; - } - final /*@Thrown*/ boolean eq_0 = CAUGHT_sourceEClass.equals(CAUGHT_targetEClass); - CAUGHT_eq_0 = eq_0; - } - catch (Exception e) { - CAUGHT_eq_0 = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_eq_1; - try { - if (CAUGHT_sourceClassNode instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_sourceClassNode; - } - final /*@Thrown*/ boolean isMany = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsMany(); - if (CAUGHT_targetClassNode instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_targetClassNode; - } - final /*@Thrown*/ boolean isMany_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsMany(); - final /*@Thrown*/ boolean eq_1 = isMany == isMany_0; - CAUGHT_eq_1 = eq_1; - } - catch (Exception e) { - CAUGHT_eq_1 = ValueUtil.createInvalidValue(e); - } - final /*@Thrown*/ java.lang.@Nullable Boolean and_1 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_eq_0, CAUGHT_eq_1); - CAUGHT_and_1 = and_1; - } - catch (Exception e) { - CAUGHT_and_1 = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_eq_2; - try { - if (CAUGHT_sourceClassNode instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_sourceClassNode; - } - final /*@Thrown*/ boolean isNullFree = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsNullFree(); - if (CAUGHT_targetClassNode instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_targetClassNode; - } - final /*@Thrown*/ boolean isNullFree_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsNullFree(); - final /*@Thrown*/ boolean eq_2 = isNullFree == isNullFree_0; - CAUGHT_eq_2 = eq_2; - } - catch (Exception e) { - CAUGHT_eq_2 = ValueUtil.createInvalidValue(e); - } - final /*@Thrown*/ java.lang.@Nullable Boolean and_2 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_1, CAUGHT_eq_2); - CAUGHT_and_2 = and_2; - } - catch (Exception e) { - CAUGHT_and_2 = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_eq_3; - try { - if (CAUGHT_sourceClassNode instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_sourceClassNode; - } - final /*@Thrown*/ boolean isOrdered = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsOrdered(); - if (CAUGHT_targetClassNode instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_targetClassNode; - } - final /*@Thrown*/ boolean isOrdered_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsOrdered(); - final /*@Thrown*/ boolean eq_3 = isOrdered == isOrdered_0; - CAUGHT_eq_3 = eq_3; - } - catch (Exception e) { - CAUGHT_eq_3 = ValueUtil.createInvalidValue(e); - } - final /*@Thrown*/ java.lang.@Nullable Boolean and_3 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_2, CAUGHT_eq_3); - CAUGHT_and_3 = and_3; - } - catch (Exception e) { - CAUGHT_and_3 = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_eq_4; - try { - if (CAUGHT_sourceClassNode instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_sourceClassNode; - } - final /*@Thrown*/ boolean isUnique = ((UMLXTypedElement)CAUGHT_sourceClassNode).isIsUnique(); - if (CAUGHT_targetClassNode instanceof InvalidValueException) { - throw (InvalidValueException)CAUGHT_targetClassNode; - } - final /*@Thrown*/ boolean isUnique_0 = ((UMLXTypedElement)CAUGHT_targetClassNode).isIsUnique(); - final /*@Thrown*/ boolean eq_4 = isUnique == isUnique_0; - CAUGHT_eq_4 = eq_4; - } - catch (Exception e) { - CAUGHT_eq_4 = ValueUtil.createInvalidValue(e); - } - final /*@Thrown*/ java.lang.@Nullable Boolean and_4 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_3, CAUGHT_eq_4); - result = and_4; - } - else { - result = ValueUtil.TRUE_VALUE; - } - CAUGHT_result = result; - } - catch (Exception e) { - CAUGHT_result = ValueUtil.createInvalidValue(e); - } - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleRestPropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); - symbol_0 = logDiagnostic; - } - return Boolean.TRUE == symbol_0; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public boolean validateCompatibleEAttributePropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) { - /** - * - * inv CompatibleEAttributePropertyTarget: - * let - * severity : Integer[1] = 'RelPatternEdge::CompatibleEAttributePropertyTarget'.getSeverity() - * in - * if severity <= 0 - * then true - * else - * let result : Boolean[?] = referredEStructuralFeature <> null and - * referredEStructuralFeature.oclIsKindOf(ecore::EAttribute) and - * target.oclIsKindOf(RelPatternClassNode) implies referredEStructuralFeature.eType = - * target.oclAsType(RelPatternClassNode).referredEClassifier + * sourceEClass->closure(eSuperTypes) + * ->includes(referredEStructuralFeature.eType) * in - * 'RelPatternEdge::CompatibleEAttributePropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * 'RelPatternEdge::CompatibleEReferencePropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) * endif */ final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEAttributePropertyTarget); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull StandardLibrary standardLibrary = idResolver.getStandardLibrary(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEReferencePropertyTarget); final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); - /*@NonInvalid*/ boolean symbol_0; + /*@NonInvalid*/ boolean symbol_1; if (le) { - symbol_0 = ValueUtil.TRUE_VALUE; + symbol_1 = ValueUtil.TRUE_VALUE; } else { /*@Caught*/ @Nullable Object CAUGHT_result; try { /*@Caught*/ @Nullable Object CAUGHT_and_0; try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); /*@Caught*/ @NonNull Object CAUGHT_and; try { final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_0 = this.getReferredEStructuralFeature(); final /*@NonInvalid*/ boolean ne = referredEStructuralFeature_0 != null; /*@Thrown*/ boolean and; if (ne) { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EAttribute = idResolver.getClass(UMLXTables.CLSSid_EAttribute, null); - final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEStructuralFeature_0, TYP_ecore_c_c_EAttribute).booleanValue(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EReference = idResolver.getClass(UMLXTables.CLSSid_EReference, null); + final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEStructuralFeature_0, TYP_ecore_c_c_EReference).booleanValue(); and = oclIsKindOf; } else { @@ -1007,42 +663,67 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { } @SuppressWarnings("null") final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget(); - final /*@NonInvalid*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, target, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue(); - final /*@Thrown*/ java.lang.@Nullable Boolean and_0 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and, oclIsKindOf_0); + final /*@NonInvalid*/ boolean isExpression = target.isExpression(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression); + final /*@Thrown*/ java.lang.@Nullable Boolean and_0 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and, not); CAUGHT_and_0 = and_0; } catch (Exception e) { CAUGHT_and_0 = ValueUtil.createInvalidValue(e); } - /*@Caught*/ @NonNull Object CAUGHT_eq; + /*@Caught*/ @NonNull Object CAUGHT_includes; try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_1 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null); + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget(); + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = target_0.getReferredEClassifier(); + final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0)); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, sourceEClass); + final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0 = executor.getStaticTypeOf(oclAsSet); + final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_0 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure); + final @NonNull Object ACC_closure_0 = IMPL_closure_0.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass); + /** + * Implementation of the iterator body. + */ + final @NonNull AbstractBinaryOperation BODY_closure_0 = new AbstractBinaryOperation() { + /** + * eSuperTypes + */ + @Override + public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final /*@NonInvalid*/ java.lang.@Nullable Object _1) { + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_0 = (EClass)_1; + if (symbol_0 == null) { + throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'"); + } + @SuppressWarnings("null") + final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes = symbol_0.getESuperTypes(); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes); + return BOXED_eSuperTypes; + } + }; + final @NonNull ExecutorSingleIterationManager MGR_closure_0 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_0, oclAsSet, ACC_closure_0); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure = ClassUtil.nonNullState((SetValue)IMPL_closure_0.evaluateIteration(MGR_closure_0)); final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_1 = this.getReferredEStructuralFeature(); if (referredEStructuralFeature_1 == null) { throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::ETypedElement::eType\'"); } final /*@Thrown*/ org.eclipse.emf.ecore.@Nullable EClassifier eType = referredEStructuralFeature_1.getEType(); - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget(); - final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, target_0, TYP_umlx_c_c_RelPatternClassNode_1)); - @SuppressWarnings("null") - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = oclAsType.getReferredEClassifier(); - final /*@Thrown*/ boolean eq = referredEClassifier.equals(eType); - CAUGHT_eq = eq; + final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(closure, eType).booleanValue(); + CAUGHT_includes = includes; } catch (Exception e) { - CAUGHT_eq = ValueUtil.createInvalidValue(e); + CAUGHT_includes = ValueUtil.createInvalidValue(e); } - final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(CAUGHT_and_0, CAUGHT_eq); + final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(CAUGHT_and_0, CAUGHT_includes); CAUGHT_result = result; } catch (Exception e) { CAUGHT_result = ValueUtil.createInvalidValue(e); } - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEAttributePropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); - symbol_0 = logDiagnostic; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEReferencePropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); + symbol_1 = logDiagnostic; } - return Boolean.TRUE == symbol_0; + return Boolean.TRUE == symbol_1; } /** @@ -1062,8 +743,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * then true * else * let result : Boolean[?] = referredEStructuralFeature <> null implies - * source.oclAsType(RelPatternClassNode) - * .referredEClassifier.oclAsType(ecore::EClass) + * source.referredEClassifier.oclAsType(ecore::EClass) * ->closure(eSuperTypes) * ->includes(referredEStructuralFeature.eContainingClass) * in @@ -1087,14 +767,11 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { /*@Thrown*/ boolean result; if (ne) { final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass = idResolver.getClass(UMLXTables.CLSSid_EClass, null); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource(); - final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_0)); @SuppressWarnings("null") - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = oclAsType.getReferredEClassifier(); - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass oclAsType_0 = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass)); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, oclAsType_0); + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource(); + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = source.getReferredEClassifier(); + final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass oclAsType = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass)); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, oclAsType); final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0 = executor.getStaticTypeOf(oclAsSet); final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_0 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure); final @NonNull Object ACC_closure_0 = IMPL_closure_0.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass); @@ -1146,47 +823,196 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * @generated */ @Override - public boolean validateCompatibleSourceMultiplicity(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + public boolean validateCompatibleSourceIndex(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * - * inv CompatibleSourceMultiplicity: + * inv CompatibleSourceIndex: * let - * severity : Integer[1] = 'RelPatternEdge::CompatibleSourceMultiplicity'.getSeverity() + * severity : Integer[1] = 'RelPatternEdge::CompatibleSourceIndex'.getSeverity() * in * if severity <= 0 * then true * else - * let result : Boolean[1] = referredEStructuralFeature = null = - * source.oclAsType(RelPatternClassNode).isMany + * let result : Boolean[1] = referredEStructuralFeature <> null = sourceIndex = 0 * in - * 'RelPatternEdge::CompatibleSourceMultiplicity'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * 'RelPatternEdge::CompatibleSourceIndex'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceIndex); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature(); + final /*@NonInvalid*/ boolean ne = referredEStructuralFeature != null; + final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex); + final /*@NonInvalid*/ boolean eq = BOXED_sourceIndex.equals(UMLXTables.INT_0); + final /*@NonInvalid*/ boolean result = ne == eq; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceIndex, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean validateCompatibleRestPropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv CompatibleRestPropertyTarget: + * let + * severity : Integer[1] = 'RelPatternEdge::CompatibleRestPropertyTarget'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let result : Boolean[?] = referredEStructuralFeature = null and sourceIndex < 0 and + * not target.isExpression() implies + * let + * sourceEClass : ecore::EClass[1] = source.referredEClassifier.oclAsType(ecore::EClass) + * in + * let + * targetEClass : ecore::EClass[1] = target.referredEClassifier.oclAsType(ecore::EClass) + * in sourceEClass = targetEClass and source.isMany = target.isMany and source.isNullFree = target.isNullFree and source.isOrdered = target.isOrdered and source.isUnique = target.isUnique + * in + * 'RelPatternEdge::CompatibleRestPropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) * endif */ final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceMultiplicity); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleRestPropertyTarget); final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); /*@NonInvalid*/ boolean symbol_0; if (le) { symbol_0 = ValueUtil.TRUE_VALUE; } else { - /*@Caught*/ @NonNull Object CAUGHT_result; + /*@Caught*/ @Nullable Object CAUGHT_result; try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature(); final /*@NonInvalid*/ boolean eq = referredEStructuralFeature == null; - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode source = this.getSource(); - final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, source, TYP_umlx_c_c_RelPatternClassNode_0)); - final /*@Thrown*/ boolean isMany = oclAsType.isIsMany(); - final /*@Thrown*/ boolean result = eq == isMany; + /*@NonInvalid*/ boolean and; + if (eq) { + final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex); + final /*@NonInvalid*/ boolean lt = OclComparableLessThanOperation.INSTANCE.evaluate(executor, BOXED_sourceIndex, UMLXTables.INT_0).booleanValue(); + and = lt; + } + else { + and = ValueUtil.FALSE_VALUE; + } + /*@NonInvalid*/ java.lang.@Nullable Boolean and_0; + if (and) { + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget(); + final /*@NonInvalid*/ boolean isExpression = target.isExpression(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression); + and_0 = not; + } + else { + and_0 = ValueUtil.FALSE_VALUE; + } + /*@Caught*/ @Nullable Object CAUGHT_and_4; + try { + /*@Caught*/ @NonNull Object CAUGHT_sourceEClass; + try { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null); + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource(); + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = source.getReferredEClassifier(); + final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0)); + CAUGHT_sourceEClass = sourceEClass; + } + catch (Exception e) { + CAUGHT_sourceEClass = ValueUtil.createInvalidValue(e); + } + /*@Caught*/ @NonNull Object CAUGHT_targetEClass; + try { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_1 = idResolver.getClass(UMLXTables.CLSSid_EClass, null); + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget(); + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier_0 = target_0.getReferredEClassifier(); + final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass targetEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier_0, TYP_ecore_c_c_EClass_1)); + CAUGHT_targetEClass = targetEClass; + } + catch (Exception e) { + CAUGHT_targetEClass = ValueUtil.createInvalidValue(e); + } + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source_3 = this.getSource(); + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_4 = this.getTarget(); + /*@Caught*/ @Nullable Object CAUGHT_and_3; + try { + /*@Caught*/ @Nullable Object CAUGHT_and_2; + try { + /*@Caught*/ @Nullable Object CAUGHT_and_1; + try { + /*@Caught*/ @NonNull Object CAUGHT_eq_0; + try { + if (CAUGHT_sourceEClass instanceof InvalidValueException) { + throw (InvalidValueException)CAUGHT_sourceEClass; + } + if (CAUGHT_targetEClass instanceof InvalidValueException) { + throw (InvalidValueException)CAUGHT_targetEClass; + } + final /*@Thrown*/ boolean eq_0 = CAUGHT_sourceEClass.equals(CAUGHT_targetEClass); + CAUGHT_eq_0 = eq_0; + } + catch (Exception e) { + CAUGHT_eq_0 = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean isMany = source_3.isIsMany(); + final /*@NonInvalid*/ boolean isMany_0 = target_4.isIsMany(); + final /*@NonInvalid*/ boolean eq_1 = isMany == isMany_0; + final /*@Thrown*/ java.lang.@Nullable Boolean and_1 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_eq_0, eq_1); + CAUGHT_and_1 = and_1; + } + catch (Exception e) { + CAUGHT_and_1 = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean isNullFree = source_3.isIsNullFree(); + final /*@NonInvalid*/ boolean isNullFree_0 = target_4.isIsNullFree(); + final /*@NonInvalid*/ boolean eq_2 = isNullFree == isNullFree_0; + final /*@Thrown*/ java.lang.@Nullable Boolean and_2 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_1, eq_2); + CAUGHT_and_2 = and_2; + } + catch (Exception e) { + CAUGHT_and_2 = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean isOrdered = source_3.isIsOrdered(); + final /*@NonInvalid*/ boolean isOrdered_0 = target_4.isIsOrdered(); + final /*@NonInvalid*/ boolean eq_3 = isOrdered == isOrdered_0; + final /*@Thrown*/ java.lang.@Nullable Boolean and_3 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_2, eq_3); + CAUGHT_and_3 = and_3; + } + catch (Exception e) { + CAUGHT_and_3 = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean isUnique = source_3.isIsUnique(); + final /*@NonInvalid*/ boolean isUnique_0 = target_4.isIsUnique(); + final /*@NonInvalid*/ boolean eq_4 = isUnique == isUnique_0; + final /*@Thrown*/ java.lang.@Nullable Boolean and_4 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and_3, eq_4); + CAUGHT_and_4 = and_4; + } + catch (Exception e) { + CAUGHT_and_4 = ValueUtil.createInvalidValue(e); + } + final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(and_0, CAUGHT_and_4); CAUGHT_result = result; } catch (Exception e) { CAUGHT_result = ValueUtil.createInvalidValue(e); } - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleSourceMultiplicity, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleRestPropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); symbol_0 = logDiagnostic; } return Boolean.TRUE == symbol_0; @@ -1198,127 +1024,187 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { * @generated */ @Override - public boolean validateCompatibleEReferencePropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + public boolean validateCompatibleMemberPropertyTarget(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * - * inv CompatibleEReferencePropertyTarget: + * inv CompatibleMemberPropertyTarget: * let - * severity : Integer[1] = 'RelPatternEdge::CompatibleEReferencePropertyTarget'.getSeverity() + * severity : Integer[1] = 'RelPatternEdge::CompatibleMemberPropertyTarget'.getSeverity() * in * if severity <= 0 * then true * else - * let result : Boolean[?] = referredEStructuralFeature <> null and - * referredEStructuralFeature.oclIsKindOf(ecore::EReference) and - * target.oclIsKindOf(RelPatternClassNode) implies + * let result : Boolean[?] = referredEStructuralFeature = null and sourceIndex > 0 and + * not target.isExpression() implies * let - * sourceEClass : ecore::EClass[1] = target.oclAsType(RelPatternClassNode) - * .referredEClassifier.oclAsType(ecore::EClass) + * sourceEClass : ecore::EClass[1] = source.referredEClassifier.oclAsType(ecore::EClass) * in - * sourceEClass->closure(eSuperTypes) - * ->includes(referredEStructuralFeature.eType) + * let + * targetEClass : ecore::EClass[1] = target.referredEClassifier.oclAsType(ecore::EClass) + * in + * sourceEClass->closure(eSuperTypes) + * ->includes(targetEClass) or + * targetEClass->closure(eSuperTypes) + * ->includes(sourceEClass) * in - * 'RelPatternEdge::CompatibleEReferencePropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * 'RelPatternEdge::CompatibleMemberPropertyTarget'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) * endif */ final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); final /*@NonInvalid*/ org.eclipse.ocl.pivot.ids.@NonNull IdResolver idResolver = executor.getIdResolver(); final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull StandardLibrary standardLibrary = idResolver.getStandardLibrary(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEReferencePropertyTarget); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternEdge_c_c_CompatibleMemberPropertyTarget); final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); - /*@NonInvalid*/ boolean symbol_1; + /*@NonInvalid*/ boolean symbol_2; if (le) { - symbol_1 = ValueUtil.TRUE_VALUE; + symbol_2 = ValueUtil.TRUE_VALUE; } else { /*@Caught*/ @Nullable Object CAUGHT_result; try { - /*@Caught*/ @Nullable Object CAUGHT_and_0; + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature = this.getReferredEStructuralFeature(); + final /*@NonInvalid*/ boolean eq = referredEStructuralFeature == null; + /*@NonInvalid*/ boolean and; + if (eq) { + final /*@NonInvalid*/ int sourceIndex = this.getSourceIndex(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue BOXED_sourceIndex = ValueUtil.integerValueOf(sourceIndex); + final /*@NonInvalid*/ boolean gt = OclComparableGreaterThanOperation.INSTANCE.evaluate(executor, BOXED_sourceIndex, UMLXTables.INT_0).booleanValue(); + and = gt; + } + else { + and = ValueUtil.FALSE_VALUE; + } + /*@NonInvalid*/ java.lang.@Nullable Boolean and_0; + if (and) { + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget(); + final /*@NonInvalid*/ boolean isExpression = target.isExpression(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression); + and_0 = not; + } + else { + and_0 = ValueUtil.FALSE_VALUE; + } + /*@Caught*/ @Nullable Object CAUGHT_or; try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_0 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); - /*@Caught*/ @NonNull Object CAUGHT_and; + /*@Caught*/ @NonNull Object CAUGHT_sourceEClass; try { - final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_0 = this.getReferredEStructuralFeature(); - final /*@NonInvalid*/ boolean ne = referredEStructuralFeature_0 != null; - /*@Thrown*/ boolean and; - if (ne) { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EReference = idResolver.getClass(UMLXTables.CLSSid_EReference, null); - final /*@Thrown*/ boolean oclIsKindOf = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, referredEStructuralFeature_0, TYP_ecore_c_c_EReference).booleanValue(); - and = oclIsKindOf; + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null); + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode source = this.getSource(); + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = source.getReferredEClassifier(); + final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0)); + CAUGHT_sourceEClass = sourceEClass; + } + catch (Exception e) { + CAUGHT_sourceEClass = ValueUtil.createInvalidValue(e); + } + /*@Caught*/ @NonNull Object CAUGHT_targetEClass; + try { + final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_1 = idResolver.getClass(UMLXTables.CLSSid_EClass, null); + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget(); + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier_0 = target_0.getReferredEClassifier(); + final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass targetEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier_0, TYP_ecore_c_c_EClass_1)); + CAUGHT_targetEClass = targetEClass; + } + catch (Exception e) { + CAUGHT_targetEClass = ValueUtil.createInvalidValue(e); + } + /*@Caught*/ @NonNull Object CAUGHT_includes; + try { + if (CAUGHT_sourceEClass instanceof InvalidValueException) { + throw (InvalidValueException)CAUGHT_sourceEClass; } - else { - and = ValueUtil.FALSE_VALUE; + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, CAUGHT_sourceEClass); + final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_1 = executor.getStaticTypeOf(oclAsSet); + final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_1 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_1.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure); + final @NonNull Object ACC_closure_1 = IMPL_closure_1.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass); + /** + * Implementation of the iterator body. + */ + final @NonNull AbstractBinaryOperation BODY_closure_1 = new AbstractBinaryOperation() { + /** + * eSuperTypes + */ + @Override + public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final /*@NonInvalid*/ java.lang.@Nullable Object _1) { + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_0 = (EClass)_1; + if (symbol_0 == null) { + throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'"); + } + @SuppressWarnings("null") + final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes = symbol_0.getESuperTypes(); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes); + return BOXED_eSuperTypes; + } + }; + final @NonNull ExecutorSingleIterationManager MGR_closure_1 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_1, oclAsSet, ACC_closure_1); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure = ClassUtil.nonNullState((SetValue)IMPL_closure_1.evaluateIteration(MGR_closure_1)); + if (CAUGHT_targetEClass instanceof InvalidValueException) { + throw (InvalidValueException)CAUGHT_targetEClass; } - CAUGHT_and = and; + final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(closure, CAUGHT_targetEClass).booleanValue(); + CAUGHT_includes = includes; } catch (Exception e) { - CAUGHT_and = ValueUtil.createInvalidValue(e); + CAUGHT_includes = ValueUtil.createInvalidValue(e); } - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target = this.getTarget(); - final /*@NonInvalid*/ boolean oclIsKindOf_0 = OclAnyOclIsKindOfOperation.INSTANCE.evaluate(executor, target, TYP_umlx_c_c_RelPatternClassNode_0).booleanValue(); - final /*@Thrown*/ java.lang.@Nullable Boolean and_0 = BooleanAndOperation.INSTANCE.evaluate(CAUGHT_and, oclIsKindOf_0); - CAUGHT_and_0 = and_0; - } - catch (Exception e) { - CAUGHT_and_0 = ValueUtil.createInvalidValue(e); - } - /*@Caught*/ @NonNull Object CAUGHT_includes; - try { - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_ecore_c_c_EClass_0 = idResolver.getClass(UMLXTables.CLSSid_EClass, null); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.@NonNull Class TYP_umlx_c_c_RelPatternClassNode_1 = idResolver.getClass(UMLXTables.CLSSid_RelPatternClassNode, null); - @SuppressWarnings("null") - final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelPatternNode target_0 = this.getTarget(); - final /*@Thrown*/ org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode oclAsType = ClassUtil.nonNullState((RelPatternClassNode)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, target_0, TYP_umlx_c_c_RelPatternClassNode_1)); - @SuppressWarnings("null") - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClassifier referredEClassifier = oclAsType.getReferredEClassifier(); - final /*@Thrown*/ org.eclipse.emf.ecore.@NonNull EClass sourceEClass = ClassUtil.nonNullState((EClass)OclAnyOclAsTypeOperation.INSTANCE.evaluate(executor, referredEClassifier, TYP_ecore_c_c_EClass_0)); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, sourceEClass); - final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0 = executor.getStaticTypeOf(oclAsSet); - final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_0 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure); - final @NonNull Object ACC_closure_0 = IMPL_closure_0.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass); - /** - * Implementation of the iterator body. - */ - final @NonNull AbstractBinaryOperation BODY_closure_0 = new AbstractBinaryOperation() { + /*@Caught*/ @NonNull Object CAUGHT_includes_0; + try { + if (CAUGHT_targetEClass instanceof InvalidValueException) { + throw (InvalidValueException)CAUGHT_targetEClass; + } + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue oclAsSet_0 = OclAnyOclAsSetOperation.INSTANCE.evaluate(executor, UMLXTables.SET_CLSSid_EClass, CAUGHT_targetEClass); + final org.eclipse.ocl.pivot.@NonNull Class TYPE_closure_0_0 = executor.getStaticTypeOf(oclAsSet_0); + final LibraryIteration.@org.eclipse.jdt.annotation.NonNull LibraryIterationExtension IMPL_closure_0_0 = (LibraryIteration.LibraryIterationExtension)TYPE_closure_0_0.lookupImplementation(standardLibrary, OCLstdlibTables.Operations._Set__closure); + final @NonNull Object ACC_closure_0_0 = IMPL_closure_0_0.createAccumulatorValue(executor, UMLXTables.SET_CLSSid_EClass, UMLXTables.ORD_CLSSid_EClass); /** - * eSuperTypes + * Implementation of the iterator body. */ - @Override - public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet, final /*@NonInvalid*/ java.lang.@Nullable Object _1) { - final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_0 = (EClass)_1; - if (symbol_0 == null) { - throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'"); + final @NonNull AbstractBinaryOperation BODY_closure_0_0 = new AbstractBinaryOperation() { + /** + * eSuperTypes + */ + @Override + public @Nullable Object evaluate(final @NonNull Executor executor, final @NonNull TypeId typeId, final @Nullable Object oclAsSet_0, final /*@NonInvalid*/ java.lang.@Nullable Object _1_0) { + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClass symbol_1 = (EClass)_1_0; + if (symbol_1 == null) { + throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::EClass::eSuperTypes\'"); + } + @SuppressWarnings("null") + final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes_0 = symbol_1.getESuperTypes(); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes_0 = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes_0); + return BOXED_eSuperTypes_0; } - @SuppressWarnings("null") - final /*@Thrown*/ java.util.@NonNull List<EClass> eSuperTypes = symbol_0.getESuperTypes(); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eSuperTypes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClass, eSuperTypes); - return BOXED_eSuperTypes; + }; + final @NonNull ExecutorSingleIterationManager MGR_closure_0_0 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_0_0, oclAsSet_0, ACC_closure_0_0); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure_0 = ClassUtil.nonNullState((SetValue)IMPL_closure_0_0.evaluateIteration(MGR_closure_0_0)); + if (CAUGHT_sourceEClass instanceof InvalidValueException) { + throw (InvalidValueException)CAUGHT_sourceEClass; } - }; - final @NonNull ExecutorSingleIterationManager MGR_closure_0 = new ExecutorSingleIterationManager(executor, UMLXTables.SET_CLSSid_EClass, BODY_closure_0, oclAsSet, ACC_closure_0); - final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SetValue closure = ClassUtil.nonNullState((SetValue)IMPL_closure_0.evaluateIteration(MGR_closure_0)); - final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EStructuralFeature referredEStructuralFeature_1 = this.getReferredEStructuralFeature(); - if (referredEStructuralFeature_1 == null) { - throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/emf/2002/Ecore\'::ETypedElement::eType\'"); + final /*@Thrown*/ boolean includes_0 = CollectionIncludesOperation.INSTANCE.evaluate(closure_0, CAUGHT_sourceEClass).booleanValue(); + CAUGHT_includes_0 = includes_0; } - final /*@Thrown*/ org.eclipse.emf.ecore.@Nullable EClassifier eType = referredEStructuralFeature_1.getEType(); - final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(closure, eType).booleanValue(); - CAUGHT_includes = includes; + catch (Exception e) { + CAUGHT_includes_0 = ValueUtil.createInvalidValue(e); + } + final /*@Thrown*/ java.lang.@Nullable Boolean or = BooleanOrOperation.INSTANCE.evaluate(CAUGHT_includes, CAUGHT_includes_0); + CAUGHT_or = or; } catch (Exception e) { - CAUGHT_includes = ValueUtil.createInvalidValue(e); + CAUGHT_or = ValueUtil.createInvalidValue(e); } - final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(CAUGHT_and_0, CAUGHT_includes); + final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(and_0, CAUGHT_or); CAUGHT_result = result; } catch (Exception e) { CAUGHT_result = ValueUtil.createInvalidValue(e); } - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleEReferencePropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); - symbol_1 = logDiagnostic; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternEdge_c_c_CompatibleMemberPropertyTarget, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); + symbol_2 = logDiagnostic; } - return Boolean.TRUE == symbol_1; + return Boolean.TRUE == symbol_2; } /** @@ -1371,7 +1257,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { setReferredEStructuralFeature((EStructuralFeature)newValue); return; case UMLXPackage.REL_PATTERN_EDGE__SOURCE: - setSource((RelPatternClassNode)newValue); + setSource((RelPatternNode)newValue); return; case UMLXPackage.REL_PATTERN_EDGE__SOURCE_INDEX: setSourceIndex((Integer)newValue); @@ -1398,7 +1284,7 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { setReferredEStructuralFeature((EStructuralFeature)null); return; case UMLXPackage.REL_PATTERN_EDGE__SOURCE: - setSource((RelPatternClassNode)null); + setSource((RelPatternNode)null); return; case UMLXPackage.REL_PATTERN_EDGE__SOURCE_INDEX: setSourceIndex(SOURCE_INDEX_EDEFAULT); @@ -1455,8 +1341,8 @@ public class RelPatternEdgeImpl extends RelEdgeImpl implements RelPatternEdge { return basicSetOwningRelDomainNode((RelDomainNode)otherEnd, msgs); case UMLXPackage.REL_PATTERN_EDGE__SOURCE: if (source != null) - msgs = ((InternalEObject)source).eInverseRemove(this, UMLXPackage.REL_PATTERN_CLASS_NODE__OUTGOING, RelPatternClassNode.class, msgs); - return basicSetSource((RelPatternClassNode)otherEnd, msgs); + msgs = ((InternalEObject)source).eInverseRemove(this, UMLXPackage.REL_PATTERN_NODE__OUTGOING, RelPatternNode.class, msgs); + return basicSetSource((RelPatternNode)otherEnd, msgs); case UMLXPackage.REL_PATTERN_EDGE__TARGET: if (target != null) msgs = ((InternalEObject)target).eInverseRemove(this, UMLXPackage.REL_PATTERN_NODE__INCOMING, RelPatternNode.class, msgs); 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 deleted file mode 100644 index e93ecc20e..000000000 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/RelPatternExpressionNodeImpl.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * 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.ecore.EClass; -import org.eclipse.jdt.annotation.NonNull; -import org.eclipse.qvtd.umlx.RelPatternExpressionNode; -import org.eclipse.qvtd.umlx.UMLXPackage; -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 --> - * - * @generated - */ -public class RelPatternExpressionNodeImpl extends RelPatternNodeImpl implements RelPatternExpressionNode { - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected RelPatternExpressionNodeImpl() { - super(); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - protected EClass eStaticClass() { - return UMLXPackage.Literals.REL_PATTERN_EXPRESSION_NODE; - } - - /** - * {@inheritDoc} - * @generated - */ - @Override - public <R> R accept(@NonNull UMLXVisitor<R> visitor) { - return visitor.visitRelPatternExpressionNode(this); - } - -} //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 ad53dab10..67210c74e 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 @@ -11,21 +11,45 @@ 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.EPackage; 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.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.CollectionIncludesOperation; +import org.eclipse.ocl.pivot.library.collection.CollectionNotEmptyOperation; +import org.eclipse.ocl.pivot.library.logical.BooleanImpliesOperation; +import org.eclipse.ocl.pivot.library.logical.BooleanNotOperation; +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.InvalidValueException; +import org.eclipse.ocl.pivot.values.SequenceValue; import org.eclipse.qvtd.umlx.RelDomainNode; import org.eclipse.qvtd.umlx.RelInvocationEdge; import org.eclipse.qvtd.umlx.RelPatternNode; +import org.eclipse.qvtd.umlx.TxPackageNode; +import org.eclipse.qvtd.umlx.UMLXNamedElement; import org.eclipse.qvtd.umlx.RelPatternEdge; 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 --> @@ -35,16 +59,142 @@ import org.eclipse.qvtd.umlx.UMLXPackage; * The following features are implemented: * </p> * <ul> + * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#getName <em>Name</em>}</li> + * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#isIsMany <em>Is Many</em>}</li> + * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#isIsNullFree <em>Is Null Free</em>}</li> + * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#isIsOrdered <em>Is Ordered</em>}</li> + * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#isIsRequired <em>Is Required</em>}</li> + * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#isIsUnique <em>Is Unique</em>}</li> + * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#getReferredEClassifier <em>Referred EClassifier</em>}</li> * <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#getInvokingRelInvocationEdges <em>Invoking Rel Invocation Edges</em>}</li> + * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#isIsAnon <em>Is Anon</em>}</li> * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#isIsRoot <em>Is Root</em>}</li> + * <li>{@link org.eclipse.qvtd.umlx.impl.RelPatternNodeImpl#getOutgoing <em>Outgoing</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 */ -public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatternNode { +public class RelPatternNodeImpl extends RelNodeImpl implements RelPatternNode { + /** + * 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 #getIncoming() <em>Incoming</em>}' reference list. * <!-- begin-user-doc --> @@ -64,6 +214,33 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte */ protected EList<String> initExpressionLines; /** + * 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; + /** + * 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 #isIsRoot() <em>Is Root</em>}' attribute. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -82,14 +259,14 @@ 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. + * The cached value of the '{@link #getOutgoing() <em>Outgoing</em>}' reference list. * <!-- begin-user-doc --> * <!-- end-user-doc --> - * @see #getInvokingRelInvocationEdges() + * @see #getOutgoing() * @generated * @ordered */ - protected EList<RelInvocationEdge> invokingRelInvocationEdges; + protected EList<RelPatternEdge> outgoing; /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -115,6 +292,184 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte * @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.REL_PATTERN_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.REL_PATTERN_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.REL_PATTERN_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.REL_PATTERN_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.REL_PATTERN_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.REL_PATTERN_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.REL_PATTERN_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.REL_PATTERN_NODE__REFERRED_ECLASSIFIER, oldReferredEClassifier, referredEClassifier)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public EList<RelPatternEdge> getIncoming() { if (incoming == null) { incoming = new EObjectWithInverseResolvingEList<RelPatternEdge>(RelPatternEdge.class, this, UMLXPackage.REL_PATTERN_NODE__INCOMING, UMLXPackage.REL_PATTERN_EDGE__TARGET); @@ -164,6 +519,19 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte * @generated */ @Override + public EList<RelPatternEdge> getOutgoing() { + if (outgoing == null) { + outgoing = new EObjectWithInverseResolvingEList<RelPatternEdge>(RelPatternEdge.class, this, UMLXPackage.REL_PATTERN_NODE__OUTGOING, UMLXPackage.REL_PATTERN_EDGE__SOURCE); + } + return outgoing; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public RelDomainNode getOwningRelDomainNode() { if (eContainerFeatureID() != UMLXPackage.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE) return null; return (RelDomainNode)eInternalContainer(); @@ -207,6 +575,244 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte * @generated */ @Override + public Boolean isExpression() { + /** + * name = null and initExpressionLines->notEmpty() + */ + 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*/ java.lang.@Nullable String name = this.getName(); + final /*@NonInvalid*/ boolean eq = name == null; + /*@NonInvalid*/ boolean and; + if (eq) { + @SuppressWarnings("null") + final /*@NonInvalid*/ java.util.@NonNull List<String> initExpressionLines = this.getInitExpressionLines(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_initExpressionLines = idResolver.createOrderedSetOfAll(UMLXTables.ORD_PRIMid_String, initExpressionLines); + final /*@NonInvalid*/ boolean notEmpty = CollectionNotEmptyOperation.INSTANCE.evaluate(BOXED_initExpressionLines).booleanValue(); + and = notEmpty; + } + else { + and = ValueUtil.FALSE_VALUE; + } + return and; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean validateAnonIsUnnamed(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv AnonIsUnnamed: + * let severity : Integer[1] = 'RelPatternNode::AnonIsUnnamed'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let result : Boolean[?] = not isExpression() implies isAnon = name = '' + * in + * 'RelPatternNode::AnonIsUnnamed'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternNode_c_c_AnonIsUnnamed); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + /*@Caught*/ @Nullable Object CAUGHT_result; + try { + final /*@NonInvalid*/ boolean isExpression = this.isExpression(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression); + final /*@NonInvalid*/ boolean isAnon = this.isIsAnon(); + final /*@NonInvalid*/ java.lang.@Nullable String name = this.getName(); + final /*@NonInvalid*/ boolean eq = UMLXTables.STR_.equals(name); + final /*@NonInvalid*/ boolean eq_0 = isAnon == eq; + final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(not, eq_0); + CAUGHT_result = result; + } + catch (Exception e) { + CAUGHT_result = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternNode_c_c_AnonIsUnnamed, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean validateTypeIsRequired(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv TypeIsRequired: + * let severity : Integer[1] = 'RelPatternNode::TypeIsRequired'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let + * result : Boolean[?] = not isExpression() implies referredEClassifier <> null + * in + * 'RelPatternNode::TypeIsRequired'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_RelPatternNode_c_c_TypeIsRequired); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + /*@Caught*/ @Nullable Object CAUGHT_result; + try { + final /*@NonInvalid*/ boolean isExpression = this.isExpression(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression); + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = this.getReferredEClassifier(); + final /*@NonInvalid*/ boolean ne = referredEClassifier != null; + final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(not, ne); + CAUGHT_result = result; + } + catch (Exception e) { + CAUGHT_result = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternNode_c_c_TypeIsRequired, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean validateEClassifierIsInTypedModel(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv EClassifierIsInTypedModel: + * let + * severity : Integer[1] = 'RelPatternNode::EClassifierIsInTypedModel'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let + * result : Boolean[?] = not isExpression() implies + * let txTypedModelNode : TxTypedModelNode[?] = owningRelDomainNode.referredTxTypedModelNode + * in txTypedModelNode <> null implies + * txTypedModelNode.ownedTxPackageNodes.referredEPackage.eClassifiers->includes(referredEClassifier) + * in + * 'RelPatternNode::EClassifierIsInTypedModel'.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_RelPatternNode_c_c_EClassifierIsInTypedModel); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + /*@Caught*/ @Nullable Object CAUGHT_result; + try { + final /*@NonInvalid*/ boolean isExpression = this.isExpression(); + final /*@NonInvalid*/ java.lang.@Nullable Boolean not = BooleanNotOperation.INSTANCE.evaluate(isExpression); + /*@Caught*/ @NonNull Object CAUGHT_implies; + try { + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelDomainNode owningRelDomainNode = this.getOwningRelDomainNode(); + final /*@NonInvalid*/ org.eclipse.qvtd.umlx.@Nullable TxTypedModelNode txTypedModelNode = owningRelDomainNode.getReferredTxTypedModelNode(); + final /*@NonInvalid*/ boolean ne = txTypedModelNode != null; + /*@Thrown*/ boolean implies; + if (ne) { + if (txTypedModelNode == null) { + throw new InvalidValueException("Null source for \'\'http://www.eclipse.org/qvt/2016/UMLX\'::TxTypedModelNode::ownedTxPackageNodes\'"); + } + @SuppressWarnings("null") + final /*@Thrown*/ java.util.@NonNull List<TxPackageNode> ownedTxPackageNodes = txTypedModelNode.getOwnedTxPackageNodes(); + final /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_ownedTxPackageNodes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_TxPackageNode, ownedTxPackageNodes); + /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_CLSSid_EPackage); + @NonNull Iterator<Object> ITERATOR__1 = BOXED_ownedTxPackageNodes.iterator(); + /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue collect_0; + while (true) { + if (!ITERATOR__1.hasNext()) { + collect_0 = accumulator; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull TxPackageNode _1 = (TxPackageNode)ITERATOR__1.next(); + /** + * referredEPackage + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ org.eclipse.emf.ecore.@NonNull EPackage referredEPackage = _1.getReferredEPackage(); + // + accumulator.add(referredEPackage); + } + /*@Thrown*/ SequenceValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator_0 = ValueUtil.createSequenceAccumulatorValue(UMLXTables.SEQ_CLSSid_EClassifier); + @NonNull Iterator<Object> ITERATOR__1_0 = collect_0.iterator(); + /*@Thrown*/ org.eclipse.ocl.pivot.values.@NonNull SequenceValue collect; + while (true) { + if (!ITERATOR__1_0.hasNext()) { + collect = accumulator_0; + break; + } + @SuppressWarnings("null") + /*@NonInvalid*/ org.eclipse.emf.ecore.@NonNull EPackage _1_0 = (EPackage)ITERATOR__1_0.next(); + /** + * eClassifiers + */ + @SuppressWarnings("null") + final /*@NonInvalid*/ java.util.@NonNull List<EClassifier> eClassifiers = _1_0.getEClassifiers(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_eClassifiers = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_EClassifier, eClassifiers); + // + for (Object value : BOXED_eClassifiers.flatten().getElements()) { + accumulator_0.add(value); + } + } + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = this.getReferredEClassifier(); + final /*@Thrown*/ boolean includes = CollectionIncludesOperation.INSTANCE.evaluate(collect, referredEClassifier).booleanValue(); + implies = includes; + } + else { + implies = ValueUtil.TRUE_VALUE; + } + CAUGHT_implies = implies; + } + catch (Exception e) { + CAUGHT_implies = ValueUtil.createInvalidValue(e); + } + final /*@Thrown*/ java.lang.@Nullable Boolean result = BooleanImpliesOperation.INSTANCE.evaluate(not, CAUGHT_implies); + CAUGHT_result = result; + } + catch (Exception e) { + CAUGHT_result = ValueUtil.createInvalidValue(e); + } + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_RelPatternNode_c_c_EClassifierIsInTypedModel, 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 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); @@ -220,6 +826,29 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte * @generated */ @Override + public boolean isIsAnon() { + return isAnon; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setIsAnon(boolean newIsAnon) { + boolean oldIsAnon = isAnon; + isAnon = newIsAnon; + if (eNotificationRequired()) + eNotify(new ENotificationImpl(this, Notification.SET, UMLXPackage.REL_PATTERN_NODE__IS_ANON, oldIsAnon, isAnon)); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public String toString() { return super.toString(); } @@ -235,12 +864,14 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte switch (featureID) { case UMLXPackage.REL_PATTERN_NODE__INCOMING: return ((InternalEList<InternalEObject>)(InternalEList<?>)getIncoming()).basicAdd(otherEnd, msgs); + case UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getInvokingRelInvocationEdges()).basicAdd(otherEnd, msgs); + case UMLXPackage.REL_PATTERN_NODE__OUTGOING: + return ((InternalEList<InternalEObject>)(InternalEList<?>)getOutgoing()).basicAdd(otherEnd, msgs); case UMLXPackage.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE: 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); } @@ -255,10 +886,12 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte switch (featureID) { case UMLXPackage.REL_PATTERN_NODE__INCOMING: 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); + case UMLXPackage.REL_PATTERN_NODE__OUTGOING: + return ((InternalEList<?>)getOutgoing()).basicRemove(otherEnd, msgs); + case UMLXPackage.REL_PATTERN_NODE__OWNING_REL_DOMAIN_NODE: + return basicSetOwningRelDomainNode(null, msgs); } return super.eInverseRemove(otherEnd, featureID, msgs); } @@ -285,16 +918,35 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte @Override public Object eGet(int featureID, boolean resolve, boolean coreType) { switch (featureID) { + case UMLXPackage.REL_PATTERN_NODE__NAME: + return getName(); + case UMLXPackage.REL_PATTERN_NODE__IS_MANY: + return isIsMany(); + case UMLXPackage.REL_PATTERN_NODE__IS_NULL_FREE: + return isIsNullFree(); + case UMLXPackage.REL_PATTERN_NODE__IS_ORDERED: + return isIsOrdered(); + case UMLXPackage.REL_PATTERN_NODE__IS_REQUIRED: + return isIsRequired(); + case UMLXPackage.REL_PATTERN_NODE__IS_UNIQUE: + return isIsUnique(); + case UMLXPackage.REL_PATTERN_NODE__REFERRED_ECLASSIFIER: + if (resolve) return getReferredEClassifier(); + return basicGetReferredEClassifier(); case UMLXPackage.REL_PATTERN_NODE__INCOMING: return getIncoming(); case UMLXPackage.REL_PATTERN_NODE__INIT_EXPRESSION_LINES: return getInitExpressionLines(); + case UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES: + return getInvokingRelInvocationEdges(); + case UMLXPackage.REL_PATTERN_NODE__IS_ANON: + return isIsAnon(); case UMLXPackage.REL_PATTERN_NODE__IS_ROOT: return isIsRoot(); + case UMLXPackage.REL_PATTERN_NODE__OUTGOING: + return getOutgoing(); 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); } @@ -308,6 +960,27 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte @Override public void eSet(int featureID, Object newValue) { switch (featureID) { + case UMLXPackage.REL_PATTERN_NODE__NAME: + setName((String)newValue); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_MANY: + setIsMany((Boolean)newValue); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_NULL_FREE: + setIsNullFree((Boolean)newValue); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_ORDERED: + setIsOrdered((Boolean)newValue); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_REQUIRED: + setIsRequired((Boolean)newValue); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_UNIQUE: + setIsUnique((Boolean)newValue); + return; + case UMLXPackage.REL_PATTERN_NODE__REFERRED_ECLASSIFIER: + setReferredEClassifier((EClassifier)newValue); + return; case UMLXPackage.REL_PATTERN_NODE__INCOMING: getIncoming().clear(); getIncoming().addAll((Collection<? extends RelPatternEdge>)newValue); @@ -316,16 +989,23 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte getInitExpressionLines().clear(); getInitExpressionLines().addAll((Collection<? extends String>)newValue); return; + case UMLXPackage.REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES: + getInvokingRelInvocationEdges().clear(); + getInvokingRelInvocationEdges().addAll((Collection<? extends RelInvocationEdge>)newValue); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_ANON: + setIsAnon((Boolean)newValue); + return; case UMLXPackage.REL_PATTERN_NODE__IS_ROOT: setIsRoot((Boolean)newValue); return; + case UMLXPackage.REL_PATTERN_NODE__OUTGOING: + getOutgoing().clear(); + getOutgoing().addAll((Collection<? extends RelPatternEdge>)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); } @@ -338,21 +1018,48 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte @Override public void eUnset(int featureID) { switch (featureID) { + case UMLXPackage.REL_PATTERN_NODE__NAME: + setName(NAME_EDEFAULT); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_MANY: + setIsMany(IS_MANY_EDEFAULT); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_NULL_FREE: + setIsNullFree(IS_NULL_FREE_EDEFAULT); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_ORDERED: + setIsOrdered(IS_ORDERED_EDEFAULT); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_REQUIRED: + setIsRequired(IS_REQUIRED_EDEFAULT); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_UNIQUE: + setIsUnique(IS_UNIQUE_EDEFAULT); + return; + case UMLXPackage.REL_PATTERN_NODE__REFERRED_ECLASSIFIER: + setReferredEClassifier((EClassifier)null); + return; 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__INVOKING_REL_INVOCATION_EDGES: + getInvokingRelInvocationEdges().clear(); + return; + case UMLXPackage.REL_PATTERN_NODE__IS_ANON: + setIsAnon(IS_ANON_EDEFAULT); + return; case UMLXPackage.REL_PATTERN_NODE__IS_ROOT: setIsRoot(IS_ROOT_EDEFAULT); return; + case UMLXPackage.REL_PATTERN_NODE__OUTGOING: + getOutgoing().clear(); + 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); } @@ -365,18 +1072,99 @@ public abstract class RelPatternNodeImpl extends RelNodeImpl implements RelPatte @Override public boolean eIsSet(int featureID) { switch (featureID) { + case UMLXPackage.REL_PATTERN_NODE__NAME: + return NAME_EDEFAULT == null ? name != null : !NAME_EDEFAULT.equals(name); + case UMLXPackage.REL_PATTERN_NODE__IS_MANY: + return isMany != IS_MANY_EDEFAULT; + case UMLXPackage.REL_PATTERN_NODE__IS_NULL_FREE: + return isNullFree != IS_NULL_FREE_EDEFAULT; + case UMLXPackage.REL_PATTERN_NODE__IS_ORDERED: + return isOrdered != IS_ORDERED_EDEFAULT; + case UMLXPackage.REL_PATTERN_NODE__IS_REQUIRED: + return isRequired != IS_REQUIRED_EDEFAULT; + case UMLXPackage.REL_PATTERN_NODE__IS_UNIQUE: + return isUnique != IS_UNIQUE_EDEFAULT; + case UMLXPackage.REL_PATTERN_NODE__REFERRED_ECLASSIFIER: + return referredEClassifier != null; 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__INVOKING_REL_INVOCATION_EDGES: + return invokingRelInvocationEdges != null && !invokingRelInvocationEdges.isEmpty(); + case UMLXPackage.REL_PATTERN_NODE__IS_ANON: + return isAnon != IS_ANON_EDEFAULT; case UMLXPackage.REL_PATTERN_NODE__IS_ROOT: return isRoot != IS_ROOT_EDEFAULT; + case UMLXPackage.REL_PATTERN_NODE__OUTGOING: + return outgoing != null && !outgoing.isEmpty(); 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); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public int eBaseStructuralFeatureID(int derivedFeatureID, Class<?> baseClass) { + if (baseClass == UMLXNamedElement.class) { + switch (derivedFeatureID) { + case UMLXPackage.REL_PATTERN_NODE__NAME: return UMLXPackage.UMLX_NAMED_ELEMENT__NAME; + default: return -1; + } + } + if (baseClass == UMLXTypedElement.class) { + switch (derivedFeatureID) { + case UMLXPackage.REL_PATTERN_NODE__IS_MANY: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY; + case UMLXPackage.REL_PATTERN_NODE__IS_NULL_FREE: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE; + case UMLXPackage.REL_PATTERN_NODE__IS_ORDERED: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED; + case UMLXPackage.REL_PATTERN_NODE__IS_REQUIRED: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED; + case UMLXPackage.REL_PATTERN_NODE__IS_UNIQUE: return UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE; + case UMLXPackage.REL_PATTERN_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.REL_PATTERN_NODE__NAME; + default: return -1; + } + } + if (baseClass == UMLXTypedElement.class) { + switch (baseFeatureID) { + case UMLXPackage.UMLX_TYPED_ELEMENT__IS_MANY: return UMLXPackage.REL_PATTERN_NODE__IS_MANY; + case UMLXPackage.UMLX_TYPED_ELEMENT__IS_NULL_FREE: return UMLXPackage.REL_PATTERN_NODE__IS_NULL_FREE; + case UMLXPackage.UMLX_TYPED_ELEMENT__IS_ORDERED: return UMLXPackage.REL_PATTERN_NODE__IS_ORDERED; + case UMLXPackage.UMLX_TYPED_ELEMENT__IS_REQUIRED: return UMLXPackage.REL_PATTERN_NODE__IS_REQUIRED; + case UMLXPackage.UMLX_TYPED_ELEMENT__IS_UNIQUE: return UMLXPackage.REL_PATTERN_NODE__IS_UNIQUE; + case UMLXPackage.UMLX_TYPED_ELEMENT__REFERRED_ECLASSIFIER: return UMLXPackage.REL_PATTERN_NODE__REFERRED_ECLASSIFIER; + default: return -1; + } + } + return super.eDerivedStructuralFeatureID(baseFeatureID, baseClass); + } + + /** + * {@inheritDoc} + * @generated + */ + @Override + public <R> R accept(@NonNull UMLXVisitor<R> visitor) { + return visitor.visitRelPatternNode(this); + } + } //RelNodeImpl 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 348baec90..00131cdb4 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 @@ -24,6 +24,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; 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.oclany.OclComparableLessThanEqualOperation; @@ -241,24 +242,24 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { * @generated */ @Override - public boolean validateRelDiagramNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + public boolean validateTxQueryNodeNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * - * inv RelDiagramNamesAreUnique: + * inv TxQueryNodeNamesAreUnique: * let - * severity : Integer[1] = 'TxDiagram::RelDiagramNamesAreUnique'.getSeverity() + * severity : Integer[1] = 'TxDiagram::TxQueryNodeNamesAreUnique'.getSeverity() * in * if severity <= 0 * then true * else - * let result : Boolean[1] = ownedRelDiagrams->isUnique(name) + * let result : Boolean[1] = ownedTxQueryNodes->isUnique(name) * in - * 'TxDiagram::RelDiagramNamesAreUnique'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * '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_RelDiagramNamesAreUnique); + 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) { @@ -268,10 +269,10 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { /*@Caught*/ @NonNull Object CAUGHT_result; try { @SuppressWarnings("null") - final /*@NonInvalid*/ java.util.@NonNull List<RelDiagram> ownedRelDiagrams = this.getOwnedRelDiagrams(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_ownedRelDiagrams = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_RelDiagram, ownedRelDiagrams); - /*@Thrown*/ SetValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSetAccumulatorValue(UMLXTables.ORD_CLSSid_RelDiagram); - @NonNull Iterator<Object> ITERATOR__1 = BOXED_ownedRelDiagrams.iterator(); + 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()) { @@ -279,12 +280,11 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { break; } @SuppressWarnings("null") - /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelDiagram _1 = (RelDiagram)ITERATOR__1.next(); + /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull TxQueryNode _1 = (TxQueryNode)ITERATOR__1.next(); /** * name */ - @SuppressWarnings("null") - final /*@NonInvalid*/ java.lang.@NonNull String name = _1.getName(); + final /*@NonInvalid*/ java.lang.@Nullable String name = _1.getName(); // if (accumulator.includes(name) == ValueUtil.TRUE_VALUE) { result = ValueUtil.FALSE_VALUE; // Abort after second find @@ -299,7 +299,7 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { catch (Exception e) { CAUGHT_result = ValueUtil.createInvalidValue(e); } - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxDiagram_c_c_RelDiagramNamesAreUnique, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_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; @@ -311,24 +311,24 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { * @generated */ @Override - public boolean validateTxTypedModelNodeNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + public boolean validateRelDiagramNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * - * inv TxTypedModelNodeNamesAreUnique: + * inv RelDiagramNamesAreUnique: * let - * severity : Integer[1] = 'TxDiagram::TxTypedModelNodeNamesAreUnique'.getSeverity() + * severity : Integer[1] = 'TxDiagram::RelDiagramNamesAreUnique'.getSeverity() * in * if severity <= 0 * then true * else - * let result : Boolean[1] = ownedTxTypedModelNodes->isUnique(name) + * let result : Boolean[1] = ownedRelDiagrams->isUnique(name) * in - * 'TxDiagram::TxTypedModelNodeNamesAreUnique'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * 'TxDiagram::RelDiagramNamesAreUnique'.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_TxTypedModelNodeNamesAreUnique); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_TxDiagram_c_c_RelDiagramNamesAreUnique); final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); /*@NonInvalid*/ boolean symbol_0; if (le) { @@ -338,10 +338,10 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { /*@Caught*/ @NonNull Object CAUGHT_result; try { @SuppressWarnings("null") - final /*@NonInvalid*/ java.util.@NonNull List<TxTypedModelNode> ownedTxTypedModelNodes = this.getOwnedTxTypedModelNodes(); - final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_ownedTxTypedModelNodes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_TxTypedModelNode, ownedTxTypedModelNodes); - /*@Thrown*/ SetValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSetAccumulatorValue(UMLXTables.ORD_CLSSid_TxTypedModelNode); - @NonNull Iterator<Object> ITERATOR__1 = BOXED_ownedTxTypedModelNodes.iterator(); + final /*@NonInvalid*/ java.util.@NonNull List<RelDiagram> ownedRelDiagrams = this.getOwnedRelDiagrams(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_ownedRelDiagrams = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_RelDiagram, ownedRelDiagrams); + /*@Thrown*/ SetValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSetAccumulatorValue(UMLXTables.ORD_CLSSid_RelDiagram); + @NonNull Iterator<Object> ITERATOR__1 = BOXED_ownedRelDiagrams.iterator(); /*@Thrown*/ boolean result; while (true) { if (!ITERATOR__1.hasNext()) { @@ -349,12 +349,11 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { break; } @SuppressWarnings("null") - /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull TxTypedModelNode _1 = (TxTypedModelNode)ITERATOR__1.next(); + /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull RelDiagram _1 = (RelDiagram)ITERATOR__1.next(); /** * name */ - @SuppressWarnings("null") - final /*@NonInvalid*/ java.lang.@NonNull String name = _1.getName(); + final /*@NonInvalid*/ java.lang.@Nullable String name = _1.getName(); // if (accumulator.includes(name) == ValueUtil.TRUE_VALUE) { result = ValueUtil.FALSE_VALUE; // Abort after second find @@ -369,7 +368,7 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { catch (Exception e) { CAUGHT_result = ValueUtil.createInvalidValue(e); } - final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxDiagram_c_c_TxTypedModelNodeNamesAreUnique, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxDiagram_c_c_RelDiagramNamesAreUnique, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); symbol_0 = logDiagnostic; } return Boolean.TRUE == symbol_0; @@ -381,24 +380,60 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { * @generated */ @Override - public boolean validateTxQueryNodeNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + public boolean validateNameIsRequired(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * - * inv TxQueryNodeNamesAreUnique: + * inv NameIsRequired: + * let severity : Integer[1] = 'TxDiagram::NameIsRequired'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let result : Boolean[1] = name <> null + * in + * 'TxDiagram::NameIsRequired'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_TxDiagram_c_c_NameIsRequired); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + final /*@NonInvalid*/ java.lang.@Nullable String name = this.getName(); + final /*@NonInvalid*/ boolean result = name != null; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxDiagram_c_c_NameIsRequired, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean validateTxTypedModelNodeNamesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv TxTypedModelNodeNamesAreUnique: * let - * severity : Integer[1] = 'TxDiagram::TxQueryNodeNamesAreUnique'.getSeverity() + * severity : Integer[1] = 'TxDiagram::TxTypedModelNodeNamesAreUnique'.getSeverity() * in * if severity <= 0 * then true * else - * let result : Boolean[1] = ownedTxQueryNodes->isUnique(name) + * let result : Boolean[1] = ownedTxTypedModelNodes->isUnique(name) * in - * 'TxDiagram::TxQueryNodeNamesAreUnique'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * 'TxDiagram::TxTypedModelNodeNamesAreUnique'.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*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_TxDiagram_c_c_TxTypedModelNodeNamesAreUnique); final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); /*@NonInvalid*/ boolean symbol_0; if (le) { @@ -408,10 +443,10 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { /*@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(); + final /*@NonInvalid*/ java.util.@NonNull List<TxTypedModelNode> ownedTxTypedModelNodes = this.getOwnedTxTypedModelNodes(); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull OrderedSetValue BOXED_ownedTxTypedModelNodes = idResolver.createOrderedSetOfAll(UMLXTables.ORD_CLSSid_TxTypedModelNode, ownedTxTypedModelNodes); + /*@Thrown*/ SetValue.@org.eclipse.jdt.annotation.NonNull Accumulator accumulator = ValueUtil.createSetAccumulatorValue(UMLXTables.ORD_CLSSid_TxTypedModelNode); + @NonNull Iterator<Object> ITERATOR__1 = BOXED_ownedTxTypedModelNodes.iterator(); /*@Thrown*/ boolean result; while (true) { if (!ITERATOR__1.hasNext()) { @@ -419,12 +454,11 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { break; } @SuppressWarnings("null") - /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull TxQueryNode _1 = (TxQueryNode)ITERATOR__1.next(); + /*@NonInvalid*/ org.eclipse.qvtd.umlx.@NonNull TxTypedModelNode _1 = (TxTypedModelNode)ITERATOR__1.next(); /** * name */ - @SuppressWarnings("null") - final /*@NonInvalid*/ java.lang.@NonNull String name = _1.getName(); + final /*@NonInvalid*/ java.lang.@Nullable String name = _1.getName(); // if (accumulator.includes(name) == ValueUtil.TRUE_VALUE) { result = ValueUtil.FALSE_VALUE; // Abort after second find @@ -439,7 +473,7 @@ public class TxDiagramImpl extends UMLXNamedElementImpl implements TxDiagram { 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(); + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxDiagram_c_c_TxTypedModelNodeNamesAreUnique, this, (Object)null, diagnostics, context, (Object)null, severity_0, CAUGHT_result, UMLXTables.INT_0).booleanValue(); symbol_0 = logDiagnostic; } return Boolean.TRUE == symbol_0; diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxImportNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxImportNodeImpl.java index 7f264d9e3..dd3cc7cd3 100644 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxImportNodeImpl.java +++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxImportNodeImpl.java @@ -10,9 +10,11 @@ */ package org.eclipse.qvtd.umlx.impl; +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.ecore.EClass; import org.eclipse.emf.ecore.InternalEObject; @@ -22,11 +24,19 @@ import org.eclipse.emf.ecore.util.EcoreUtil; 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.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.qvtd.umlx.TxDiagram; import org.eclipse.qvtd.umlx.TxImportNode; import org.eclipse.qvtd.umlx.UMLXNamedElement; import org.eclipse.qvtd.umlx.UMLXPackage; +import org.eclipse.qvtd.umlx.UMLXTables; import org.eclipse.qvtd.umlx.util.UMLXVisitor; /** @@ -199,6 +209,42 @@ public class TxImportNodeImpl extends TxNodeImpl implements TxImportNode { * @generated */ @Override + public boolean validateNameIsRequired(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv NameIsRequired: + * let severity : Integer[1] = 'TxImportNode::NameIsRequired'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let result : Boolean[1] = name <> null + * in + * 'TxImportNode::NameIsRequired'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_TxImportNode_c_c_NameIsRequired); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + final /*@NonInvalid*/ java.lang.@Nullable String name = this.getName(); + final /*@NonInvalid*/ boolean result = name != null; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxImportNode_c_c_NameIsRequired, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public String toString() { return super.toString(); } diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxKeyNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxKeyNodeImpl.java index dbf07159c..9c3e93169 100644 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxKeyNodeImpl.java +++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxKeyNodeImpl.java @@ -195,6 +195,7 @@ public class TxKeyNodeImpl extends TxNodeImpl implements TxKeyNode { * <!-- end-user-doc --> * @generated */ + @Override public boolean validatePartsAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * 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 index 581885c63..f5f13bf99 100644 --- 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 @@ -10,9 +10,11 @@ */ package org.eclipse.qvtd.umlx.impl; +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.ecore.EClass; import org.eclipse.emf.ecore.EClassifier; import org.eclipse.emf.ecore.InternalEObject; @@ -23,10 +25,18 @@ import org.eclipse.emf.ecore.util.EcoreUtil; 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.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.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; @@ -428,6 +438,78 @@ public class TxParameterNodeImpl extends TxNodeImpl implements TxParameterNode { * @generated */ @Override + public boolean validateNameIsRequired(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv NameIsRequired: + * let severity : Integer[1] = 'TxParameterNode::NameIsRequired'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let result : Boolean[1] = name <> null + * in + * 'TxParameterNode::NameIsRequired'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_TxParameterNode_c_c_NameIsRequired); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + final /*@NonInvalid*/ java.lang.@Nullable String name = this.getName(); + final /*@NonInvalid*/ boolean result = name != null; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxParameterNode_c_c_NameIsRequired, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean validateTypeIsRequired(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv TypeIsRequired: + * let severity : Integer[1] = 'TxParameterNode::TypeIsRequired'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let result : Boolean[1] = referredEClassifier <> null + * in + * 'TxParameterNode::TypeIsRequired'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_TxParameterNode_c_c_TypeIsRequired); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = this.getReferredEClassifier(); + final /*@NonInvalid*/ boolean result = referredEClassifier != null; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxParameterNode_c_c_TypeIsRequired, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public String toString() { return super.toString(); } diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxPartNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxPartNodeImpl.java index b8cd84f35..bc159fc75 100644 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxPartNodeImpl.java +++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxPartNodeImpl.java @@ -220,6 +220,7 @@ public class TxPartNodeImpl extends TxNodeImpl implements TxPartNode { * <!-- end-user-doc --> * @generated */ + @Override public boolean validatePartIsPropertyOfKey(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * 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 index e8b9e5dc3..61066e5c4 100644 --- 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 @@ -33,19 +33,14 @@ 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.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; @@ -501,6 +496,78 @@ public class TxQueryNodeImpl extends TxNodeImpl implements TxQueryNode { * @generated */ @Override + public boolean validateNameIsRequired(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv NameIsRequired: + * let severity : Integer[1] = 'TxQueryNode::NameIsRequired'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let result : Boolean[1] = name <> null + * in + * 'TxQueryNode::NameIsRequired'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_TxQueryNode_c_c_NameIsRequired); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + final /*@NonInvalid*/ java.lang.@Nullable String name = this.getName(); + final /*@NonInvalid*/ boolean result = name != null; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxQueryNode_c_c_NameIsRequired, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean validateTypeIsRequired(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv TypeIsRequired: + * let severity : Integer[1] = 'TxQueryNode::TypeIsRequired'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let result : Boolean[1] = referredEClassifier <> null + * in + * 'TxQueryNode::TypeIsRequired'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_TxQueryNode_c_c_TypeIsRequired); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + final /*@NonInvalid*/ org.eclipse.emf.ecore.@Nullable EClassifier referredEClassifier = this.getReferredEClassifier(); + final /*@NonInvalid*/ boolean result = referredEClassifier != null; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxQueryNode_c_c_TypeIsRequired, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override public boolean validateParametersAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * @@ -542,8 +609,7 @@ public class TxQueryNodeImpl extends TxNodeImpl implements TxQueryNode { /** * name */ - @SuppressWarnings("null") - final /*@NonInvalid*/ java.lang.@NonNull String name = _1.getName(); + final /*@NonInvalid*/ java.lang.@Nullable String name = _1.getName(); // if (accumulator.includes(name) == ValueUtil.TRUE_VALUE) { result = ValueUtil.FALSE_VALUE; // Abort after second find diff --git a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxTypedModelNodeImpl.java b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxTypedModelNodeImpl.java index d16ef4b81..fac928e41 100644 --- a/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxTypedModelNodeImpl.java +++ b/plugins/org.eclipse.qvtd.umlx/emf-gen/org/eclipse/qvtd/umlx/impl/TxTypedModelNodeImpl.java @@ -25,6 +25,7 @@ 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.oclany.OclComparableLessThanEqualOperation; @@ -277,6 +278,7 @@ public class TxTypedModelNodeImpl extends TxNodeImpl implements TxTypedModelNode * <!-- end-user-doc --> * @generated */ + @Override public boolean validateTxPackageNodePackagesAreUnique(final DiagnosticChain diagnostics, final Map<Object, Object> context) { /** * @@ -347,6 +349,42 @@ public class TxTypedModelNodeImpl extends TxNodeImpl implements TxTypedModelNode * <!-- end-user-doc --> * @generated */ + @Override + public boolean validateNameIsRequired(final DiagnosticChain diagnostics, final Map<Object, Object> context) { + /** + * + * inv NameIsRequired: + * let severity : Integer[1] = 'TxTypedModelNode::NameIsRequired'.getSeverity() + * in + * if severity <= 0 + * then true + * else + * let result : Boolean[1] = name <> null + * in + * 'TxTypedModelNode::NameIsRequired'.logDiagnostic(self, null, diagnostics, context, null, severity, result, 0) + * endif + */ + final /*@NonInvalid*/ org.eclipse.ocl.pivot.evaluation.@NonNull Executor executor = PivotUtilInternal.getExecutor(this); + final /*@NonInvalid*/ org.eclipse.ocl.pivot.values.@NonNull IntegerValue severity_0 = CGStringGetSeverityOperation.INSTANCE.evaluate(executor, UMLXTables.STR_TxTypedModelNode_c_c_NameIsRequired); + final /*@NonInvalid*/ boolean le = OclComparableLessThanEqualOperation.INSTANCE.evaluate(executor, severity_0, UMLXTables.INT_0).booleanValue(); + /*@NonInvalid*/ boolean symbol_0; + if (le) { + symbol_0 = ValueUtil.TRUE_VALUE; + } + else { + final /*@NonInvalid*/ java.lang.@Nullable String name = this.getName(); + final /*@NonInvalid*/ boolean result = name != null; + final /*@NonInvalid*/ boolean logDiagnostic = CGStringLogDiagnosticOperation.INSTANCE.evaluate(executor, TypeId.BOOLEAN, UMLXTables.STR_TxTypedModelNode_c_c_NameIsRequired, this, (Object)null, diagnostics, context, (Object)null, severity_0, result, UMLXTables.INT_0).booleanValue(); + symbol_0 = logDiagnostic; + } + return Boolean.TRUE == symbol_0; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ @SuppressWarnings("unchecked") @Override public NotificationChain eInverseAdd(InternalEObject otherEnd, int featureID, NotificationChain msgs) { 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 df0eb9abf..4e4c57688 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 @@ -68,9 +68,8 @@ public class UMLXFactoryImpl extends EFactoryImpl implements UMLXFactory { case UMLXPackage.REL_DOMAIN_NODE: return createRelDomainNode(); case UMLXPackage.REL_INVOCATION_EDGE: return createRelInvocationEdge(); case UMLXPackage.REL_INVOCATION_NODE: return createRelInvocationNode(); - case UMLXPackage.REL_PATTERN_CLASS_NODE: return createRelPatternClassNode(); case UMLXPackage.REL_PATTERN_EDGE: return createRelPatternEdge(); - case UMLXPackage.REL_PATTERN_EXPRESSION_NODE: return createRelPatternExpressionNode(); + case UMLXPackage.REL_PATTERN_NODE: return createRelPatternNode(); case UMLXPackage.TX_DIAGRAM: return createTxDiagram(); case UMLXPackage.TX_IMPORT_NODE: return createTxImportNode(); case UMLXPackage.TX_KEY_NODE: return createTxKeyNode(); @@ -136,17 +135,6 @@ public class UMLXFactoryImpl extends EFactoryImpl implements UMLXFactory { * @generated */ @Override - public @NonNull RelPatternClassNode createRelPatternClassNode() { - RelPatternClassNodeImpl relPatternClassNode = new RelPatternClassNodeImpl(); - return relPatternClassNode; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override public @NonNull RelPatternEdge createRelPatternEdge() { RelPatternEdgeImpl relPatternEdge = new RelPatternEdgeImpl(); return relPatternEdge; @@ -158,9 +146,9 @@ public class UMLXFactoryImpl extends EFactoryImpl implements UMLXFactory { * @generated */ @Override - public @NonNull RelPatternExpressionNode createRelPatternExpressionNode() { - RelPatternExpressionNodeImpl relPatternExpressionNode = new RelPatternExpressionNodeImpl(); - return relPatternExpressionNode; + public @NonNull RelPatternNode createRelPatternNode() { + RelPatternNodeImpl relPatternNode = new RelPatternNodeImpl(); + return relPatternNode; } /** 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 2961ef351..b28de5f4b 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 @@ -18,7 +18,6 @@ import org.eclipse.emf.ecore.EPackage; import org.eclipse.emf.ecore.EReference; import org.eclipse.emf.ecore.EValidator; import org.eclipse.emf.ecore.impl.EPackageImpl; -import org.eclipse.qvtd.umlx.RelPatternExpressionNode; import org.eclipse.qvtd.umlx.RelDiagram; import org.eclipse.qvtd.umlx.RelDomainNode; import org.eclipse.qvtd.umlx.RelEdge; @@ -27,7 +26,6 @@ import org.eclipse.qvtd.umlx.RelInvocationNode; import org.eclipse.qvtd.umlx.RelPatternNode; import org.eclipse.qvtd.umlx.RelNode; import org.eclipse.qvtd.umlx.RelPatternEdge; -import org.eclipse.qvtd.umlx.RelPatternClassNode; import org.eclipse.qvtd.umlx.TxDiagram; import org.eclipse.qvtd.umlx.TxImportNode; import org.eclipse.qvtd.umlx.TxKeyNode; @@ -106,13 +104,6 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { * <!-- end-user-doc --> * @generated */ - private EClass relPatternExpressionNodeEClass = null; - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ private EClass relPatternNodeEClass = null; /** @@ -207,13 +198,6 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { private EClass umlxTypedElementEClass = null; /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - private EClass relPatternClassNodeEClass = null; - - /** * Creates an instance of the model <b>Package</b>, registered with * {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package * package URI value. @@ -561,8 +545,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { * @generated */ @Override - public EClass getRelPatternExpressionNode() { - return relPatternExpressionNodeEClass; + public EClass getRelPatternNode() { + return relPatternNodeEClass; } /** @@ -571,8 +555,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); } /** @@ -581,8 +565,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); } /** @@ -591,8 +575,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { * @generated */ @Override - public EAttribute getRelPatternNode_InitExpressionLines() { - return (EAttribute)relPatternNodeEClass.getEStructuralFeatures().get(1); + public EAttribute getRelPatternNode_IsRoot() { + return (EAttribute)relPatternNodeEClass.getEStructuralFeatures().get(4); } /** @@ -601,8 +585,8 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { * @generated */ @Override - public EAttribute getRelPatternNode_IsRoot() { - return (EAttribute)relPatternNodeEClass.getEStructuralFeatures().get(2); + public EReference getRelPatternNode_Outgoing() { + return (EReference)relPatternNodeEClass.getEStructuralFeatures().get(5); } /** @@ -612,7 +596,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { */ @Override public EReference getRelPatternNode_OwningRelDomainNode() { - return (EReference)relPatternNodeEClass.getEStructuralFeatures().get(3); + return (EReference)relPatternNodeEClass.getEStructuralFeatures().get(6); } /** @@ -622,7 +606,17 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { */ @Override public EReference getRelPatternNode_InvokingRelInvocationEdges() { - return (EReference)relPatternNodeEClass.getEStructuralFeatures().get(4); + return (EReference)relPatternNodeEClass.getEStructuralFeatures().get(2); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EAttribute getRelPatternNode_IsAnon() { + return (EAttribute)relPatternNodeEClass.getEStructuralFeatures().get(3); } /** @@ -1091,46 +1085,6 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { * @generated */ @Override - public EClass getRelPatternClassNode() { - return relPatternClassNodeEClass; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public EAttribute getRelPatternClassNode_IsAnon() { - return (EAttribute)relPatternClassNodeEClass.getEStructuralFeatures().get(0); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public EReference getRelPatternClassNode_Outgoing() { - return (EReference)relPatternClassNodeEClass.getEStructuralFeatures().get(1); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public EReference getRelPatternClassNode_RelDomainNode() { - return (EReference)relPatternClassNodeEClass.getEStructuralFeatures().get(2); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override public UMLXFactory getUMLXFactory() { return (UMLXFactory)getEFactoryInstance(); } @@ -1181,11 +1135,6 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { relNodeEClass = createEClass(REL_NODE); - relPatternClassNodeEClass = createEClass(REL_PATTERN_CLASS_NODE); - createEAttribute(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__IS_ANON); - createEReference(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__OUTGOING); - createEReference(relPatternClassNodeEClass, REL_PATTERN_CLASS_NODE__REL_DOMAIN_NODE); - relPatternEdgeEClass = createEClass(REL_PATTERN_EDGE); createEReference(relPatternEdgeEClass, REL_PATTERN_EDGE__OWNING_REL_DOMAIN_NODE); createEReference(relPatternEdgeEClass, REL_PATTERN_EDGE__REFERRED_ESTRUCTURAL_FEATURE); @@ -1193,14 +1142,14 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { createEAttribute(relPatternEdgeEClass, REL_PATTERN_EDGE__SOURCE_INDEX); createEReference(relPatternEdgeEClass, REL_PATTERN_EDGE__TARGET); - relPatternExpressionNodeEClass = createEClass(REL_PATTERN_EXPRESSION_NODE); - relPatternNodeEClass = createEClass(REL_PATTERN_NODE); createEReference(relPatternNodeEClass, REL_PATTERN_NODE__INCOMING); createEAttribute(relPatternNodeEClass, REL_PATTERN_NODE__INIT_EXPRESSION_LINES); + createEReference(relPatternNodeEClass, REL_PATTERN_NODE__INVOKING_REL_INVOCATION_EDGES); + createEAttribute(relPatternNodeEClass, REL_PATTERN_NODE__IS_ANON); createEAttribute(relPatternNodeEClass, REL_PATTERN_NODE__IS_ROOT); + createEReference(relPatternNodeEClass, REL_PATTERN_NODE__OUTGOING); 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); @@ -1296,11 +1245,9 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { relInvocationEdgeEClass.getESuperTypes().add(this.getRelEdge()); relInvocationNodeEClass.getESuperTypes().add(this.getRelNode()); relNodeEClass.getESuperTypes().add(this.getUMLXElement()); - relPatternClassNodeEClass.getESuperTypes().add(this.getRelPatternNode()); - relPatternClassNodeEClass.getESuperTypes().add(this.getUMLXTypedElement()); relPatternEdgeEClass.getESuperTypes().add(this.getRelEdge()); - relPatternExpressionNodeEClass.getESuperTypes().add(this.getRelPatternNode()); relPatternNodeEClass.getESuperTypes().add(this.getRelNode()); + relPatternNodeEClass.getESuperTypes().add(this.getUMLXTypedElement()); txDiagramEClass.getESuperTypes().add(this.getUMLXNamedElement()); txImportNodeEClass.getESuperTypes().add(this.getTxNode()); txImportNodeEClass.getESuperTypes().add(this.getUMLXNamedElement()); @@ -1325,7 +1272,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { initEReference(getRelDiagram_OwnedRelInvocationNodes(), this.getRelInvocationNode(), this.getRelInvocationNode_OwningRelDiagram(), "ownedRelInvocationNodes", null, 0, -1, RelDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelDiagram_OwningTxDiagram(), this.getTxDiagram(), this.getTxDiagram_OwnedRelDiagrams(), "owningTxDiagram", null, 1, 1, RelDiagram.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - EOperation op = addEOperation(relDiagramEClass, ecorePackage.getEBoolean(), "validateRelPatternNodeNamesAreUnique", 0, 1, IS_UNIQUE, IS_ORDERED); + EOperation op = addEOperation(relDiagramEClass, ecorePackage.getEBoolean(), "validateNameIsRequired", 0, 1, IS_UNIQUE, IS_ORDERED); addEParameter(op, ecorePackage.getEDiagnosticChain(), "diagnostics", 0, 1, IS_UNIQUE, IS_ORDERED); EGenericType g1 = createEGenericType(ecorePackage.getEMap()); EGenericType g2 = createEGenericType(ecorePackage.getEJavaObject()); @@ -1334,6 +1281,15 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { g1.getETypeArguments().add(g2); addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); + op = addEOperation(relDiagramEClass, ecorePackage.getEBoolean(), "validateRelPatternNodeNamesAreUnique", 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(relDomainNodeEClass, RelDomainNode.class, "RelDomainNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getRelDomainNode_OwnedRelPatternEdges(), this.getRelPatternEdge(), this.getRelPatternEdge_OwningRelDomainNode(), "ownedRelPatternEdges", null, 0, -1, RelDomainNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelDomainNode_OwnedRelPatternNodes(), this.getRelPatternNode(), this.getRelPatternNode_OwningRelDomainNode(), "ownedRelPatternNodes", null, 0, -1, RelDomainNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -1345,7 +1301,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { initEClass(relInvocationEdgeEClass, RelInvocationEdge.class, "RelInvocationEdge", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); 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); + initEReference(getRelInvocationEdge_ReferredRelPatternNode(), this.getRelPatternNode(), 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); initEClass(relInvocationNodeEClass, RelInvocationNode.class, "RelInvocationNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getRelInvocationNode_IsThen(), ecorePackage.getEBoolean(), "isThen", "true", 1, 1, RelInvocationNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -1364,33 +1320,10 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { initEClass(relNodeEClass, RelNode.class, "RelNode", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - 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); - 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_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); - 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(relPatternClassNodeEClass, ecorePackage.getEBoolean(), "validateEClassifierIsInTypedModel", 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(relPatternEdgeEClass, RelPatternEdge.class, "RelPatternEdge", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getRelPatternEdge_OwningRelDomainNode(), this.getRelDomainNode(), this.getRelDomainNode_OwnedRelPatternEdges(), "owningRelDomainNode", null, 0, 1, RelPatternEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelPatternEdge_ReferredEStructuralFeature(), ecorePackage.getEStructuralFeature(), null, "referredEStructuralFeature", null, 0, 1, RelPatternEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); - initEReference(getRelPatternEdge_Source(), this.getRelPatternClassNode(), this.getRelPatternClassNode_Outgoing(), "source", null, 1, 1, RelPatternEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + initEReference(getRelPatternEdge_Source(), this.getRelPatternNode(), this.getRelPatternNode_Outgoing(), "source", null, 1, 1, RelPatternEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getRelPatternEdge_SourceIndex(), ecorePackage.getEInt(), "sourceIndex", null, 1, 1, RelPatternEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getRelPatternEdge_Target(), this.getRelPatternNode(), this.getRelPatternNode_Incoming(), "target", null, 1, 1, RelPatternEdge.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -1475,14 +1408,43 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { g1.getETypeArguments().add(g2); addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); - initEClass(relPatternExpressionNodeEClass, RelPatternExpressionNode.class, "RelPatternExpressionNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); - - initEClass(relPatternNodeEClass, RelPatternNode.class, "RelPatternNode", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); + 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); + 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); + initEAttribute(getRelPatternNode_IsAnon(), ecorePackage.getEBoolean(), "isAnon", "false", 1, 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_Outgoing(), this.getRelPatternEdge(), this.getRelPatternEdge_Source(), "outgoing", null, 0, -1, RelPatternNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, IS_RESOLVE_PROXIES, !IS_UNSETTABLE, 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); + + addEOperation(relPatternNodeEClass, ecorePackage.getEBooleanObject(), "isExpression", 0, 1, IS_UNIQUE, IS_ORDERED); + + op = addEOperation(relPatternNodeEClass, ecorePackage.getEBoolean(), "validateAnonIsUnnamed", 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(relPatternNodeEClass, ecorePackage.getEBoolean(), "validateTypeIsRequired", 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(relPatternNodeEClass, ecorePackage.getEBoolean(), "validateEClassifierIsInTypedModel", 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(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); @@ -1492,7 +1454,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { 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(), "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()); @@ -1501,7 +1463,7 @@ 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(), "validateTxQueryNodeNamesAreUnique", 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()); @@ -1510,7 +1472,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(), "validateRelDiagramNamesAreUnique", 0, 1, IS_UNIQUE, IS_ORDERED); + op = addEOperation(txDiagramEClass, ecorePackage.getEBoolean(), "validateNameIsRequired", 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(), "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()); @@ -1523,6 +1494,15 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { initEReference(getTxImportNode_OwningTxDiagram(), this.getTxDiagram(), this.getTxDiagram_OwnedTxImportNodes(), "owningTxDiagram", null, 1, 1, TxImportNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEAttribute(getTxImportNode_Uri(), ecorePackage.getEString(), "uri", null, 1, 1, TxImportNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); + op = addEOperation(txImportNodeEClass, ecorePackage.getEBoolean(), "validateNameIsRequired", 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(txKeyNodeEClass, TxKeyNode.class, "TxKeyNode", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEReference(getTxKeyNode_OwnedTxPartNodes(), this.getTxPartNode(), this.getTxPartNode_OwningTxKeyNode(), "ownedTxPartNodes", null, 1, -1, TxKeyNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); initEReference(getTxKeyNode_OwningTxDiagram(), this.getTxDiagram(), this.getTxDiagram_OwnedTxKeyNodes(), "owningTxDiagram", null, 1, 1, TxKeyNode.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -1546,6 +1526,24 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { 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); + op = addEOperation(txParameterNodeEClass, ecorePackage.getEBoolean(), "validateNameIsRequired", 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(txParameterNodeEClass, ecorePackage.getEBoolean(), "validateTypeIsRequired", 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(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); @@ -1565,6 +1563,24 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { 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(), "validateNameIsRequired", 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(txQueryNodeEClass, ecorePackage.getEBoolean(), "validateTypeIsRequired", 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(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()); @@ -1589,6 +1605,15 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { g1.getETypeArguments().add(g2); addEParameter(op, g1, "context", 0, 1, IS_UNIQUE, IS_ORDERED); + op = addEOperation(txTypedModelNodeEClass, ecorePackage.getEBoolean(), "validateNameIsRequired", 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(umlxElementEClass, UMLXElement.class, "UMLXElement", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS); initEAttribute(getUMLXElement_Comments(), ecorePackage.getEString(), "comments", null, 0, -1, UMLXElement.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); @@ -1596,7 +1621,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { initEReference(getUMLXModel_OwnedTxDiagrams(), this.getTxDiagram(), null, "ownedTxDiagrams", null, 0, -1, UMLXModel.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, IS_ORDERED); 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); + initEAttribute(getUMLXNamedElement_Name(), ecorePackage.getEString(), "name", null, 0, 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); @@ -1604,7 +1629,7 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { 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); + initEReference(getUMLXTypedElement_ReferredEClassifier(), ecorePackage.getEClassifier(), null, "referredEClassifier", null, 0, 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); @@ -1633,55 +1658,67 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { (relDiagramEClass, source, new String[] { - "constraints", "RelPatternNodeNamesAreUnique" + "constraints", "validateRelPatternNodeNamesAreUnique" }); addAnnotation (relInvocationNodeEClass, source, new String[] { - "constraints", "CompatibleEdges" + "constraints", "validateCompatibleEdges" }); addAnnotation - (relPatternClassNodeEClass, + (relPatternEdgeEClass, source, new String[] { - "constraints", "AnonIsUnnamed EClassifierIsInTypedModel" + "constraints", "validateCompatibleMemberPropertyTarget" }); addAnnotation - (relPatternEdgeEClass, + (relPatternNodeEClass, source, new String[] { - "constraints", "SourceIsClassNode SourceIsEClass CompatiblePropertySource CompatibleSourceIndex CompatibleSourceMultiplicity CompatibleEAttributePropertyTarget CompatibleEReferencePropertyTarget CompatibleMemberPropertyTarget CompatibleRestPropertyTarget" + "constraints", "validateEClassifierIsInTypedModel" }); addAnnotation (txDiagramEClass, source, new String[] { - "constraints", "RelDiagramNamesAreUnique TxQueryNodeNamesAreUnique TxTypedModelNodeNamesAreUnique" + "constraints", "validateTxTypedModelNodeNamesAreUnique" + }); + addAnnotation + (txImportNodeEClass, + source, + new String[] { + "constraints", "validateNameIsRequired" }); addAnnotation (txKeyNodeEClass, source, new String[] { - "constraints", "PartsAreUnique" + "constraints", "validatePartsAreUnique" + }); + addAnnotation + (txParameterNodeEClass, + source, + new String[] { + "constraints", "validateTypeIsRequired" }); addAnnotation (txPartNodeEClass, source, new String[] { - "constraints", "PartIsPropertyOfKey" + "constraints", "validatePartIsPropertyOfKey" }); addAnnotation (txQueryNodeEClass, source, new String[] { - "constraints", "ParametersAreUnique" + "constraints", "validateParametersAreUnique" }); addAnnotation (txTypedModelNodeEClass, source, new String[] { - "constraints", "TxPackageNodePackagesAreUnique" + "constraints", "validateNameIsRequired" }); } @@ -1697,25 +1734,19 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { (relDiagramEClass.getEOperations().get(0), source, new String[] { - "originalName", "RelPatternNodeNamesAreUnique" - }); - addAnnotation - (relInvocationNodeEClass.getEOperations().get(0), - source, - new String[] { - "originalName", "CompatibleEdges" + "originalName", "NameIsRequired" }); addAnnotation - (relPatternClassNodeEClass.getEOperations().get(0), + (relDiagramEClass.getEOperations().get(1), source, new String[] { - "originalName", "AnonIsUnnamed" + "originalName", "RelPatternNodeNamesAreUnique" }); addAnnotation - (relPatternClassNodeEClass.getEOperations().get(1), + (relInvocationNodeEClass.getEOperations().get(0), source, new String[] { - "originalName", "EClassifierIsInTypedModel" + "originalName", "CompatibleEdges" }); addAnnotation (relPatternEdgeEClass.getEOperations().get(0), @@ -1772,22 +1803,52 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { "originalName", "CompatibleMemberPropertyTarget" }); addAnnotation + (relPatternNodeEClass.getEOperations().get(1), + source, + new String[] { + "originalName", "AnonIsUnnamed" + }); + addAnnotation + (relPatternNodeEClass.getEOperations().get(2), + source, + new String[] { + "originalName", "TypeIsRequired" + }); + addAnnotation + (relPatternNodeEClass.getEOperations().get(3), + source, + new String[] { + "originalName", "EClassifierIsInTypedModel" + }); + addAnnotation (txDiagramEClass.getEOperations().get(0), source, new String[] { - "originalName", "TxTypedModelNodeNamesAreUnique" + "originalName", "TxQueryNodeNamesAreUnique" }); addAnnotation (txDiagramEClass.getEOperations().get(1), source, new String[] { - "originalName", "TxQueryNodeNamesAreUnique" + "originalName", "RelDiagramNamesAreUnique" }); addAnnotation (txDiagramEClass.getEOperations().get(2), source, new String[] { - "originalName", "RelDiagramNamesAreUnique" + "originalName", "NameIsRequired" + }); + addAnnotation + (txDiagramEClass.getEOperations().get(3), + source, + new String[] { + "originalName", "TxTypedModelNodeNamesAreUnique" + }); + addAnnotation + (txImportNodeEClass.getEOperations().get(0), + source, + new String[] { + "originalName", "NameIsRequired" }); addAnnotation (txKeyNodeEClass.getEOperations().get(0), @@ -1796,6 +1857,18 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { "originalName", "PartsAreUnique" }); addAnnotation + (txParameterNodeEClass.getEOperations().get(0), + source, + new String[] { + "originalName", "NameIsRequired" + }); + addAnnotation + (txParameterNodeEClass.getEOperations().get(1), + source, + new String[] { + "originalName", "TypeIsRequired" + }); + addAnnotation (txPartNodeEClass.getEOperations().get(0), source, new String[] { @@ -1805,6 +1878,18 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { (txQueryNodeEClass.getEOperations().get(0), source, new String[] { + "originalName", "NameIsRequired" + }); + addAnnotation + (txQueryNodeEClass.getEOperations().get(1), + source, + new String[] { + "originalName", "TypeIsRequired" + }); + addAnnotation + (txQueryNodeEClass.getEOperations().get(2), + source, + new String[] { "originalName", "ParametersAreUnique" }); addAnnotation @@ -1813,6 +1898,12 @@ public class UMLXPackageImpl extends EPackageImpl implements UMLXPackage { new String[] { "originalName", "TxPackageNodePackagesAreUnique" }); + addAnnotation + (txTypedModelNodeEClass.getEOperations().get(1), + source, + new String[] { + "originalName", "NameIsRequired" + }); } } //UMLXPackageImpl 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 01a6f0ad5..ac69606db 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 @@ -68,21 +68,11 @@ public abstract class AbstractExtendingUMLXVisitor<R, C> } @Override - public R visitRelPatternClassNode(org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode object) { - return visitRelPatternNode(object); - } - - @Override public R visitRelPatternEdge(org.eclipse.qvtd.umlx.@NonNull RelPatternEdge object) { return visitRelEdge(object); } @Override - public R visitRelPatternExpressionNode(org.eclipse.qvtd.umlx.@NonNull RelPatternExpressionNode object) { - return visitRelPatternNode(object); - } - - @Override public R visitRelPatternNode(org.eclipse.qvtd.umlx.@NonNull RelPatternNode object) { return visitRelNode(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 13155dc9f..885b72a41 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 @@ -100,18 +100,10 @@ public class UMLXAdapterFactory extends AdapterFactoryImpl { return createRelNodeAdapter(); } @Override - public Adapter caseRelPatternClassNode(RelPatternClassNode object) { - return createRelPatternClassNodeAdapter(); - } - @Override public Adapter caseRelPatternEdge(RelPatternEdge object) { return createRelPatternEdgeAdapter(); } @Override - public Adapter caseRelPatternExpressionNode(RelPatternExpressionNode object) { - return createRelPatternExpressionNodeAdapter(); - } - @Override public Adapter caseRelPatternNode(RelPatternNode object) { return createRelPatternNodeAdapter(); } @@ -286,20 +278,6 @@ public class UMLXAdapterFactory extends AdapterFactoryImpl { } /** - * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.umlx.RelPatternExpressionNode <em>Rel Pattern Expression 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.RelPatternExpressionNode - * @generated - */ - public Adapter createRelPatternExpressionNodeAdapter() { - return null; - } - - /** * Creates a new adapter for an object of class '{@link org.eclipse.qvtd.umlx.RelPatternNode <em>Rel Pattern Node</em>}'. * <!-- begin-user-doc --> * This default implementation returns null so that we can easily ignore cases; @@ -496,20 +474,6 @@ public class UMLXAdapterFactory extends AdapterFactoryImpl { } /** - * 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; - * 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.RelPatternClassNode - * @generated - */ - public Adapter createRelPatternClassNodeAdapter() { - return null; - } - - /** * Creates a new adapter for the default case. * <!-- begin-user-doc --> * This default implementation returns null. 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 7e75a1f2c..d0aee94dc 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 @@ -120,17 +120,6 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> { if (result == null) result = defaultCase(theEObject); return result; } - case UMLXPackage.REL_PATTERN_CLASS_NODE: { - RelPatternClassNode relPatternClassNode = (RelPatternClassNode)theEObject; - T result = caseRelPatternClassNode(relPatternClassNode); - if (result == null) result = caseRelPatternNode(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; - } case UMLXPackage.REL_PATTERN_EDGE: { RelPatternEdge relPatternEdge = (RelPatternEdge)theEObject; T result = caseRelPatternEdge(relPatternEdge); @@ -139,19 +128,12 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> { if (result == null) result = defaultCase(theEObject); return result; } - case UMLXPackage.REL_PATTERN_EXPRESSION_NODE: { - RelPatternExpressionNode relPatternExpressionNode = (RelPatternExpressionNode)theEObject; - T result = caseRelPatternExpressionNode(relPatternExpressionNode); - if (result == null) result = caseRelPatternNode(relPatternExpressionNode); - if (result == null) result = caseRelNode(relPatternExpressionNode); - if (result == null) result = caseUMLXElement(relPatternExpressionNode); - if (result == null) result = defaultCase(theEObject); - return result; - } case UMLXPackage.REL_PATTERN_NODE: { RelPatternNode relPatternNode = (RelPatternNode)theEObject; T result = caseRelPatternNode(relPatternNode); if (result == null) result = caseRelNode(relPatternNode); + if (result == null) result = caseUMLXTypedElement(relPatternNode); + if (result == null) result = caseUMLXNamedElement(relPatternNode); if (result == null) result = caseUMLXElement(relPatternNode); if (result == null) result = defaultCase(theEObject); return result; @@ -371,21 +353,6 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> { } /** - * Returns the result of interpreting the object as an instance of '<em>Rel Pattern Expression 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>Rel Pattern Expression Node</em>'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseRelPatternExpressionNode(RelPatternExpressionNode object) { - return null; - } - - /** * Returns the result of interpreting the object as an instance of '<em>Rel Pattern Node</em>'. * <!-- begin-user-doc --> * This implementation returns null; @@ -596,21 +563,6 @@ public class UMLXSwitch<@Nullable T> extends Switch<T> { } /** - * Returns the result of interpreting the object as an instance of '<em>Rel Pattern Class 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>Rel Pattern Class Node</em>'. - * @see #doSwitch(org.eclipse.emf.ecore.EObject) doSwitch(EObject) - * @generated - */ - public T caseRelPatternClassNode(RelPatternClassNode object) { - return null; - } - - /** * Returns the result of interpreting the object as an instance of '<em>EObject</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 f3dae50b5..163222f27 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 @@ -12,7 +12,6 @@ package org.eclipse.qvtd.umlx.util; import java.util.Map; -import org.eclipse.emf.common.util.Diagnostic; import org.eclipse.emf.common.util.DiagnosticChain; import org.eclipse.emf.common.util.ResourceLocator; @@ -49,12 +48,20 @@ public class UMLXValidator extends EObjectValidator { public static final String DIAGNOSTIC_SOURCE = "org.eclipse.qvtd.umlx"; /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Name Is Required' of 'Rel Diagram'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final int REL_DIAGRAM__VALIDATE_NAME_IS_REQUIRED = 1; + + /** * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Rel Pattern Node Names Are Unique' of 'Rel Diagram'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public static final int REL_DIAGRAM__VALIDATE_REL_PATTERN_NODE_NAMES_ARE_UNIQUE = 1; + public static final int REL_DIAGRAM__VALIDATE_REL_PATTERN_NODE_NAMES_ARE_UNIQUE = 2; /** * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Edges' of 'Rel Invocation Node'. @@ -62,47 +69,55 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public static final int REL_INVOCATION_NODE__VALIDATE_COMPATIBLE_EDGES = 2; + public static final int REL_INVOCATION_NODE__VALIDATE_COMPATIBLE_EDGES = 3; /** - * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Anon Is Unnamed' of 'Rel Pattern Class Node'. + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Source Is EClass' of 'Rel Pattern Edge'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public static final int REL_PATTERN_CLASS_NODE__VALIDATE_ANON_IS_UNNAMED = 3; + public static final int REL_PATTERN_EDGE__VALIDATE_SOURCE_IS_ECLASS = 4; /** - * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate EClassifier Is In Typed Model' of 'Rel Pattern Class Node'. + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Source Is Class Node' of 'Rel Pattern Edge'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public static final int REL_PATTERN_CLASS_NODE__VALIDATE_ECLASSIFIER_IS_IN_TYPED_MODEL = 4; + public static final int REL_PATTERN_EDGE__VALIDATE_SOURCE_IS_CLASS_NODE = 5; /** - * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Member Property Target' of 'Rel Pattern Edge'. + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible EAttribute Property Target' of 'Rel Pattern Edge'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_MEMBER_PROPERTY_TARGET = 13; + public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_EATTRIBUTE_PROPERTY_TARGET = 6; /** - * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Source Is Class Node' of 'Rel Pattern Edge'. + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Source Multiplicity' of 'Rel Pattern Edge'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public static final int REL_PATTERN_EDGE__VALIDATE_SOURCE_IS_CLASS_NODE = 6; + public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_SOURCE_MULTIPLICITY = 7; /** - * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Source Is EClass' of 'Rel Pattern Edge'. + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible EReference Property Target' of 'Rel Pattern Edge'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_EREFERENCE_PROPERTY_TARGET = 8; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Property Source' of 'Rel Pattern Edge'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public static final int REL_PATTERN_EDGE__VALIDATE_SOURCE_IS_ECLASS = 5; + public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_PROPERTY_SOURCE = 9; /** * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Source Index' of 'Rel Pattern Edge'. @@ -110,7 +125,7 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_SOURCE_INDEX = 11; + public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_SOURCE_INDEX = 10; /** * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Rest Property Target' of 'Rel Pattern Edge'. @@ -118,39 +133,47 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_REST_PROPERTY_TARGET = 12; + public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_REST_PROPERTY_TARGET = 11; /** - * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible EAttribute Property Target' of 'Rel Pattern Edge'. + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Member Property Target' of 'Rel Pattern Edge'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_EATTRIBUTE_PROPERTY_TARGET = 7; + public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_MEMBER_PROPERTY_TARGET = 12; /** - * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Property Source' of 'Rel Pattern Edge'. + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Anon Is Unnamed' of 'Rel Pattern Node'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_PROPERTY_SOURCE = 10; + public static final int REL_PATTERN_NODE__VALIDATE_ANON_IS_UNNAMED = 13; /** - * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible Source Multiplicity' of 'Rel Pattern Edge'. + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Is Required' of 'Rel Pattern Node'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public static final int REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_SOURCE_MULTIPLICITY = 8; + public static final int REL_PATTERN_NODE__VALIDATE_TYPE_IS_REQUIRED = 14; /** - * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Compatible EReference Property Target' of 'Rel Pattern Edge'. + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate EClassifier Is In Typed Model' of 'Rel Pattern Node'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final int REL_PATTERN_NODE__VALIDATE_ECLASSIFIER_IS_IN_TYPED_MODEL = 15; + + /** + * 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 REL_PATTERN_EDGE__VALIDATE_COMPATIBLE_EREFERENCE_PROPERTY_TARGET = 9; + public static final int TX_DIAGRAM__VALIDATE_TX_QUERY_NODE_NAMES_ARE_UNIQUE = 16; /** * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Rel Diagram Names Are Unique' of 'Tx Diagram'. @@ -158,7 +181,15 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public static final int TX_DIAGRAM__VALIDATE_REL_DIAGRAM_NAMES_ARE_UNIQUE = 16; + public static final int TX_DIAGRAM__VALIDATE_REL_DIAGRAM_NAMES_ARE_UNIQUE = 17; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Name Is Required' of 'Tx Diagram'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final int TX_DIAGRAM__VALIDATE_NAME_IS_REQUIRED = 18; /** * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Tx Typed Model Node Names Are Unique' of 'Tx Diagram'. @@ -166,15 +197,15 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public static final int TX_DIAGRAM__VALIDATE_TX_TYPED_MODEL_NODE_NAMES_ARE_UNIQUE = 14; + public static final int TX_DIAGRAM__VALIDATE_TX_TYPED_MODEL_NODE_NAMES_ARE_UNIQUE = 19; /** - * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Tx Query Node Names Are Unique' of 'Tx Diagram'. + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Name Is Required' of 'Tx Import Node'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public static final int TX_DIAGRAM__VALIDATE_TX_QUERY_NODE_NAMES_ARE_UNIQUE = 15; + public static final int TX_IMPORT_NODE__VALIDATE_NAME_IS_REQUIRED = 20; /** * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parts Are Unique' of 'Tx Key Node'. @@ -182,7 +213,23 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public static final int TX_KEY_NODE__VALIDATE_PARTS_ARE_UNIQUE = 17; + public static final int TX_KEY_NODE__VALIDATE_PARTS_ARE_UNIQUE = 21; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Name Is Required' of 'Tx Parameter Node'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final int TX_PARAMETER_NODE__VALIDATE_NAME_IS_REQUIRED = 22; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Is Required' of 'Tx Parameter Node'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final int TX_PARAMETER_NODE__VALIDATE_TYPE_IS_REQUIRED = 23; /** * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Part Is Property Of Key' of 'Tx Part Node'. @@ -190,7 +237,23 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public static final int TX_PART_NODE__VALIDATE_PART_IS_PROPERTY_OF_KEY = 18; + public static final int TX_PART_NODE__VALIDATE_PART_IS_PROPERTY_OF_KEY = 24; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Name Is Required' of 'Tx Query Node'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final int TX_QUERY_NODE__VALIDATE_NAME_IS_REQUIRED = 25; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Type Is Required' of 'Tx Query Node'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final int TX_QUERY_NODE__VALIDATE_TYPE_IS_REQUIRED = 26; /** * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Parameters Are Unique' of 'Tx Query Node'. @@ -198,7 +261,7 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public static final int TX_QUERY_NODE__VALIDATE_PARAMETERS_ARE_UNIQUE = 19; + public static final int TX_QUERY_NODE__VALIDATE_PARAMETERS_ARE_UNIQUE = 27; /** * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Tx Package Node Packages Are Unique' of 'Tx Typed Model Node'. @@ -206,7 +269,15 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public static final int TX_TYPED_MODEL_NODE__VALIDATE_TX_PACKAGE_NODE_PACKAGES_ARE_UNIQUE = 20; + public static final int TX_TYPED_MODEL_NODE__VALIDATE_TX_PACKAGE_NODE_PACKAGES_ARE_UNIQUE = 28; + + /** + * The {@link org.eclipse.emf.common.util.Diagnostic#getCode() code} for constraint 'Validate Name Is Required' of 'Tx Typed Model Node'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public static final int TX_TYPED_MODEL_NODE__VALIDATE_NAME_IS_REQUIRED = 29; /** * A constant with a fixed name that can be used as the base value for additional hand written constants. @@ -214,7 +285,7 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 20; + private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 29; /** * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class. @@ -242,7 +313,7 @@ public class UMLXValidator extends EObjectValidator { */ @Override protected EPackage getEPackage() { - return UMLXPackage.eINSTANCE; + return UMLXPackage.eINSTANCE; } /** @@ -266,12 +337,8 @@ public class UMLXValidator extends EObjectValidator { return validateRelInvocationNode((RelInvocationNode)value, diagnostics, context); case UMLXPackage.REL_NODE: return validateRelNode((RelNode)value, diagnostics, context); - case UMLXPackage.REL_PATTERN_CLASS_NODE: - return validateRelPatternClassNode((RelPatternClassNode)value, diagnostics, context); case UMLXPackage.REL_PATTERN_EDGE: return validateRelPatternEdge((RelPatternEdge)value, diagnostics, context); - case UMLXPackage.REL_PATTERN_EXPRESSION_NODE: - return validateRelPatternExpressionNode((RelPatternExpressionNode)value, diagnostics, context); case UMLXPackage.REL_PATTERN_NODE: return validateRelPatternNode((RelPatternNode)value, diagnostics, context); case UMLXPackage.TX_DIAGRAM: @@ -320,47 +387,29 @@ public class UMLXValidator extends EObjectValidator { if (result || diagnostics != null) result &= validate_UniqueID(relDiagram, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryKeyUnique(relDiagram, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(relDiagram, diagnostics, context); - if (result || diagnostics != null) result &= validateRelDiagram_RelPatternNodeNamesAreUnique(relDiagram, diagnostics, context); if (result || diagnostics != null) result &= validateRelDiagram_validateRelPatternNodeNamesAreUnique(relDiagram, diagnostics, context); + if (result || diagnostics != null) result &= validateRelDiagram_validateNameIsRequired(relDiagram, diagnostics, context); return result; } /** - * Validates the RelPatternNodeNamesAreUnique constraint of '<em>Rel Diagram</em>'. + * Validates the validateRelPatternNodeNamesAreUnique constraint of '<em>Rel Diagram</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelDiagram_RelPatternNodeNamesAreUnique(RelDiagram relDiagram, 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[] { "RelPatternNodeNamesAreUnique", getObjectLabel(relDiagram, context) }, - new Object[] { relDiagram }, - context)); - } - return false; - } - return true; + public boolean validateRelDiagram_validateRelPatternNodeNamesAreUnique(RelDiagram relDiagram, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relDiagram.validateRelPatternNodeNamesAreUnique(diagnostics, context); } /** - * Validates the validateRelPatternNodeNamesAreUnique constraint of '<em>Rel Diagram</em>'. + * Validates the validateNameIsRequired constraint of '<em>Rel Diagram</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelDiagram_validateRelPatternNodeNamesAreUnique(RelDiagram relDiagram, DiagnosticChain diagnostics, Map<Object, Object> context) { - return relDiagram.validateRelPatternNodeNamesAreUnique(diagnostics, context); + public boolean validateRelDiagram_validateNameIsRequired(RelDiagram relDiagram, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relDiagram.validateNameIsRequired(diagnostics, context); } /** @@ -405,40 +454,11 @@ public class UMLXValidator extends EObjectValidator { if (result || diagnostics != null) result &= validate_UniqueID(relInvocationNode, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryKeyUnique(relInvocationNode, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(relInvocationNode, diagnostics, context); - if (result || diagnostics != null) result &= validateRelInvocationNode_CompatibleEdges(relInvocationNode, diagnostics, context); if (result || diagnostics != null) result &= validateRelInvocationNode_validateCompatibleEdges(relInvocationNode, diagnostics, context); return result; } /** - * Validates the CompatibleEdges constraint of '<em>Rel Invocation Node</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelInvocationNode_CompatibleEdges(RelInvocationNode relInvocationNode, 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[] { "CompatibleEdges", getObjectLabel(relInvocationNode, context) }, - new Object[] { relInvocationNode }, - context)); - } - return false; - } - return true; - } - - /** * Validates the validateCompatibleEdges constraint of '<em>Rel Invocation Node</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -462,104 +482,6 @@ public class UMLXValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternClassNode(RelPatternClassNode relPatternClassNode, DiagnosticChain diagnostics, Map<Object, Object> context) { - if (!validate_NoCircularContainment(relPatternClassNode, diagnostics, context)) return false; - boolean result = validate_EveryMultiplicityConforms(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validate_EveryDataValueConforms(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validate_EveryProxyResolves(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validate_UniqueID(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validate_EveryKeyUnique(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternClassNode_AnonIsUnnamed(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternClassNode_EClassifierIsInTypedModel(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternClassNode_validateAnonIsUnnamed(relPatternClassNode, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternClassNode_validateEClassifierIsInTypedModel(relPatternClassNode, diagnostics, context); - return result; - } - - /** - * Validates the AnonIsUnnamed constraint of '<em>Rel Pattern Class Node</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternClassNode_AnonIsUnnamed(RelPatternClassNode relPatternClassNode, 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[] { "AnonIsUnnamed", getObjectLabel(relPatternClassNode, context) }, - new Object[] { relPatternClassNode }, - context)); - } - return false; - } - return true; - } - - /** - * Validates the EClassifierIsInTypedModel constraint of '<em>Rel Pattern Class Node</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternClassNode_EClassifierIsInTypedModel(RelPatternClassNode relPatternClassNode, 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[] { "EClassifierIsInTypedModel", getObjectLabel(relPatternClassNode, context) }, - new Object[] { relPatternClassNode }, - context)); - } - return false; - } - return true; - } - - /** - * Validates the validateAnonIsUnnamed constraint of '<em>Rel Pattern Class Node</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternClassNode_validateAnonIsUnnamed(RelPatternClassNode relPatternClassNode, DiagnosticChain diagnostics, Map<Object, Object> context) { - return relPatternClassNode.validateAnonIsUnnamed(diagnostics, context); - } - - /** - * Validates the validateEClassifierIsInTypedModel constraint of '<em>Rel Pattern Class Node</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternClassNode_validateEClassifierIsInTypedModel(RelPatternClassNode relPatternClassNode, DiagnosticChain diagnostics, Map<Object, Object> context) { - return relPatternClassNode.validateEClassifierIsInTypedModel(diagnostics, context); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ public boolean validateRelPatternEdge(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { if (!validate_NoCircularContainment(relPatternEdge, diagnostics, context)) return false; boolean result = validate_EveryMultiplicityConforms(relPatternEdge, diagnostics, context); @@ -570,15 +492,7 @@ public class UMLXValidator extends EObjectValidator { if (result || diagnostics != null) result &= validate_UniqueID(relPatternEdge, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryKeyUnique(relPatternEdge, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(relPatternEdge, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternEdge_SourceIsClassNode(relPatternEdge, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternEdge_SourceIsEClass(relPatternEdge, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternEdge_CompatiblePropertySource(relPatternEdge, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternEdge_CompatibleSourceIndex(relPatternEdge, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternEdge_CompatibleSourceMultiplicity(relPatternEdge, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternEdge_CompatibleEAttributePropertyTarget(relPatternEdge, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternEdge_CompatibleEReferencePropertyTarget(relPatternEdge, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternEdge_CompatibleMemberPropertyTarget(relPatternEdge, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternEdge_CompatibleRestPropertyTarget(relPatternEdge, diagnostics, context); + if (result || diagnostics != null) result &= validateRelPatternEdge_validateCompatibleMemberPropertyTarget(relPatternEdge, diagnostics, context); if (result || diagnostics != null) result &= validateRelPatternEdge_validateSourceIsEClass(relPatternEdge, diagnostics, context); if (result || diagnostics != null) result &= validateRelPatternEdge_validateSourceIsClassNode(relPatternEdge, diagnostics, context); if (result || diagnostics != null) result &= validateRelPatternEdge_validateCompatibleEAttributePropertyTarget(relPatternEdge, diagnostics, context); @@ -587,290 +501,77 @@ public class UMLXValidator extends EObjectValidator { if (result || diagnostics != null) result &= validateRelPatternEdge_validateCompatiblePropertySource(relPatternEdge, diagnostics, context); if (result || diagnostics != null) result &= validateRelPatternEdge_validateCompatibleSourceIndex(relPatternEdge, diagnostics, context); if (result || diagnostics != null) result &= validateRelPatternEdge_validateCompatibleRestPropertyTarget(relPatternEdge, diagnostics, context); - if (result || diagnostics != null) result &= validateRelPatternEdge_validateCompatibleMemberPropertyTarget(relPatternEdge, diagnostics, context); return result; } /** - * Validates the SourceIsClassNode constraint of '<em>Rel Pattern Edge</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternEdge_SourceIsClassNode(RelPatternEdge relPatternEdge, 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[] { "SourceIsClassNode", getObjectLabel(relPatternEdge, context) }, - new Object[] { relPatternEdge }, - context)); - } - return false; - } - return true; - } - - /** - * Validates the SourceIsEClass constraint of '<em>Rel Pattern Edge</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternEdge_SourceIsEClass(RelPatternEdge relPatternEdge, 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[] { "SourceIsEClass", getObjectLabel(relPatternEdge, context) }, - new Object[] { relPatternEdge }, - context)); - } - return false; - } - return true; - } - - /** - * Validates the CompatiblePropertySource constraint of '<em>Rel Pattern Edge</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternEdge_CompatiblePropertySource(RelPatternEdge relPatternEdge, 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[] { "CompatiblePropertySource", getObjectLabel(relPatternEdge, context) }, - new Object[] { relPatternEdge }, - context)); - } - return false; - } - return true; - } - - /** - * Validates the CompatibleSourceIndex constraint of '<em>Rel Pattern Edge</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternEdge_CompatibleSourceIndex(RelPatternEdge relPatternEdge, 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[] { "CompatibleSourceIndex", getObjectLabel(relPatternEdge, context) }, - new Object[] { relPatternEdge }, - context)); - } - return false; - } - return true; - } - - /** - * Validates the CompatibleSourceMultiplicity constraint of '<em>Rel Pattern Edge</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternEdge_CompatibleSourceMultiplicity(RelPatternEdge relPatternEdge, 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[] { "CompatibleSourceMultiplicity", getObjectLabel(relPatternEdge, context) }, - new Object[] { relPatternEdge }, - context)); - } - return false; - } - return true; - } - - /** - * Validates the CompatibleEAttributePropertyTarget constraint of '<em>Rel Pattern Edge</em>'. + * Validates the validateCompatibleMemberPropertyTarget constraint of '<em>Rel Pattern Edge</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternEdge_CompatibleEAttributePropertyTarget(RelPatternEdge relPatternEdge, 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[] { "CompatibleEAttributePropertyTarget", getObjectLabel(relPatternEdge, context) }, - new Object[] { relPatternEdge }, - context)); - } - return false; - } - return true; + public boolean validateRelPatternEdge_validateCompatibleMemberPropertyTarget(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relPatternEdge.validateCompatibleMemberPropertyTarget(diagnostics, context); } /** - * Validates the CompatibleEReferencePropertyTarget constraint of '<em>Rel Pattern Edge</em>'. + * Validates the validateSourceIsEClass constraint of '<em>Rel Pattern Edge</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternEdge_CompatibleEReferencePropertyTarget(RelPatternEdge relPatternEdge, 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[] { "CompatibleEReferencePropertyTarget", getObjectLabel(relPatternEdge, context) }, - new Object[] { relPatternEdge }, - context)); - } - return false; - } - return true; + public boolean validateRelPatternEdge_validateSourceIsEClass(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relPatternEdge.validateSourceIsEClass(diagnostics, context); } /** - * Validates the CompatibleMemberPropertyTarget constraint of '<em>Rel Pattern Edge</em>'. + * Validates the validateSourceIsClassNode constraint of '<em>Rel Pattern Edge</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternEdge_CompatibleMemberPropertyTarget(RelPatternEdge relPatternEdge, 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[] { "CompatibleMemberPropertyTarget", getObjectLabel(relPatternEdge, context) }, - new Object[] { relPatternEdge }, - context)); - } - return false; - } - return true; + public boolean validateRelPatternEdge_validateSourceIsClassNode(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relPatternEdge.validateSourceIsClassNode(diagnostics, context); } /** - * Validates the CompatibleRestPropertyTarget constraint of '<em>Rel Pattern Edge</em>'. + * Validates the validateCompatibleEAttributePropertyTarget constraint of '<em>Rel Pattern Edge</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternEdge_CompatibleRestPropertyTarget(RelPatternEdge relPatternEdge, 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[] { "CompatibleRestPropertyTarget", getObjectLabel(relPatternEdge, context) }, - new Object[] { relPatternEdge }, - context)); - } - return false; - } - return true; + public boolean validateRelPatternEdge_validateCompatibleEAttributePropertyTarget(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relPatternEdge.validateCompatibleEAttributePropertyTarget(diagnostics, context); } /** - * Validates the validateCompatibleMemberPropertyTarget constraint of '<em>Rel Pattern Edge</em>'. + * Validates the validateCompatibleSourceMultiplicity constraint of '<em>Rel Pattern Edge</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternEdge_validateCompatibleMemberPropertyTarget(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { - return relPatternEdge.validateCompatibleMemberPropertyTarget(diagnostics, context); + public boolean validateRelPatternEdge_validateCompatibleSourceMultiplicity(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relPatternEdge.validateCompatibleSourceMultiplicity(diagnostics, context); } /** - * Validates the validateSourceIsClassNode constraint of '<em>Rel Pattern Edge</em>'. + * Validates the validateCompatibleEReferencePropertyTarget constraint of '<em>Rel Pattern Edge</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternEdge_validateSourceIsClassNode(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { - return relPatternEdge.validateSourceIsClassNode(diagnostics, context); + public boolean validateRelPatternEdge_validateCompatibleEReferencePropertyTarget(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relPatternEdge.validateCompatibleEReferencePropertyTarget(diagnostics, context); } /** - * Validates the validateSourceIsEClass constraint of '<em>Rel Pattern Edge</em>'. + * Validates the validateCompatiblePropertySource constraint of '<em>Rel Pattern Edge</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternEdge_validateSourceIsEClass(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { - return relPatternEdge.validateSourceIsEClass(diagnostics, context); + public boolean validateRelPatternEdge_validateCompatiblePropertySource(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relPatternEdge.validateCompatiblePropertySource(diagnostics, context); } /** @@ -894,61 +595,54 @@ public class UMLXValidator extends EObjectValidator { } /** - * Validates the validateCompatibleEAttributePropertyTarget constraint of '<em>Rel Pattern Edge</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternEdge_validateCompatibleEAttributePropertyTarget(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { - return relPatternEdge.validateCompatibleEAttributePropertyTarget(diagnostics, context); - } - - /** - * Validates the validateCompatiblePropertySource constraint of '<em>Rel Pattern Edge</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternEdge_validateCompatiblePropertySource(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { - return relPatternEdge.validateCompatiblePropertySource(diagnostics, context); + public boolean validateRelPatternNode(RelPatternNode relPatternNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(relPatternNode, diagnostics, context)) return false; + boolean result = validate_EveryMultiplicityConforms(relPatternNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryDataValueConforms(relPatternNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(relPatternNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(relPatternNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(relPatternNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_UniqueID(relPatternNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryKeyUnique(relPatternNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(relPatternNode, diagnostics, context); + if (result || diagnostics != null) result &= validateRelPatternNode_validateEClassifierIsInTypedModel(relPatternNode, diagnostics, context); + if (result || diagnostics != null) result &= validateRelPatternNode_validateAnonIsUnnamed(relPatternNode, diagnostics, context); + if (result || diagnostics != null) result &= validateRelPatternNode_validateTypeIsRequired(relPatternNode, diagnostics, context); + return result; } /** - * Validates the validateCompatibleSourceMultiplicity constraint of '<em>Rel Pattern Edge</em>'. + * Validates the validateEClassifierIsInTypedModel constraint of '<em>Rel Pattern Node</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternEdge_validateCompatibleSourceMultiplicity(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { - return relPatternEdge.validateCompatibleSourceMultiplicity(diagnostics, context); + public boolean validateRelPatternNode_validateEClassifierIsInTypedModel(RelPatternNode relPatternNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relPatternNode.validateEClassifierIsInTypedModel(diagnostics, context); } /** - * Validates the validateCompatibleEReferencePropertyTarget constraint of '<em>Rel Pattern Edge</em>'. + * Validates the validateAnonIsUnnamed constraint of '<em>Rel Pattern Node</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternEdge_validateCompatibleEReferencePropertyTarget(RelPatternEdge relPatternEdge, DiagnosticChain diagnostics, Map<Object, Object> context) { - return relPatternEdge.validateCompatibleEReferencePropertyTarget(diagnostics, context); + public boolean validateRelPatternNode_validateAnonIsUnnamed(RelPatternNode relPatternNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relPatternNode.validateAnonIsUnnamed(diagnostics, context); } /** + * Validates the validateTypeIsRequired constraint of '<em>Rel Pattern Node</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateRelPatternExpressionNode(RelPatternExpressionNode relPatternExpressionNode, DiagnosticChain diagnostics, Map<Object, Object> context) { - return validate_EveryDefaultConstraint(relPatternExpressionNode, diagnostics, context); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateRelPatternNode(RelPatternNode relPatternNode, DiagnosticChain diagnostics, Map<Object, Object> context) { - return validate_EveryDefaultConstraint(relPatternNode, diagnostics, context); + public boolean validateRelPatternNode_validateTypeIsRequired(RelPatternNode relPatternNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + return relPatternNode.validateTypeIsRequired(diagnostics, context); } /** @@ -966,97 +660,31 @@ public class UMLXValidator extends EObjectValidator { if (result || diagnostics != null) result &= validate_UniqueID(txDiagram, diagnostics, context); 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_validateTxTypedModelNodeNamesAreUnique(txDiagram, diagnostics, context); if (result || diagnostics != null) result &= validateTxDiagram_validateTxQueryNodeNamesAreUnique(txDiagram, diagnostics, context); if (result || diagnostics != null) result &= validateTxDiagram_validateRelDiagramNamesAreUnique(txDiagram, diagnostics, context); + if (result || diagnostics != null) result &= validateTxDiagram_validateNameIsRequired(txDiagram, diagnostics, context); return result; } /** - * Validates the RelDiagramNamesAreUnique constraint of '<em>Tx Diagram</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateTxDiagram_RelDiagramNamesAreUnique(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[] { "RelDiagramNamesAreUnique", getObjectLabel(txDiagram, context) }, - new Object[] { txDiagram }, - context)); - } - return false; - } - return true; - } - - /** - * Validates the TxQueryNodeNamesAreUnique constraint of '<em>Tx Diagram</em>'. + * Validates the validateTxTypedModelNodeNamesAreUnique 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; - } - return true; + public boolean validateTxDiagram_validateTxTypedModelNodeNamesAreUnique(TxDiagram txDiagram, DiagnosticChain diagnostics, Map<Object, Object> context) { + return txDiagram.validateTxTypedModelNodeNamesAreUnique(diagnostics, context); } /** - * Validates the TxTypedModelNodeNamesAreUnique constraint of '<em>Tx Diagram</em>'. + * Validates the validateTxQueryNodeNamesAreUnique constraint of '<em>Tx Diagram</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateTxDiagram_TxTypedModelNodeNamesAreUnique(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[] { "TxTypedModelNodeNamesAreUnique", getObjectLabel(txDiagram, context) }, - new Object[] { txDiagram }, - context)); - } - return false; - } - return true; + public boolean validateTxDiagram_validateTxQueryNodeNamesAreUnique(TxDiagram txDiagram, DiagnosticChain diagnostics, Map<Object, Object> context) { + return txDiagram.validateTxQueryNodeNamesAreUnique(diagnostics, context); } /** @@ -1070,32 +698,42 @@ public class UMLXValidator extends EObjectValidator { } /** - * Validates the validateTxTypedModelNodeNamesAreUnique constraint of '<em>Tx Diagram</em>'. + * Validates the validateNameIsRequired constraint of '<em>Tx Diagram</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateTxDiagram_validateTxTypedModelNodeNamesAreUnique(TxDiagram txDiagram, DiagnosticChain diagnostics, Map<Object, Object> context) { - return txDiagram.validateTxTypedModelNodeNamesAreUnique(diagnostics, context); + public boolean validateTxDiagram_validateNameIsRequired(TxDiagram txDiagram, DiagnosticChain diagnostics, Map<Object, Object> context) { + return txDiagram.validateNameIsRequired(diagnostics, context); } /** - * 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); + public boolean validateTxImportNode(TxImportNode txImportNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + if (!validate_NoCircularContainment(txImportNode, diagnostics, context)) return false; + boolean result = validate_EveryMultiplicityConforms(txImportNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryDataValueConforms(txImportNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(txImportNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(txImportNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(txImportNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_UniqueID(txImportNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryKeyUnique(txImportNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(txImportNode, diagnostics, context); + if (result || diagnostics != null) result &= validateTxImportNode_validateNameIsRequired(txImportNode, diagnostics, context); + return result; } /** + * Validates the validateNameIsRequired constraint of '<em>Tx Import Node</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateTxImportNode(TxImportNode txImportNode, DiagnosticChain diagnostics, Map<Object, Object> context) { - return validate_EveryDefaultConstraint(txImportNode, diagnostics, context); + public boolean validateTxImportNode_validateNameIsRequired(TxImportNode txImportNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + return txImportNode.validateNameIsRequired(diagnostics, context); } /** @@ -1113,40 +751,11 @@ public class UMLXValidator extends EObjectValidator { if (result || diagnostics != null) result &= validate_UniqueID(txKeyNode, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryKeyUnique(txKeyNode, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(txKeyNode, diagnostics, context); - if (result || diagnostics != null) result &= validateTxKeyNode_PartsAreUnique(txKeyNode, diagnostics, context); if (result || diagnostics != null) result &= validateTxKeyNode_validatePartsAreUnique(txKeyNode, diagnostics, context); return result; } /** - * Validates the PartsAreUnique constraint of '<em>Tx Key Node</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateTxKeyNode_PartsAreUnique(TxKeyNode txKeyNode, 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[] { "PartsAreUnique", getObjectLabel(txKeyNode, context) }, - new Object[] { txKeyNode }, - context)); - } - return false; - } - return true; - } - - /** * Validates the validatePartsAreUnique constraint of '<em>Tx Key Node</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1180,7 +789,38 @@ public class UMLXValidator extends EObjectValidator { * @generated */ public boolean validateTxParameterNode(TxParameterNode txParameterNode, DiagnosticChain diagnostics, Map<Object, Object> context) { - return validate_EveryDefaultConstraint(txParameterNode, diagnostics, context); + if (!validate_NoCircularContainment(txParameterNode, diagnostics, context)) return false; + boolean result = validate_EveryMultiplicityConforms(txParameterNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryDataValueConforms(txParameterNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(txParameterNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(txParameterNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryProxyResolves(txParameterNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_UniqueID(txParameterNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryKeyUnique(txParameterNode, diagnostics, context); + if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(txParameterNode, diagnostics, context); + if (result || diagnostics != null) result &= validateTxParameterNode_validateTypeIsRequired(txParameterNode, diagnostics, context); + if (result || diagnostics != null) result &= validateTxParameterNode_validateNameIsRequired(txParameterNode, diagnostics, context); + return result; + } + + /** + * Validates the validateTypeIsRequired constraint of '<em>Tx Parameter Node</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateTxParameterNode_validateTypeIsRequired(TxParameterNode txParameterNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + return txParameterNode.validateTypeIsRequired(diagnostics, context); + } + + /** + * Validates the validateNameIsRequired constraint of '<em>Tx Parameter Node</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateTxParameterNode_validateNameIsRequired(TxParameterNode txParameterNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + return txParameterNode.validateNameIsRequired(diagnostics, context); } /** @@ -1198,40 +838,11 @@ public class UMLXValidator extends EObjectValidator { if (result || diagnostics != null) result &= validate_UniqueID(txPartNode, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryKeyUnique(txPartNode, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(txPartNode, diagnostics, context); - if (result || diagnostics != null) result &= validateTxPartNode_PartIsPropertyOfKey(txPartNode, diagnostics, context); if (result || diagnostics != null) result &= validateTxPartNode_validatePartIsPropertyOfKey(txPartNode, diagnostics, context); return result; } /** - * Validates the PartIsPropertyOfKey constraint of '<em>Tx Part Node</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - public boolean validateTxPartNode_PartIsPropertyOfKey(TxPartNode txPartNode, 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[] { "PartIsPropertyOfKey", getObjectLabel(txPartNode, context) }, - new Object[] { txPartNode }, - context)); - } - return false; - } - return true; - } - - /** * Validates the validatePartIsPropertyOfKey constraint of '<em>Tx Part Node</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1256,47 +867,40 @@ public class UMLXValidator extends EObjectValidator { 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); + if (result || diagnostics != null) result &= validateTxQueryNode_validateNameIsRequired(txQueryNode, diagnostics, context); + if (result || diagnostics != null) result &= validateTxQueryNode_validateTypeIsRequired(txQueryNode, diagnostics, context); return result; } /** - * Validates the ParametersAreUnique constraint of '<em>Tx Query Node</em>'. + * Validates the validateParametersAreUnique 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; + public boolean validateTxQueryNode_validateParametersAreUnique(TxQueryNode txQueryNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + return txQueryNode.validateParametersAreUnique(diagnostics, context); } /** - * Validates the validateParametersAreUnique constraint of '<em>Tx Query Node</em>'. + * Validates the validateNameIsRequired 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); + public boolean validateTxQueryNode_validateNameIsRequired(TxQueryNode txQueryNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + return txQueryNode.validateNameIsRequired(diagnostics, context); + } + + /** + * Validates the validateTypeIsRequired constraint of '<em>Tx Query Node</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateTxQueryNode_validateTypeIsRequired(TxQueryNode txQueryNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + return txQueryNode.validateTypeIsRequired(diagnostics, context); } /** @@ -1314,37 +918,19 @@ public class UMLXValidator extends EObjectValidator { if (result || diagnostics != null) result &= validate_UniqueID(txTypedModelNode, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryKeyUnique(txTypedModelNode, diagnostics, context); if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(txTypedModelNode, diagnostics, context); - if (result || diagnostics != null) result &= validateTxTypedModelNode_TxPackageNodePackagesAreUnique(txTypedModelNode, diagnostics, context); + if (result || diagnostics != null) result &= validateTxTypedModelNode_validateNameIsRequired(txTypedModelNode, diagnostics, context); if (result || diagnostics != null) result &= validateTxTypedModelNode_validateTxPackageNodePackagesAreUnique(txTypedModelNode, diagnostics, context); return result; } /** - * Validates the TxPackageNodePackagesAreUnique constraint of '<em>Tx Typed Model Node</em>'. + * Validates the validateNameIsRequired constraint of '<em>Tx Typed Model Node</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateTxTypedModelNode_TxPackageNodePackagesAreUnique(TxTypedModelNode txTypedModelNode, 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[] { "TxPackageNodePackagesAreUnique", getObjectLabel(txTypedModelNode, context) }, - new Object[] { txTypedModelNode }, - context)); - } - return false; - } - return true; + public boolean validateTxTypedModelNode_validateNameIsRequired(TxTypedModelNode txTypedModelNode, DiagnosticChain diagnostics, Map<Object, Object> context) { + return txTypedModelNode.validateNameIsRequired(diagnostics, context); } /** 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 491b4253b..13ac4f5f3 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 @@ -47,9 +47,7 @@ public interface UMLXVisitor<R> R visitRelInvocationEdge(org.eclipse.qvtd.umlx.@NonNull RelInvocationEdge object); R visitRelInvocationNode(org.eclipse.qvtd.umlx.@NonNull RelInvocationNode object); R visitRelNode(org.eclipse.qvtd.umlx.@NonNull RelNode object); - R visitRelPatternClassNode(org.eclipse.qvtd.umlx.@NonNull RelPatternClassNode object); R visitRelPatternEdge(org.eclipse.qvtd.umlx.@NonNull RelPatternEdge object); - R visitRelPatternExpressionNode(org.eclipse.qvtd.umlx.@NonNull RelPatternExpressionNode object); R visitRelPatternNode(org.eclipse.qvtd.umlx.@NonNull RelPatternNode object); R visitTxDiagram(org.eclipse.qvtd.umlx.@NonNull TxDiagram object); R visitTxImportNode(org.eclipse.qvtd.umlx.@NonNull TxImportNode object); diff --git a/plugins/org.eclipse.qvtd.xtext.qvtbase/emf-gen/org/eclipse/qvtd/xtext/qvtbasecs/util/QVTbaseCSAdapterFactory.java b/plugins/org.eclipse.qvtd.xtext.qvtbase/emf-gen/org/eclipse/qvtd/xtext/qvtbasecs/util/QVTbaseCSAdapterFactory.java index 4a2b02c09..5111317a8 100644 --- a/plugins/org.eclipse.qvtd.xtext.qvtbase/emf-gen/org/eclipse/qvtd/xtext/qvtbasecs/util/QVTbaseCSAdapterFactory.java +++ b/plugins/org.eclipse.qvtd.xtext.qvtbase/emf-gen/org/eclipse/qvtd/xtext/qvtbasecs/util/QVTbaseCSAdapterFactory.java @@ -28,7 +28,6 @@ import org.eclipse.ocl.xtext.basecs.PivotableElementCS; import org.eclipse.ocl.xtext.basecs.TemplateableElementCS; import org.eclipse.ocl.xtext.basecs.TypeCS; import org.eclipse.ocl.xtext.basecs.util.VisitableCS; -import org.eclipse.qvtd.xtext.qvtbasecs.*; import org.eclipse.qvtd.xtext.qvtbasecs.AbstractTransformationCS; import org.eclipse.qvtd.xtext.qvtbasecs.QVTbaseCSPackage; import org.eclipse.qvtd.xtext.qvtbasecs.QualifiedPackageCS; diff --git a/plugins/org.eclipse.qvtd.xtext.qvtbase/emf-gen/org/eclipse/qvtd/xtext/qvtbasecs/util/QVTbaseCSSwitch.java b/plugins/org.eclipse.qvtd.xtext.qvtbase/emf-gen/org/eclipse/qvtd/xtext/qvtbasecs/util/QVTbaseCSSwitch.java index cbac85145..668562d50 100644 --- a/plugins/org.eclipse.qvtd.xtext.qvtbase/emf-gen/org/eclipse/qvtd/xtext/qvtbasecs/util/QVTbaseCSSwitch.java +++ b/plugins/org.eclipse.qvtd.xtext.qvtbase/emf-gen/org/eclipse/qvtd/xtext/qvtbasecs/util/QVTbaseCSSwitch.java @@ -27,7 +27,6 @@ import org.eclipse.ocl.xtext.basecs.PivotableElementCS; import org.eclipse.ocl.xtext.basecs.TemplateableElementCS; import org.eclipse.ocl.xtext.basecs.TypeCS; import org.eclipse.ocl.xtext.basecs.util.VisitableCS; -import org.eclipse.qvtd.xtext.qvtbasecs.*; import org.eclipse.qvtd.xtext.qvtbasecs.AbstractTransformationCS; import org.eclipse.qvtd.xtext.qvtbasecs.QVTbaseCSPackage; import org.eclipse.qvtd.xtext.qvtbasecs.QualifiedPackageCS; diff --git a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/AbstractDomainCS.java b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/AbstractDomainCS.java index d62489d46..826e57227 100644 --- a/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/AbstractDomainCS.java +++ b/plugins/org.eclipse.qvtd.xtext.qvtrelation/emf-gen/org/eclipse/qvtd/xtext/qvtrelationcs/AbstractDomainCS.java @@ -10,7 +10,6 @@ *******************************************************************************/ package org.eclipse.qvtd.xtext.qvtrelationcs; -import org.eclipse.ocl.pivot.utilities.Nameable; import org.eclipse.ocl.xtext.basecs.ModelElementCS; /** |