diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore index f44ebef06765003734f1916d4a6c4ad7e123e257..270c8642e2943cac73627816037c3b047b7ead63 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore @@ -98,6 +98,12 @@ <details key="name" value="Service_._type"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="#//ACSIServicesKind" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -114,6 +120,12 @@ <details key="name" value="tAbbreviation"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -162,6 +174,12 @@ <details key="name" value="tAbstractLNClass"/> <details key="kind" value="elementOnly"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -283,6 +301,13 @@ <details key="name" value="tApplicableServiceNS"/> <details key="kind" value="elementOnly"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="versionAttributeRequired dateAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="versionAttributeRequired" value="Tuple {
	message : String = 'The version attribute is required',
	status : Boolean = 
			self.version <> null
}.status"/> + <details key="dateAttributeRequired" value="Tuple {
	message : String = 'The date attribute is required',
	status : Boolean = 
			self.date <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EReference" name="serviceNsUsage" ordered="false" upperBound="-1" eType="#//ServiceNsUsage" unsettable="true" containment="true" resolveProxies="false" eOpposite="#//ServiceNsUsage/applicableServiceNS"> @@ -352,6 +377,12 @@ <details key="name" value="tBasicType"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="descID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -408,10 +439,11 @@ <details key="kind" value="elementOnly"/> </eAnnotations> <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> - <details key="constraints" value="uniqueCDCChild"/> + <details key="constraints" value="uniqueCDCChild nameAttributeRequired"/> </eAnnotations> <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> <details key="uniqueCDCChild" value="Tuple {
	message : String = 'For a CDC, there shall not be two sub-elements (SubDataObject or DataAttribute) with same name.',
	status : Boolean = 
			let names : Bag(String) = self.subDataObject.name->union(self.dataAttribute.name) in names->size() = names->asSet()->size()
}.status"/> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> </eAnnotations> <eStructuralFeatures xsi:type="ecore:EReference" name="subDataObject" ordered="false" upperBound="-1" eType="#//SubDataObject" unsettable="true" containment="true" @@ -513,6 +545,12 @@ <details key="name" value="tChanges"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="versionAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="versionAttributeRequired" value="Tuple {
	message : String = 'The version attribute is required',
	status : Boolean = 
			self.version <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="changesID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -567,10 +605,11 @@ <details key="kind" value="elementOnly"/> </eAnnotations> <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> - <details key="constraints" value="uniqueSubDataAttribute"/> + <details key="constraints" value="uniqueSubDataAttribute nameAttributeRequired"/> </eAnnotations> <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> <details key="uniqueSubDataAttribute" value="Tuple {
	message : String = 'For a ConstructedAttribute, there shall not be two SubDataAttribute sub-elements with same name.',
	status : Boolean = 
			self.subDataAttribute->isUnique( s : SubDataAttribute | s.name )
}.status"/> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> </eAnnotations> <eStructuralFeatures xsi:type="ecore:EReference" name="subDataAttribute" ordered="false" upperBound="-1" eType="#//SubDataAttribute" unsettable="true" containment="true" @@ -665,6 +704,13 @@ <details key="name" value="tDataAttribute"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired fcAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + <details key="fcAttributeRequired" value="Tuple {
	message : String = 'The fc attribute is required',
	status : Boolean = 
			self.fc <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="fc" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -711,6 +757,13 @@ <details key="name" value="tDataObject"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired typeAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + <details key="typeAttributeRequired" value="Tuple {
	message : String = 'The type attribute is required',
	status : Boolean = 
			self.type <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -749,6 +802,12 @@ <details key="name" value="tDataSetMemberOf"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="cbAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="cbAttributeRequired" value="Tuple {
	message : String = 'The cb attribute is required',
	status : Boolean = 
			self.cb <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="cb" eType="#//CBKind" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> <details key="kind" value="attribute"/> @@ -790,6 +849,12 @@ <details key="name" value="tDoc"/> <details key="kind" value="mixed"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="idAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="idAttributeRequired" value="Tuple {
	message : String = 'The id attribute is required',
	status : Boolean = 
			self.id <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="mixed" unique="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -860,11 +925,12 @@ <details key="kind" value="elementOnly"/> </eAnnotations> <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> - <details key="constraints" value="uniqueLiteralName uniqueLiteralVal"/> + <details key="constraints" value="uniqueLiteralName uniqueLiteralVal nameAttributeRequired"/> </eAnnotations> <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> <details key="uniqueLiteralName" value="Tuple {
	message : String = 'For an Enumeration, there shall not be two Literal sub-elements with same name.',
	status : Boolean = 
			-- TODO: inherited literals should be taken into account
			-- For this, explicit links have to be created first
			self.literal->isUnique( l : Literal | l.name )
}.status"/> <details key="uniqueLiteralVal" value="Tuple {
	message : String = 'For an Enumeration, there shall not be two Literal sub-elements with same literalVal.',
	status : Boolean = 
			self.literal->isUnique( l : Literal | l.literalVal )
}.status"/> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> </eAnnotations> <eStructuralFeatures xsi:type="ecore:EReference" name="literal" ordered="false" upperBound="-1" eType="#//Literal" unsettable="true" containment="true" resolveProxies="false" @@ -927,6 +993,12 @@ <details key="name" value="tFunctionalConstraint"/> <details key="kind" value="elementOnly"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="abbreviationAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="abbreviationAttributeRequired" value="Tuple {
	message : String = 'The abbreviation attribute is required',
	status : Boolean = 
			self.abbreviation <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EReference" name="applicableServices" ordered="false" eType="#//ApplicableServices" unsettable="true" containment="true" resolveProxies="false" eOpposite="#//ApplicableServices/functionalConstraint"> @@ -1039,6 +1111,13 @@ <details key="name" value="tLiteral"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired literalValAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + <details key="literalValAttributeRequired" value="Tuple {
	message : String = 'The literalVal attribute is required',
	status : Boolean = 
			self.literalVal <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="literalVal" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Int" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1062,6 +1141,12 @@ <details key="name" value="tLNClass"/> <details key="kind" value="elementOnly"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="canHaveLOG" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//Boolean" defaultValueLiteral="false" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1255,6 +1340,12 @@ <details key="name" value="tNSDoc"/> <details key="kind" value="elementOnly"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="langAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="langAttributeRequired" value="Tuple {
	message : String = 'The lang attribute is required',
	status : Boolean = 
			self.lang <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EReference" name="doc" ordered="false" upperBound="-1" eType="#//Doc" unsettable="true" containment="true" resolveProxies="false" eOpposite="#//Doc/nSDoc"> @@ -1277,6 +1368,12 @@ <details key="name" value="tPresenceCondition"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="argument" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1411,6 +1508,12 @@ <details key="name" value="tServiceCDC"/> <details key="kind" value="elementOnly"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="cdcAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="cdcAttributeRequired" value="Tuple {
	message : String = 'The cdc attribute is required',
	status : Boolean = 
			self.cdc <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EReference" name="serviceDataAttribute" ordered="false" upperBound="-1" eType="#//ServiceDataAttribute" unsettable="true" containment="true" resolveProxies="false" eOpposite="#//ServiceDataAttribute/serviceCDC"> @@ -1496,6 +1599,13 @@ <details key="name" value="tServiceDataAttribute"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired fcAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + <details key="fcAttributeRequired" value="Tuple {
	message : String = 'The fc attribute is required',
	status : Boolean = 
			self.fc <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="fc" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1605,6 +1715,12 @@ <details key="name" value="tServiceParameter"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1638,6 +1754,12 @@ <details key="name" value="tSubDataAttribute"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1657,6 +1779,13 @@ <details key="name" value="tSubDataObject"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="nameAttributeRequired typeAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="nameAttributeRequired" value="Tuple {
	message : String = 'The name attribute is required',
	status : Boolean = 
			self.name <> null
}.status"/> + <details key="typeAttributeRequired" value="Tuple {
	message : String = 'The type attribute is required',
	status : Boolean = 
			self.type <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="name" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1690,6 +1819,12 @@ <details key="name" value="tTitledClass"/> <details key="kind" value="empty"/> </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="titleIDAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="titleIDAttributeRequired" value="Tuple {
	message : String = 'The titleID attribute is required',
	status : Boolean = 
			self.titleID <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="titleID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1727,6 +1862,13 @@ defaultValueLiteral="false"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="AgNSIdentification" abstract="true"> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore"> + <details key="constraints" value="idAttributeRequired versionAttributeRequired"/> + </eAnnotations> + <eAnnotations source="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"> + <details key="idAttributeRequired" value="Tuple {
	message : String = 'The id attribute is required',
	status : Boolean = 
			self.id <> null
}.status"/> + <details key="versionAttributeRequired" value="Tuple {
	message : String = 'The version attribute is required',
	status : Boolean = 
			self.version <> null
}.status"/> + </eAnnotations> <eStructuralFeatures xsi:type="ecore:EAttribute" name="release" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject" defaultValueLiteral="1" unsettable="true"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviation.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviation.java index 1257c7456265cf326289011e8065dbbc6c6590b3..b41109e3e1b56c216f363be484589d04b2213535 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviation.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Abbreviation.java @@ -35,6 +35,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbbreviation() * @model extendedMetaData="name='tAbbreviation' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface Abbreviation extends NsdObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java index b38ce0e15d5283213a6d6149d7d8bd97b6d06366..24a46768fda4613be601135645fe41a331f2d215 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java @@ -37,6 +37,8 @@ import org.eclipse.emf.common.util.EList; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbstractLNClass() * @model extendedMetaData="name='tAbstractLNClass' kind='elementOnly'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface AbstractLNClass extends AnyLNClass { @@ -53,6 +55,7 @@ public interface AbstractLNClass extends AnyLNClass { * extendedMetaData="kind='attribute' name='name'" * @generated */ + @Override String getName(); /** @@ -106,6 +109,7 @@ public interface AbstractLNClass extends AnyLNClass { * @model opposite="abstractLNClass" resolveProxies="false" unsettable="true" ordered="false" * @generated */ + @Override LNClasses getLNClasses(); /** diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AgNSIdentification.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AgNSIdentification.java index 2d18bbe676f96712a9754fc9093aadfa45f1bbd1..6445184f984429189c5bbbee589074bfa7934893 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AgNSIdentification.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AgNSIdentification.java @@ -39,6 +39,8 @@ import org.eclipse.emf.ecore.EObject; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAgNSIdentification() * @model abstract="true" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='idAttributeRequired versionAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot idAttributeRequired='Tuple {\n\tmessage : String = \'The id attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.id <> null\n}.status' versionAttributeRequired='Tuple {\n\tmessage : String = \'The version attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.version <> null\n}.status'" * @generated */ public interface AgNSIdentification extends EObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServiceNS.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServiceNS.java index e5b55ae61ef2feb8222c64ac48b7055820601173..c280ef334dcb7f19605c58d3f098fce0554e8374 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServiceNS.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ApplicableServiceNS.java @@ -39,6 +39,8 @@ import org.eclipse.emf.common.util.EList; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getApplicableServiceNS() * @model extendedMetaData="name='tApplicableServiceNS' kind='elementOnly'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='versionAttributeRequired dateAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot versionAttributeRequired='Tuple {\n\tmessage : String = \'The version attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.version <> null\n}.status' dateAttributeRequired='Tuple {\n\tmessage : String = \'The date attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.date <> null\n}.status'" * @generated */ public interface ApplicableServiceNS extends Copyrighted { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicType.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicType.java index 07c227392989575730ac8722081de8c1d1a889cf..99bef51bc5ecf70bc5edd3cfb66248dee50ea950 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicType.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/BasicType.java @@ -35,6 +35,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicType() * @model extendedMetaData="name='tBasicType' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface BasicType extends NsdObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDC.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDC.java index 51e6df9bc22bd4103d5e2f756f42361a416f9549..c69436c4de099d0a96f65040948a542d16e0362a 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDC.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/CDC.java @@ -45,8 +45,8 @@ import org.eclipse.emf.common.util.EList; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getCDC() * @model extendedMetaData="name='tCDC' kind='elementOnly'" - * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='uniqueCDCChild'" - * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot uniqueCDCChild='Tuple {\n\tmessage : String = \'For a CDC, there shall not be two sub-elements (SubDataObject or DataAttribute) with same name.\',\n\tstatus : Boolean = \n\t\t\tlet names : Bag(String) = self.subDataObject.name->union(self.dataAttribute.name) in names->size() = names->asSet()->size()\n}.status'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='uniqueCDCChild nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot uniqueCDCChild='Tuple {\n\tmessage : String = \'For a CDC, there shall not be two sub-elements (SubDataObject or DataAttribute) with same name.\',\n\tstatus : Boolean = \n\t\t\tlet names : Bag(String) = self.subDataObject.name->union(self.dataAttribute.name) in names->size() = names->asSet()->size()\n}.status' nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface CDC extends TitledClass { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Changes.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Changes.java index d4d24a5ac706ce1f75609c178247e339b25591d1..4fd10eaeead81c59c7c32d0b6aada9ad94950758 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Changes.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Changes.java @@ -42,6 +42,8 @@ import javax.xml.datatype.XMLGregorianCalendar; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getChanges() * @model extendedMetaData="name='tChanges' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='versionAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot versionAttributeRequired='Tuple {\n\tmessage : String = \'The version attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.version <> null\n}.status'" * @generated */ public interface Changes extends NsdObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttribute.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttribute.java index 2a778874f6c042518eb20561d25af8b06096863b..a30b56cca0931a1d95a7514601e3218b031ed8c4 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttribute.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ConstructedAttribute.java @@ -38,8 +38,8 @@ import org.eclipse.emf.common.util.EList; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getConstructedAttribute() * @model extendedMetaData="name='tConstructedAttribute' kind='elementOnly'" - * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='uniqueSubDataAttribute'" - * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot uniqueSubDataAttribute='Tuple {\n\tmessage : String = \'For a ConstructedAttribute, there shall not be two SubDataAttribute sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\tself.subDataAttribute->isUnique( s : SubDataAttribute | s.name )\n}.status'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='uniqueSubDataAttribute nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot uniqueSubDataAttribute='Tuple {\n\tmessage : String = \'For a ConstructedAttribute, there shall not be two SubDataAttribute sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\tself.subDataAttribute->isUnique( s : SubDataAttribute | s.name )\n}.status' nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface ConstructedAttribute extends TitledClass { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataAttribute.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataAttribute.java index 811a3256217b2e719e3d2657e6c0a63385461642..b397091faa6ad3bb16c40d73d8a7785cd4dbf49e 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataAttribute.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataAttribute.java @@ -45,6 +45,8 @@ import org.eclipse.emf.common.util.EList; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute() * @model extendedMetaData="name='tDataAttribute' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired fcAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status' fcAttributeRequired='Tuple {\n\tmessage : String = \'The fc attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.fc <> null\n}.status'" * @generated */ public interface DataAttribute diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataObject.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataObject.java index f4b20dbfcacee1bad1848a0774470722091ff8bd..b2f41fabf6d48c849240e31ed5383e2b2abea2c5 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataObject.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataObject.java @@ -39,6 +39,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataObject() * @model extendedMetaData="name='tDataObject' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired typeAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status' typeAttributeRequired='Tuple {\n\tmessage : String = \'The type attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.type <> null\n}.status'" * @generated */ public interface DataObject diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataSetMemberOf.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataSetMemberOf.java index 138042321e581b68bfce425f2e64bc3fa159a676..a48b778a88bee09d8614bcfdf9bc615c625f5654 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataSetMemberOf.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DataSetMemberOf.java @@ -34,6 +34,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataSetMemberOf() * @model extendedMetaData="name='tDataSetMemberOf' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='cbAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot cbAttributeRequired='Tuple {\n\tmessage : String = \'The cb attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.cb <> null\n}.status'" * @generated */ public interface DataSetMemberOf extends NsdObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java index c6a97f48d93456346aae6fe4777dd8837610e7ea..01de3afa137a2468a6cb2a3e93b49e85153fb859 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Doc.java @@ -39,6 +39,8 @@ import org.eclipse.emf.ecore.util.FeatureMap; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDoc() * @model extendedMetaData="name='tDoc' kind='mixed'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='idAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot idAttributeRequired='Tuple {\n\tmessage : String = \'The id attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.id <> null\n}.status'" * @generated */ public interface Doc extends NsdObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumeration.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumeration.java index 70c4fc8ffe98123ed0da1f9bb445bed9740cdfc0..cae9b0c5ffeed7e2b5d8d1e615e68fe947f75042 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumeration.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Enumeration.java @@ -40,8 +40,8 @@ import org.eclipse.emf.common.util.EList; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumeration() * @model extendedMetaData="name='tEnumeration' kind='elementOnly'" - * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='uniqueLiteralName uniqueLiteralVal'" - * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot uniqueLiteralName='Tuple {\n\tmessage : String = \'For an Enumeration, there shall not be two Literal sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\t-- TODO: inherited literals should be taken into account\n\t\t\t-- For this, explicit links have to be created first\n\t\t\tself.literal->isUnique( l : Literal | l.name )\n}.status' uniqueLiteralVal='Tuple {\n\tmessage : String = \'For an Enumeration, there shall not be two Literal sub-elements with same literalVal.\',\n\tstatus : Boolean = \n\t\t\tself.literal->isUnique( l : Literal | l.literalVal )\n}.status'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='uniqueLiteralName uniqueLiteralVal nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot uniqueLiteralName='Tuple {\n\tmessage : String = \'For an Enumeration, there shall not be two Literal sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\t-- TODO: inherited literals should be taken into account\n\t\t\t-- For this, explicit links have to be created first\n\t\t\tself.literal->isUnique( l : Literal | l.name )\n}.status' uniqueLiteralVal='Tuple {\n\tmessage : String = \'For an Enumeration, there shall not be two Literal sub-elements with same literalVal.\',\n\tstatus : Boolean = \n\t\t\tself.literal->isUnique( l : Literal | l.literalVal )\n}.status' nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface Enumeration extends TitledClass { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraint.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraint.java index 1f31a47a3279dccd7e071a0ab0ef1d09a75b87b4..d2947dbc723dfe3805eb63d8c6d35d9dcde2f34a 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraint.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/FunctionalConstraint.java @@ -40,6 +40,8 @@ import org.eclipse.emf.common.util.EList; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getFunctionalConstraint() * @model extendedMetaData="name='tFunctionalConstraint' kind='elementOnly'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='abbreviationAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot abbreviationAttributeRequired='Tuple {\n\tmessage : String = \'The abbreviation attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.abbreviation <> null\n}.status'" * @generated */ public interface FunctionalConstraint extends NsdObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClass.java index dce00637178c587d985a4d1d9d5df2ddede96672..c4e2fa8dd4d503646b2e7595c744e745a69462e6 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClass.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/LNClass.java @@ -36,6 +36,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLNClass() * @model extendedMetaData="name='tLNClass' kind='elementOnly'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface LNClass extends AnyLNClass { @@ -154,6 +156,7 @@ public interface LNClass extends AnyLNClass { * extendedMetaData="kind='attribute' name='name'" * @generated */ + @Override String getName(); /** @@ -207,6 +210,7 @@ public interface LNClass extends AnyLNClass { * @model opposite="lNClass" resolveProxies="false" unsettable="true" ordered="false" * @generated */ + @Override LNClasses getLNClasses(); /** diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Literal.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Literal.java index 050a7d66cffde8d3f544f94d370da55906a1f9a0..cb44fa57eb10c8ce5989ea80a2e3e3fc2fdfaa76 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Literal.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/Literal.java @@ -35,6 +35,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getLiteral() * @model extendedMetaData="name='tLiteral' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired literalValAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status' literalValAttributeRequired='Tuple {\n\tmessage : String = \'The literalVal attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.literalVal <> null\n}.status'" * @generated */ public interface Literal extends DocumentedClass { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NSDoc.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NSDoc.java index d3e989307bc1fd436ab5197528df53661320d061..db0b927b2b8f0ced83e2831f80d95771a82d0919 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NSDoc.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NSDoc.java @@ -36,6 +36,8 @@ import org.eclipse.emf.common.util.EList; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getNSDoc() * @model extendedMetaData="name='tNSDoc' kind='elementOnly'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='langAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot langAttributeRequired='Tuple {\n\tmessage : String = \'The lang attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.lang <> null\n}.status'" * @generated */ public interface NSDoc extends Copyrighted, AgNSIdentification, AgUML { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceCondition.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceCondition.java index cd38b29dec62d071256f605fa1f4c3f45b7fecef..328d7f5e6ba1132527a730f5ec2c166b253c782d 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceCondition.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/PresenceCondition.java @@ -44,6 +44,8 @@ import org.eclipse.emf.common.util.EList; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceCondition() * @model extendedMetaData="name='tPresenceCondition' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface PresenceCondition extends NsdObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDC.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDC.java index fc4dca8ea1bebf758b45f49a4a346cfabc361d16..37382165b5c4c467660915f5f336d989820fd409 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDC.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceCDC.java @@ -38,6 +38,8 @@ import org.eclipse.emf.common.util.EList; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceCDC() * @model extendedMetaData="name='tServiceCDC' kind='elementOnly'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='cdcAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot cdcAttributeRequired='Tuple {\n\tmessage : String = \'The cdc attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.cdc <> null\n}.status'" * @generated */ public interface ServiceCDC extends NsdObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceDataAttribute.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceDataAttribute.java index ff6f7bea86170c976ef314a606c53e28df20ba6d..9ec2fedfe82459d03754cea5437df571323f84ba 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceDataAttribute.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceDataAttribute.java @@ -35,6 +35,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceDataAttribute() * @model extendedMetaData="name='tServiceDataAttribute' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired fcAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status' fcAttributeRequired='Tuple {\n\tmessage : String = \'The fc attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.fc <> null\n}.status'" * @generated */ public interface ServiceDataAttribute extends DocumentedClass, AgPresenceCondition, AgAttributeType, AgUnderlyingType { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceParameter.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceParameter.java index f568ab206940bc7ef0eaaa6c68737c46cb153268..f35130467f8a5f92217d45c74f9e504436409762 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceParameter.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceParameter.java @@ -34,6 +34,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceParameter() * @model extendedMetaData="name='tServiceParameter' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface ServiceParameter extends DocumentedClass, AgAttributeTypeAndValues { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceType.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceType.java index 027917e6b72b79f9064281be4ef5551bb27555e1..7b190ca7ac98e90c02937be071f75e004852279d 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceType.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/ServiceType.java @@ -34,6 +34,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getServiceType() * @model extendedMetaData="name='Service_._type' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface ServiceType extends NsdObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataAttribute.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataAttribute.java index d5790f8ddaaf31152e8b787df3c2583073ab09d9..c4307d68c6e0197f7f791e711f260c5739739c50 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataAttribute.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataAttribute.java @@ -35,6 +35,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute() * @model extendedMetaData="name='tSubDataAttribute' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated */ public interface SubDataAttribute extends DocumentedClass, AgPresenceCondition, AgArray, AgAttributeTypeAndValues { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataObject.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataObject.java index 17aa9e49a3c5a595e786a0bf0e63efe7e454bc24..0e59653c324c04935a1bb0883ae1ee55a3a8b7ac 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataObject.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/SubDataObject.java @@ -39,6 +39,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataObject() * @model extendedMetaData="name='tSubDataObject' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired typeAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status' typeAttributeRequired='Tuple {\n\tmessage : String = \'The type attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.type <> null\n}.status'" * @generated */ public interface SubDataObject extends DocumentedClass, AgPresenceCondition, AgArray, AgUnderlyingType { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java index 5689e87089463d308df1d52d3b61335f2b19fb5e..b1f077d50ffa89ff4a0e91cc0bb56762b0d28fd4 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java @@ -33,6 +33,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getTitledClass() * @model extendedMetaData="name='tTitledClass' kind='empty'" + * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='titleIDAttributeRequired'" + * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot titleIDAttributeRequired='Tuple {\n\tmessage : String = \'The titleID attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.titleID <> null\n}.status'" * @generated */ public interface TitledClass extends DocumentedClass { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java index 21b48d74b16c9d41bc6163f34258c353707fff6f..8e5091c9e50859895ce36da0a8d519a0f322b9de 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdPackageImpl.java @@ -5252,22 +5252,53 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { new String[] { "invocationDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "settingDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "validationDelegates", "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot" } ); + addAnnotation( serviceTypeEClass, source, new String[] { "constraints", "nameAttributeRequired" } ); + addAnnotation( abbreviationEClass, source, new String[] { "constraints", "nameAttributeRequired" } ); addAnnotation( abbreviationsEClass, source, new String[] { "constraints", "uniqueAbbreviation" } ); + addAnnotation( abstractLNClassEClass, source, new String[] { "constraints", "nameAttributeRequired" } ); addAnnotation( anyLNClassEClass, source, new String[] { "constraints", "uniqueDataObject" } ); + addAnnotation( applicableServiceNSEClass, source, + new String[] { "constraints", "versionAttributeRequired dateAttributeRequired" } ); addAnnotation( applicableServicesEClass, source, new String[] { "constraints", "uniqueDataSetMemberOf uniqueService" } ); - addAnnotation( cdcEClass, source, new String[] { "constraints", "uniqueCDCChild" } ); + addAnnotation( basicTypeEClass, source, new String[] { "constraints", "nameAttributeRequired" } ); + addAnnotation( cdcEClass, source, new String[] { "constraints", "uniqueCDCChild nameAttributeRequired" } ); addAnnotation( cdCsEClass, source, new String[] { "constraints", "uniqueCDC" } ); - addAnnotation( constructedAttributeEClass, source, new String[] { "constraints", "uniqueSubDataAttribute" } ); + addAnnotation( changesEClass, source, new String[] { "constraints", "versionAttributeRequired" } ); + addAnnotation( constructedAttributeEClass, source, + new String[] { "constraints", "uniqueSubDataAttribute nameAttributeRequired" } ); addAnnotation( constructedAttributesEClass, source, new String[] { "constraints", "uniqueConstructedAttribute" } ); + addAnnotation( dataAttributeEClass, source, + new String[] { "constraints", "nameAttributeRequired fcAttributeRequired" } ); + addAnnotation( dataObjectEClass, source, + new String[] { "constraints", "nameAttributeRequired typeAttributeRequired" } ); + addAnnotation( dataSetMemberOfEClass, source, new String[] { "constraints", "cbAttributeRequired" } ); + addAnnotation( docEClass, source, new String[] { "constraints", "idAttributeRequired" } ); addAnnotation( enumerationEClass, source, - new String[] { "constraints", "uniqueLiteralName uniqueLiteralVal" } ); + new String[] { "constraints", "uniqueLiteralName uniqueLiteralVal nameAttributeRequired" } ); addAnnotation( enumerationsEClass, source, new String[] { "constraints", "uniqueEnumeration" } ); + addAnnotation( functionalConstraintEClass, source, + new String[] { "constraints", "abbreviationAttributeRequired" } ); addAnnotation( functionalConstraintsEClass, source, new String[] { "constraints", "uniqueFunctionalConstraint" } ); + addAnnotation( literalEClass, source, + new String[] { "constraints", "nameAttributeRequired literalValAttributeRequired" } ); + addAnnotation( lnClassEClass, source, new String[] { "constraints", "nameAttributeRequired" } ); addAnnotation( lnClassesEClass, source, new String[] { "constraints", "uniqueAbstractLNClass uniqueLNClass" } ); + addAnnotation( nsDocEClass, source, new String[] { "constraints", "langAttributeRequired" } ); + addAnnotation( presenceConditionEClass, source, new String[] { "constraints", "nameAttributeRequired" } ); addAnnotation( presenceConditionsEClass, source, new String[] { "constraints", "uniquePresenceCondition" } ); + addAnnotation( serviceCDCEClass, source, new String[] { "constraints", "cdcAttributeRequired" } ); + addAnnotation( serviceDataAttributeEClass, source, + new String[] { "constraints", "nameAttributeRequired fcAttributeRequired" } ); + addAnnotation( serviceParameterEClass, source, new String[] { "constraints", "nameAttributeRequired" } ); + addAnnotation( subDataAttributeEClass, source, new String[] { "constraints", "nameAttributeRequired" } ); + addAnnotation( subDataObjectEClass, source, + new String[] { "constraints", "nameAttributeRequired typeAttributeRequired" } ); + addAnnotation( titledClassEClass, source, new String[] { "constraints", "titleIDAttributeRequired" } ); + addAnnotation( agNSIdentificationEClass, source, + new String[] { "constraints", "idAttributeRequired versionAttributeRequired" } ); } /** @@ -5598,36 +5629,100 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { */ protected void createPivotAnnotations() { String source = "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot"; + addAnnotation( serviceTypeEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); + addAnnotation( abbreviationEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); addAnnotation( abbreviationsEClass, source, new String[] { "uniqueAbbreviation", "Tuple {\n\tmessage : String = \'There shall not be two Abbreviations elements with same name.\',\n\tstatus : Boolean = \n\t\t\tself.abbreviation->isUnique( a : Abbreviation | a.name )\n}.status" } ); + addAnnotation( abstractLNClassEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); addAnnotation( anyLNClassEClass, source, new String[] { "uniqueDataObject", "Tuple {\n\tmessage : String = \'For an AnyLNClass, there shall not be two DataObject sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\t-- TODO: base AbstractLNClass should be taken into account\n\t\t\t-- For this, explicit links have to be created first\n\t\t\tself.dataObject->isUnique( d : DataObject | d.name )\n}.status" } ); + addAnnotation( applicableServiceNSEClass, source, new String[] { "versionAttributeRequired", + "Tuple {\n\tmessage : String = \'The version attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.version <> null\n}.status", + "dateAttributeRequired", + "Tuple {\n\tmessage : String = \'The date attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.date <> null\n}.status" } ); addAnnotation( applicableServicesEClass, source, new String[] { "uniqueDataSetMemberOf", "Tuple {\n\tmessage : String = \'For an ApplicableServices, there shall not be two DataSetMemberOf sub-elements with same cb.\',\n\tstatus : Boolean = \n\t\t\tself.dataSetMemberOf->isUnique( d : DataSetMemberOf | d.cb )\n}.status", "uniqueService", "Tuple {\n\tmessage : String = \'For an ApplicableServices, there shall not be two ServiceType sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\tself.service->isUnique( s : ServiceType | s.name )\n}.status" } ); + addAnnotation( basicTypeEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); addAnnotation( cdcEClass, source, new String[] { "uniqueCDCChild", - "Tuple {\n\tmessage : String = \'For a CDC, there shall not be two sub-elements (SubDataObject or DataAttribute) with same name.\',\n\tstatus : Boolean = \n\t\t\tlet names : Bag(String) = self.subDataObject.name->union(self.dataAttribute.name) in names->size() = names->asSet()->size()\n}.status" } ); + "Tuple {\n\tmessage : String = \'For a CDC, there shall not be two sub-elements (SubDataObject or DataAttribute) with same name.\',\n\tstatus : Boolean = \n\t\t\tlet names : Bag(String) = self.subDataObject.name->union(self.dataAttribute.name) in names->size() = names->asSet()->size()\n}.status", + "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); addAnnotation( cdCsEClass, source, new String[] { "uniqueCDC", "Tuple {\n\tmessage : String = \'Within an NS, there shall not be two CDC sub-elements with same name and (if defined) variant.\',\n\tstatus : Boolean = \n\t\t\t-- TODO: DependsOn NS should be taken into account ?\n\t\t\t-- For this, explicit links have to be created first\n\t\t\t-- Then, may be this constraint should be in NS and not in Enumerations ?\n\t\t\tself.cDC->select( c : CDC | c.variant = null )->isUnique( c : CDC | c.name )\n\t or self.cDC->select( c : CDC | c.variant <> null )->forAll( c1, c2 : CDC | c1 <> c2 implies c1.name <> c2.name or c1.variant <> c2.variant )\n}.status" } ); + addAnnotation( changesEClass, source, new String[] { "versionAttributeRequired", + "Tuple {\n\tmessage : String = \'The version attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.version <> null\n}.status" } ); addAnnotation( constructedAttributeEClass, source, new String[] { "uniqueSubDataAttribute", - "Tuple {\n\tmessage : String = \'For a ConstructedAttribute, there shall not be two SubDataAttribute sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\tself.subDataAttribute->isUnique( s : SubDataAttribute | s.name )\n}.status" } ); + "Tuple {\n\tmessage : String = \'For a ConstructedAttribute, there shall not be two SubDataAttribute sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\tself.subDataAttribute->isUnique( s : SubDataAttribute | s.name )\n}.status", + "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); addAnnotation( constructedAttributesEClass, source, new String[] { "uniqueConstructedAttribute", "Tuple {\n\tmessage : String = \'Within an NS, there shall not be two ConstructedAttribute sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\t-- TODO: DependsOn NS should be taken into account ?\n\t\t\t-- For this, explicit links have to be created first\n\t\t\t-- Then, may be this constraint should be in NS and not in Enumerations ?\n\t\t\tself.constructedAttribute->isUnique( c : ConstructedAttribute | c.name )\n}.status" } ); + addAnnotation( dataAttributeEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status", + "fcAttributeRequired", + "Tuple {\n\tmessage : String = \'The fc attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.fc <> null\n}.status" } ); + addAnnotation( dataObjectEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status", + "typeAttributeRequired", + "Tuple {\n\tmessage : String = \'The type attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.type <> null\n}.status" } ); + addAnnotation( dataSetMemberOfEClass, source, new String[] { "cbAttributeRequired", + "Tuple {\n\tmessage : String = \'The cb attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.cb <> null\n}.status" } ); + addAnnotation( docEClass, source, new String[] { "idAttributeRequired", + "Tuple {\n\tmessage : String = \'The id attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.id <> null\n}.status" } ); addAnnotation( enumerationEClass, source, new String[] { "uniqueLiteralName", "Tuple {\n\tmessage : String = \'For an Enumeration, there shall not be two Literal sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\t-- TODO: inherited literals should be taken into account\n\t\t\t-- For this, explicit links have to be created first\n\t\t\tself.literal->isUnique( l : Literal | l.name )\n}.status", "uniqueLiteralVal", - "Tuple {\n\tmessage : String = \'For an Enumeration, there shall not be two Literal sub-elements with same literalVal.\',\n\tstatus : Boolean = \n\t\t\tself.literal->isUnique( l : Literal | l.literalVal )\n}.status" } ); + "Tuple {\n\tmessage : String = \'For an Enumeration, there shall not be two Literal sub-elements with same literalVal.\',\n\tstatus : Boolean = \n\t\t\tself.literal->isUnique( l : Literal | l.literalVal )\n}.status", + "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); addAnnotation( enumerationsEClass, source, new String[] { "uniqueEnumeration", "Tuple {\n\tmessage : String = \'Within an NS, there shall not be two Enumeration sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\t-- TODO: DependsOn NS should be taken into account ?\n\t\t\t-- For this, explicit links have to be created first\n\t\t\t-- Then, may be this constraint should be in NS and not in Enumerations ?\n\t\t\tself.enumeration->isUnique( e : Enumeration | e.name )\n}.status" } ); + addAnnotation( functionalConstraintEClass, source, new String[] { "abbreviationAttributeRequired", + "Tuple {\n\tmessage : String = \'The abbreviation attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.abbreviation <> null\n}.status" } ); addAnnotation( functionalConstraintsEClass, source, new String[] { "uniqueFunctionalConstraint", "Tuple {\n\tmessage : String = \'There shall not be two FunctionalConstraint elements with same abbreviation.\',\n\tstatus : Boolean = \n\t\t\tself.functionalConstraint->isUnique( f : FunctionalConstraint | f.abbreviation )\n}.status" } ); + addAnnotation( literalEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status", + "literalValAttributeRequired", + "Tuple {\n\tmessage : String = \'The literalVal attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.literalVal <> null\n}.status" } ); + addAnnotation( lnClassEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); addAnnotation( lnClassesEClass, source, new String[] { "uniqueAbstractLNClass", "Tuple {\n\tmessage : String = \'Within an NS, there shall not be two AbstractLNClass sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\tself.abstractLNClass->isUnique( c : AbstractLNClass | c.name )\n}.status", "uniqueLNClass", "Tuple {\n\tmessage : String = \'Within an NS, there shall not be two LNClass sub-elements with same name.\',\n\tstatus : Boolean = \n\t\t\tself.lNClass->isUnique( c : LNClass | c.name )\n}.status" } ); + addAnnotation( nsDocEClass, source, new String[] { "langAttributeRequired", + "Tuple {\n\tmessage : String = \'The lang attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.lang <> null\n}.status" } ); + addAnnotation( presenceConditionEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); addAnnotation( presenceConditionsEClass, source, new String[] { "uniquePresenceCondition", "Tuple {\n\tmessage : String = \'There shall not be two PresenceCondition elements with same name.\',\n\tstatus : Boolean = \n\t\t\tself.presenceCondition->isUnique( p : PresenceCondition | p.name )\n}.status" } ); + addAnnotation( serviceCDCEClass, source, new String[] { "cdcAttributeRequired", + "Tuple {\n\tmessage : String = \'The cdc attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.cdc <> null\n}.status" } ); + addAnnotation( serviceDataAttributeEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status", + "fcAttributeRequired", + "Tuple {\n\tmessage : String = \'The fc attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.fc <> null\n}.status" } ); + addAnnotation( serviceParameterEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); + addAnnotation( subDataAttributeEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status" } ); + addAnnotation( subDataObjectEClass, source, new String[] { "nameAttributeRequired", + "Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status", + "typeAttributeRequired", + "Tuple {\n\tmessage : String = \'The type attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.type <> null\n}.status" } ); + addAnnotation( titledClassEClass, source, new String[] { "titleIDAttributeRequired", + "Tuple {\n\tmessage : String = \'The titleID attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.titleID <> null\n}.status" } ); + addAnnotation( agNSIdentificationEClass, source, new String[] { "idAttributeRequired", + "Tuple {\n\tmessage : String = \'The id attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.id <> null\n}.status", + "versionAttributeRequired", + "Tuple {\n\tmessage : String = \'The version attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.version <> null\n}.status" } ); } } //NsdPackageImpl diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdValidator.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdValidator.java index 13993e8d789d1a4026e99e34c76e5f455dff9ba0..1010349c0deac20482d308abfe8cadfb8fe2f4ad 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdValidator.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdValidator.java @@ -270,7 +270,25 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateAppliesToType( AppliesToType appliesToType, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( appliesToType, diagnostics, context ); + if( !validate_NoCircularContainment( appliesToType, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( appliesToType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( appliesToType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( appliesToType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( appliesToType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( appliesToType, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( appliesToType, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( appliesToType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( appliesToType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_idAttributeRequired( appliesToType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_versionAttributeRequired( appliesToType, diagnostics, context ); + return result; } /** @@ -280,7 +298,23 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateDependsOn( DependsOn dependsOn, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( dependsOn, diagnostics, context ); + if( !validate_NoCircularContainment( dependsOn, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( dependsOn, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( dependsOn, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( dependsOn, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( dependsOn, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( dependsOn, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( dependsOn, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( dependsOn, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( dependsOn, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_idAttributeRequired( dependsOn, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_versionAttributeRequired( dependsOn, diagnostics, context ); + return result; } /** @@ -300,7 +334,44 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateServiceType( ServiceType serviceType, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( serviceType, diagnostics, context ); + if( !validate_NoCircularContainment( serviceType, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( serviceType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( serviceType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( serviceType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( serviceType, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( serviceType, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( serviceType, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( serviceType, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( serviceType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateServiceType_nameAttributeRequired( serviceType, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Service Type</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String SERVICE_TYPE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Service Type</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateServiceType_nameAttributeRequired( ServiceType serviceType, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.SERVICE_TYPE, serviceType, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + SERVICE_TYPE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -310,7 +381,45 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateAbbreviation( Abbreviation abbreviation, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( abbreviation, diagnostics, context ); + if( !validate_NoCircularContainment( abbreviation, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( abbreviation, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( abbreviation, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( abbreviation, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( abbreviation, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( abbreviation, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( abbreviation, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( abbreviation, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( abbreviation, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAbbreviation_nameAttributeRequired( abbreviation, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Abbreviation</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String ABBREVIATION__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Abbreviation</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateAbbreviation_nameAttributeRequired( Abbreviation abbreviation, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.ABBREVIATION, abbreviation, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + ABBREVIATION__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -384,11 +493,38 @@ public class NsdValidator extends EObjectValidator { if( result || diagnostics != null ) result &= validate_EveryKeyUnique( abstractLNClass, diagnostics, context ); if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( abstractLNClass, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateTitledClass_titleIDAttributeRequired( abstractLNClass, diagnostics, context ); if( result || diagnostics != null ) result &= validateAnyLNClass_uniqueDataObject( abstractLNClass, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAbstractLNClass_nameAttributeRequired( abstractLNClass, diagnostics, context ); return result; } + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Abstract LN Class</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String ABSTRACT_LN_CLASS__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Abstract LN Class</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateAbstractLNClass_nameAttributeRequired( AbstractLNClass abstractLNClass, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.ABSTRACT_LN_CLASS, abstractLNClass, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + ABSTRACT_LN_CLASS__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -408,6 +544,8 @@ public class NsdValidator extends EObjectValidator { if( result || diagnostics != null ) result &= validate_UniqueID( anyLNClass, diagnostics, context ); if( result || diagnostics != null ) result &= validate_EveryKeyUnique( anyLNClass, diagnostics, context ); if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( anyLNClass, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateTitledClass_titleIDAttributeRequired( anyLNClass, diagnostics, context ); if( result || diagnostics != null ) result &= validateAnyLNClass_uniqueDataObject( anyLNClass, diagnostics, context ); return result; @@ -445,7 +583,73 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateApplicableServiceNS( ApplicableServiceNS applicableServiceNS, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( applicableServiceNS, diagnostics, context ); + if( !validate_NoCircularContainment( applicableServiceNS, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( applicableServiceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( applicableServiceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( applicableServiceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( applicableServiceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( applicableServiceNS, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( applicableServiceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryKeyUnique( applicableServiceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( applicableServiceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateApplicableServiceNS_versionAttributeRequired( applicableServiceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateApplicableServiceNS_dateAttributeRequired( applicableServiceNS, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the versionAttributeRequired constraint of '<em>Applicable Service NS</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String APPLICABLE_SERVICE_NS__VERSION_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The version attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.version <> null\n" + "}.status"; + + /** + * Validates the versionAttributeRequired constraint of '<em>Applicable Service NS</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateApplicableServiceNS_versionAttributeRequired( ApplicableServiceNS applicableServiceNS, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.APPLICABLE_SERVICE_NS, applicableServiceNS, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "versionAttributeRequired", + APPLICABLE_SERVICE_NS__VERSION_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, + 0 ); + } + + /** + * The cached validation expression for the dateAttributeRequired constraint of '<em>Applicable Service NS</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String APPLICABLE_SERVICE_NS__DATE_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The date attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.date <> null\n" + "}.status"; + + /** + * Validates the dateAttributeRequired constraint of '<em>Applicable Service NS</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateApplicableServiceNS_dateAttributeRequired( ApplicableServiceNS applicableServiceNS, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.APPLICABLE_SERVICE_NS, applicableServiceNS, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "dateAttributeRequired", + APPLICABLE_SERVICE_NS__DATE_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -531,7 +735,44 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateBasicType( BasicType basicType, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( basicType, diagnostics, context ); + if( !validate_NoCircularContainment( basicType, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( basicType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( basicType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( basicType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( basicType, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( basicType, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( basicType, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( basicType, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( basicType, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateBasicType_nameAttributeRequired( basicType, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Basic Type</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String BASIC_TYPE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Basic Type</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateBasicType_nameAttributeRequired( BasicType basicType, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.BASIC_TYPE, basicType, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + BASIC_TYPE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -560,7 +801,10 @@ public class NsdValidator extends EObjectValidator { if( result || diagnostics != null ) result &= validate_UniqueID( cdc, diagnostics, context ); if( result || diagnostics != null ) result &= validate_EveryKeyUnique( cdc, diagnostics, context ); if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( cdc, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateTitledClass_titleIDAttributeRequired( cdc, diagnostics, context ); if( result || diagnostics != null ) result &= validateCDC_uniqueCDCChild( cdc, diagnostics, context ); + if( result || diagnostics != null ) result &= validateCDC_nameAttributeRequired( cdc, diagnostics, context ); return result; } @@ -588,6 +832,29 @@ public class NsdValidator extends EObjectValidator { Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>CDC</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String CDC__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>CDC</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateCDC_nameAttributeRequired( CDC cdc, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.CDC, cdc, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + CDC__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -641,7 +908,43 @@ public class NsdValidator extends EObjectValidator { * @generated */ public boolean validateChanges( Changes changes, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( changes, diagnostics, context ); + if( !validate_NoCircularContainment( changes, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( changes, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryDataValueConforms( changes, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( changes, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( changes, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( changes, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( changes, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( changes, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( changes, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateChanges_versionAttributeRequired( changes, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the versionAttributeRequired constraint of '<em>Changes</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String CHANGES__VERSION_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The version attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.version <> null\n" + "}.status"; + + /** + * Validates the versionAttributeRequired constraint of '<em>Changes</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateChanges_versionAttributeRequired( Changes changes, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.CHANGES, changes, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "versionAttributeRequired", + CHANGES__VERSION_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -666,8 +969,12 @@ public class NsdValidator extends EObjectValidator { result &= validate_EveryKeyUnique( constructedAttribute, diagnostics, context ); if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( constructedAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateTitledClass_titleIDAttributeRequired( constructedAttribute, diagnostics, context ); if( result || diagnostics != null ) result &= validateConstructedAttribute_uniqueSubDataAttribute( constructedAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateConstructedAttribute_nameAttributeRequired( constructedAttribute, diagnostics, context ); return result; } @@ -695,6 +1002,29 @@ public class NsdValidator extends EObjectValidator { CONSTRUCTED_ATTRIBUTE__UNIQUE_SUB_DATA_ATTRIBUTE__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Constructed Attribute</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String CONSTRUCTED_ATTRIBUTE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Constructed Attribute</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateConstructedAttribute_nameAttributeRequired( ConstructedAttribute constructedAttribute, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.CONSTRUCTED_ATTRIBUTE, constructedAttribute, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + CONSTRUCTED_ATTRIBUTE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -777,46 +1107,71 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateDataAttribute( DataAttribute dataAttribute, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( dataAttribute, diagnostics, context ); + if( !validate_NoCircularContainment( dataAttribute, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( dataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( dataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( dataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( dataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( dataAttribute, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( dataAttribute, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( dataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( dataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateDataAttribute_nameAttributeRequired( dataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateDataAttribute_fcAttributeRequired( dataAttribute, diagnostics, context ); + return result; } /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Data Attribute</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateDataObject( DataObject dataObject, DiagnosticChain diagnostics, - Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( dataObject, diagnostics, context ); - } + protected static final String DATA_ATTRIBUTE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; /** + * Validates the nameAttributeRequired constraint of '<em>Data Attribute</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateDataSetMemberOf( DataSetMemberOf dataSetMemberOf, DiagnosticChain diagnostics, - Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( dataSetMemberOf, diagnostics, context ); + public boolean validateDataAttribute_nameAttributeRequired( DataAttribute dataAttribute, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.DATA_ATTRIBUTE, dataAttribute, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + DATA_ATTRIBUTE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** + * The cached validation expression for the fcAttributeRequired constraint of '<em>Data Attribute</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateDoc( Doc doc, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( doc, diagnostics, context ); - } + protected static final String DATA_ATTRIBUTE__FC_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The fc attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.fc <> null\n" + "}.status"; /** + * Validates the fcAttributeRequired constraint of '<em>Data Attribute</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateDocumentedClass( DocumentedClass documentedClass, DiagnosticChain diagnostics, + public boolean validateDataAttribute_fcAttributeRequired( DataAttribute dataAttribute, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( documentedClass, diagnostics, context ); + return validate( NsdPackage.Literals.DATA_ATTRIBUTE, dataAttribute, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "fcAttributeRequired", + DATA_ATTRIBUTE__FC_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -824,73 +1179,71 @@ public class NsdValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public boolean validateEnumeration( Enumeration enumeration, DiagnosticChain diagnostics, + public boolean validateDataObject( DataObject dataObject, DiagnosticChain diagnostics, Map< Object, Object > context ) { - if( !validate_NoCircularContainment( enumeration, diagnostics, context ) ) return false; - boolean result = validate_EveryMultiplicityConforms( enumeration, diagnostics, context ); + if( !validate_NoCircularContainment( dataObject, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( dataObject, diagnostics, context ); if( result || diagnostics != null ) - result &= validate_EveryDataValueConforms( enumeration, diagnostics, context ); + result &= validate_EveryDataValueConforms( dataObject, diagnostics, context ); if( result || diagnostics != null ) - result &= validate_EveryReferenceIsContained( enumeration, diagnostics, context ); + result &= validate_EveryReferenceIsContained( dataObject, diagnostics, context ); if( result || diagnostics != null ) - result &= validate_EveryBidirectionalReferenceIsPaired( enumeration, diagnostics, context ); - if( result || diagnostics != null ) result &= validate_EveryProxyResolves( enumeration, diagnostics, context ); - if( result || diagnostics != null ) result &= validate_UniqueID( enumeration, diagnostics, context ); - if( result || diagnostics != null ) result &= validate_EveryKeyUnique( enumeration, diagnostics, context ); - if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( enumeration, diagnostics, context ); + result &= validate_EveryBidirectionalReferenceIsPaired( dataObject, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( dataObject, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( dataObject, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( dataObject, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( dataObject, diagnostics, context ); if( result || diagnostics != null ) - result &= validateEnumeration_uniqueLiteralName( enumeration, diagnostics, context ); + result &= validateDataObject_nameAttributeRequired( dataObject, diagnostics, context ); if( result || diagnostics != null ) - result &= validateEnumeration_uniqueLiteralVal( enumeration, diagnostics, context ); + result &= validateDataObject_typeAttributeRequired( dataObject, diagnostics, context ); return result; } /** - * The cached validation expression for the uniqueLiteralName constraint of '<em>Enumeration</em>'. + * The cached validation expression for the nameAttributeRequired constraint of '<em>Data Object</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected static final String ENUMERATION__UNIQUE_LITERAL_NAME__EEXPRESSION = "Tuple {\n" - + "\tmessage : String = 'For an Enumeration, there shall not be two Literal sub-elements with same name.',\n" - + "\tstatus : Boolean = \n" + "\t\t\t-- TODO: inherited literals should be taken into account\n" - + "\t\t\t-- For this, explicit links have to be created first\n" - + "\t\t\tself.literal->isUnique( l : Literal | l.name )\n" + "}.status"; + protected static final String DATA_OBJECT__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; /** - * Validates the uniqueLiteralName constraint of '<em>Enumeration</em>'. + * Validates the nameAttributeRequired constraint of '<em>Data Object</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateEnumeration_uniqueLiteralName( Enumeration enumeration, DiagnosticChain diagnostics, + public boolean validateDataObject_nameAttributeRequired( DataObject dataObject, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate( NsdPackage.Literals.ENUMERATION, enumeration, diagnostics, context, - "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "uniqueLiteralName", - ENUMERATION__UNIQUE_LITERAL_NAME__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + return validate( NsdPackage.Literals.DATA_OBJECT, dataObject, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + DATA_OBJECT__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** - * The cached validation expression for the uniqueLiteralVal constraint of '<em>Enumeration</em>'. + * The cached validation expression for the typeAttributeRequired constraint of '<em>Data Object</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected static final String ENUMERATION__UNIQUE_LITERAL_VAL__EEXPRESSION = "Tuple {\n" - + "\tmessage : String = 'For an Enumeration, there shall not be two Literal sub-elements with same literalVal.',\n" - + "\tstatus : Boolean = \n" + "\t\t\tself.literal->isUnique( l : Literal | l.literalVal )\n" + "}.status"; + protected static final String DATA_OBJECT__TYPE_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The type attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.type <> null\n" + "}.status"; /** - * Validates the uniqueLiteralVal constraint of '<em>Enumeration</em>'. + * Validates the typeAttributeRequired constraint of '<em>Data Object</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateEnumeration_uniqueLiteralVal( Enumeration enumeration, DiagnosticChain diagnostics, + public boolean validateDataObject_typeAttributeRequired( DataObject dataObject, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate( NsdPackage.Literals.ENUMERATION, enumeration, diagnostics, context, - "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "uniqueLiteralVal", - ENUMERATION__UNIQUE_LITERAL_VAL__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + return validate( NsdPackage.Literals.DATA_OBJECT, dataObject, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "typeAttributeRequired", + DATA_OBJECT__TYPE_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -898,50 +1251,253 @@ public class NsdValidator extends EObjectValidator { * <!-- end-user-doc --> * @generated */ - public boolean validateEnumerations( Enumerations enumerations, DiagnosticChain diagnostics, + public boolean validateDataSetMemberOf( DataSetMemberOf dataSetMemberOf, DiagnosticChain diagnostics, Map< Object, Object > context ) { - if( !validate_NoCircularContainment( enumerations, diagnostics, context ) ) return false; - boolean result = validate_EveryMultiplicityConforms( enumerations, diagnostics, context ); + if( !validate_NoCircularContainment( dataSetMemberOf, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( dataSetMemberOf, diagnostics, context ); if( result || diagnostics != null ) - result &= validate_EveryDataValueConforms( enumerations, diagnostics, context ); + result &= validate_EveryDataValueConforms( dataSetMemberOf, diagnostics, context ); if( result || diagnostics != null ) - result &= validate_EveryReferenceIsContained( enumerations, diagnostics, context ); + result &= validate_EveryReferenceIsContained( dataSetMemberOf, diagnostics, context ); if( result || diagnostics != null ) - result &= validate_EveryBidirectionalReferenceIsPaired( enumerations, diagnostics, context ); - if( result || diagnostics != null ) result &= validate_EveryProxyResolves( enumerations, diagnostics, context ); - if( result || diagnostics != null ) result &= validate_UniqueID( enumerations, diagnostics, context ); - if( result || diagnostics != null ) result &= validate_EveryKeyUnique( enumerations, diagnostics, context ); + result &= validate_EveryBidirectionalReferenceIsPaired( dataSetMemberOf, diagnostics, context ); if( result || diagnostics != null ) - result &= validate_EveryMapEntryUnique( enumerations, diagnostics, context ); + result &= validate_EveryProxyResolves( dataSetMemberOf, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( dataSetMemberOf, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( dataSetMemberOf, diagnostics, context ); if( result || diagnostics != null ) - result &= validateEnumerations_uniqueEnumeration( enumerations, diagnostics, context ); + result &= validate_EveryMapEntryUnique( dataSetMemberOf, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateDataSetMemberOf_cbAttributeRequired( dataSetMemberOf, diagnostics, context ); return result; } /** - * The cached validation expression for the uniqueEnumeration constraint of '<em>Enumerations</em>'. + * The cached validation expression for the cbAttributeRequired constraint of '<em>Data Set Member Of</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - protected static final String ENUMERATIONS__UNIQUE_ENUMERATION__EEXPRESSION = "Tuple {\n" - + "\tmessage : String = 'Within an NS, there shall not be two Enumeration sub-elements with same name.',\n" - + "\tstatus : Boolean = \n" + "\t\t\t-- TODO: DependsOn NS should be taken into account ?\n" - + "\t\t\t-- For this, explicit links have to be created first\n" - + "\t\t\t-- Then, may be this constraint should be in NS and not in Enumerations ?\n" - + "\t\t\tself.enumeration->isUnique( e : Enumeration | e.name )\n" + "}.status"; + protected static final String DATA_SET_MEMBER_OF__CB_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The cb attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.cb <> null\n" + "}.status"; /** - * Validates the uniqueEnumeration constraint of '<em>Enumerations</em>'. + * Validates the cbAttributeRequired constraint of '<em>Data Set Member Of</em>'. * <!-- begin-user-doc --> * <!-- end-user-doc --> * @generated */ - public boolean validateEnumerations_uniqueEnumeration( Enumerations enumerations, DiagnosticChain diagnostics, - Map< Object, Object > context ) { - return validate( NsdPackage.Literals.ENUMERATIONS, enumerations, diagnostics, context, - "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "uniqueEnumeration", - ENUMERATIONS__UNIQUE_ENUMERATION__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + public boolean validateDataSetMemberOf_cbAttributeRequired( DataSetMemberOf dataSetMemberOf, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.DATA_SET_MEMBER_OF, dataSetMemberOf, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "cbAttributeRequired", + DATA_SET_MEMBER_OF__CB_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateDoc( Doc doc, DiagnosticChain diagnostics, Map< Object, Object > context ) { + if( !validate_NoCircularContainment( doc, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( doc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryDataValueConforms( doc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryReferenceIsContained( doc, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( doc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( doc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( doc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( doc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( doc, diagnostics, context ); + if( result || diagnostics != null ) result &= validateDoc_idAttributeRequired( doc, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the idAttributeRequired constraint of '<em>Doc</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String DOC__ID_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The id attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.id <> null\n" + "}.status"; + + /** + * Validates the idAttributeRequired constraint of '<em>Doc</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateDoc_idAttributeRequired( Doc doc, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.DOC, doc, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "idAttributeRequired", + DOC__ID_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateDocumentedClass( DocumentedClass documentedClass, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate_EveryDefaultConstraint( documentedClass, diagnostics, context ); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateEnumeration( Enumeration enumeration, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + if( !validate_NoCircularContainment( enumeration, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( enumeration, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( enumeration, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( enumeration, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( enumeration, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( enumeration, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( enumeration, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( enumeration, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( enumeration, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateTitledClass_titleIDAttributeRequired( enumeration, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateEnumeration_uniqueLiteralName( enumeration, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateEnumeration_uniqueLiteralVal( enumeration, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateEnumeration_nameAttributeRequired( enumeration, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the uniqueLiteralName constraint of '<em>Enumeration</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String ENUMERATION__UNIQUE_LITERAL_NAME__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'For an Enumeration, there shall not be two Literal sub-elements with same name.',\n" + + "\tstatus : Boolean = \n" + "\t\t\t-- TODO: inherited literals should be taken into account\n" + + "\t\t\t-- For this, explicit links have to be created first\n" + + "\t\t\tself.literal->isUnique( l : Literal | l.name )\n" + "}.status"; + + /** + * Validates the uniqueLiteralName constraint of '<em>Enumeration</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateEnumeration_uniqueLiteralName( Enumeration enumeration, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.ENUMERATION, enumeration, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "uniqueLiteralName", + ENUMERATION__UNIQUE_LITERAL_NAME__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + + /** + * The cached validation expression for the uniqueLiteralVal constraint of '<em>Enumeration</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String ENUMERATION__UNIQUE_LITERAL_VAL__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'For an Enumeration, there shall not be two Literal sub-elements with same literalVal.',\n" + + "\tstatus : Boolean = \n" + "\t\t\tself.literal->isUnique( l : Literal | l.literalVal )\n" + "}.status"; + + /** + * Validates the uniqueLiteralVal constraint of '<em>Enumeration</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateEnumeration_uniqueLiteralVal( Enumeration enumeration, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.ENUMERATION, enumeration, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "uniqueLiteralVal", + ENUMERATION__UNIQUE_LITERAL_VAL__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Enumeration</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String ENUMERATION__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Enumeration</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateEnumeration_nameAttributeRequired( Enumeration enumeration, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.ENUMERATION, enumeration, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + ENUMERATION__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateEnumerations( Enumerations enumerations, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + if( !validate_NoCircularContainment( enumerations, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( enumerations, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( enumerations, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( enumerations, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( enumerations, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( enumerations, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( enumerations, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( enumerations, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( enumerations, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateEnumerations_uniqueEnumeration( enumerations, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the uniqueEnumeration constraint of '<em>Enumerations</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String ENUMERATIONS__UNIQUE_ENUMERATION__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'Within an NS, there shall not be two Enumeration sub-elements with same name.',\n" + + "\tstatus : Boolean = \n" + "\t\t\t-- TODO: DependsOn NS should be taken into account ?\n" + + "\t\t\t-- For this, explicit links have to be created first\n" + + "\t\t\t-- Then, may be this constraint should be in NS and not in Enumerations ?\n" + + "\t\t\tself.enumeration->isUnique( e : Enumeration | e.name )\n" + "}.status"; + + /** + * Validates the uniqueEnumeration constraint of '<em>Enumerations</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateEnumerations_uniqueEnumeration( Enumerations enumerations, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.ENUMERATIONS, enumerations, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "uniqueEnumeration", + ENUMERATIONS__UNIQUE_ENUMERATION__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -951,7 +1507,49 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateFunctionalConstraint( FunctionalConstraint functionalConstraint, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( functionalConstraint, diagnostics, context ); + if( !validate_NoCircularContainment( functionalConstraint, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( functionalConstraint, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( functionalConstraint, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( functionalConstraint, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( functionalConstraint, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( functionalConstraint, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( functionalConstraint, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryKeyUnique( functionalConstraint, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( functionalConstraint, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateFunctionalConstraint_abbreviationAttributeRequired( functionalConstraint, diagnostics, + context ); + return result; + } + + /** + * The cached validation expression for the abbreviationAttributeRequired constraint of '<em>Functional Constraint</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String FUNCTIONAL_CONSTRAINT__ABBREVIATION_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The abbreviation attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.abbreviation <> null\n" + "}.status"; + + /** + * Validates the abbreviationAttributeRequired constraint of '<em>Functional Constraint</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateFunctionalConstraint_abbreviationAttributeRequired( + FunctionalConstraint functionalConstraint, DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.FUNCTIONAL_CONSTRAINT, functionalConstraint, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "abbreviationAttributeRequired", + FUNCTIONAL_CONSTRAINT__ABBREVIATION_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, + DIAGNOSTIC_SOURCE, 0 ); } /** @@ -1022,7 +1620,68 @@ public class NsdValidator extends EObjectValidator { * @generated */ public boolean validateLiteral( Literal literal, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( literal, diagnostics, context ); + if( !validate_NoCircularContainment( literal, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( literal, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryDataValueConforms( literal, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( literal, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( literal, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( literal, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( literal, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( literal, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( literal, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateLiteral_nameAttributeRequired( literal, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateLiteral_literalValAttributeRequired( literal, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Literal</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String LITERAL__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Literal</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateLiteral_nameAttributeRequired( Literal literal, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.LITERAL, literal, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + LITERAL__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + + /** + * The cached validation expression for the literalValAttributeRequired constraint of '<em>Literal</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String LITERAL__LITERAL_VAL_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The literalVal attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.literalVal <> null\n" + "}.status"; + + /** + * Validates the literalValAttributeRequired constraint of '<em>Literal</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateLiteral_literalValAttributeRequired( Literal literal, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.LITERAL, literal, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "literalValAttributeRequired", + LITERAL__LITERAL_VAL_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -1042,11 +1701,38 @@ public class NsdValidator extends EObjectValidator { if( result || diagnostics != null ) result &= validate_UniqueID( lnClass, diagnostics, context ); if( result || diagnostics != null ) result &= validate_EveryKeyUnique( lnClass, diagnostics, context ); if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( lnClass, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateTitledClass_titleIDAttributeRequired( lnClass, diagnostics, context ); if( result || diagnostics != null ) result &= validateAnyLNClass_uniqueDataObject( lnClass, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateLNClass_nameAttributeRequired( lnClass, diagnostics, context ); return result; } + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>LN Class</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String LN_CLASS__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>LN Class</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateLNClass_nameAttributeRequired( LNClass lnClass, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.LN_CLASS, lnClass, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + LN_CLASS__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1135,7 +1821,21 @@ public class NsdValidator extends EObjectValidator { * @generated */ public boolean validateNS( NS ns, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( ns, diagnostics, context ); + if( !validate_NoCircularContainment( ns, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( ns, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryDataValueConforms( ns, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryReferenceIsContained( ns, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( ns, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( ns, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( ns, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( ns, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( ns, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_idAttributeRequired( ns, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_versionAttributeRequired( ns, diagnostics, context ); + return result; } /** @@ -1144,7 +1844,46 @@ public class NsdValidator extends EObjectValidator { * @generated */ public boolean validateNSDoc( NSDoc nsDoc, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( nsDoc, diagnostics, context ); + if( !validate_NoCircularContainment( nsDoc, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( nsDoc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryDataValueConforms( nsDoc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryReferenceIsContained( nsDoc, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( nsDoc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( nsDoc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( nsDoc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( nsDoc, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( nsDoc, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_idAttributeRequired( nsDoc, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_versionAttributeRequired( nsDoc, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateNSDoc_langAttributeRequired( nsDoc, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the langAttributeRequired constraint of '<em>NS Doc</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String NS_DOC__LANG_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The lang attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.lang <> null\n" + "}.status"; + + /** + * Validates the langAttributeRequired constraint of '<em>NS Doc</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateNSDoc_langAttributeRequired( NSDoc nsDoc, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.NS_DOC, nsDoc, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "langAttributeRequired", + NS_DOC__LANG_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -1154,7 +1893,47 @@ public class NsdValidator extends EObjectValidator { */ public boolean validatePresenceCondition( PresenceCondition presenceCondition, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( presenceCondition, diagnostics, context ); + if( !validate_NoCircularContainment( presenceCondition, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( presenceCondition, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( presenceCondition, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( presenceCondition, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( presenceCondition, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( presenceCondition, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( presenceCondition, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryKeyUnique( presenceCondition, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( presenceCondition, diagnostics, context ); + if( result || diagnostics != null ) + result &= validatePresenceCondition_nameAttributeRequired( presenceCondition, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Presence Condition</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String PRESENCE_CONDITION__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Presence Condition</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validatePresenceCondition_nameAttributeRequired( PresenceCondition presenceCondition, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.PRESENCE_CONDITION, presenceCondition, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + PRESENCE_CONDITION__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -1215,7 +1994,44 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateServiceCDC( ServiceCDC serviceCDC, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( serviceCDC, diagnostics, context ); + if( !validate_NoCircularContainment( serviceCDC, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( serviceCDC, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( serviceCDC, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( serviceCDC, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( serviceCDC, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( serviceCDC, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( serviceCDC, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( serviceCDC, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( serviceCDC, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateServiceCDC_cdcAttributeRequired( serviceCDC, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the cdcAttributeRequired constraint of '<em>Service CDC</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String SERVICE_CDC__CDC_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The cdc attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.cdc <> null\n" + "}.status"; + + /** + * Validates the cdcAttributeRequired constraint of '<em>Service CDC</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateServiceCDC_cdcAttributeRequired( ServiceCDC serviceCDC, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.SERVICE_CDC, serviceCDC, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "cdcAttributeRequired", + SERVICE_CDC__CDC_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -1251,9 +2067,14 @@ public class NsdValidator extends EObjectValidator { result &= validate_EveryKeyUnique( serviceConstructedAttribute, diagnostics, context ); if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( serviceConstructedAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateTitledClass_titleIDAttributeRequired( serviceConstructedAttribute, diagnostics, context ); if( result || diagnostics != null ) result &= validateConstructedAttribute_uniqueSubDataAttribute( serviceConstructedAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateConstructedAttribute_nameAttributeRequired( serviceConstructedAttribute, diagnostics, + context ); return result; } @@ -1274,7 +2095,72 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateServiceDataAttribute( ServiceDataAttribute serviceDataAttribute, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( serviceDataAttribute, diagnostics, context ); + if( !validate_NoCircularContainment( serviceDataAttribute, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( serviceDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( serviceDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( serviceDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( serviceDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( serviceDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( serviceDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryKeyUnique( serviceDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( serviceDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateServiceDataAttribute_nameAttributeRequired( serviceDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateServiceDataAttribute_fcAttributeRequired( serviceDataAttribute, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Service Data Attribute</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String SERVICE_DATA_ATTRIBUTE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Service Data Attribute</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateServiceDataAttribute_nameAttributeRequired( ServiceDataAttribute serviceDataAttribute, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.SERVICE_DATA_ATTRIBUTE, serviceDataAttribute, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + SERVICE_DATA_ATTRIBUTE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + + /** + * The cached validation expression for the fcAttributeRequired constraint of '<em>Service Data Attribute</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String SERVICE_DATA_ATTRIBUTE__FC_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The fc attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.fc <> null\n" + "}.status"; + + /** + * Validates the fcAttributeRequired constraint of '<em>Service Data Attribute</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateServiceDataAttribute_fcAttributeRequired( ServiceDataAttribute serviceDataAttribute, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.SERVICE_DATA_ATTRIBUTE, serviceDataAttribute, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "fcAttributeRequired", + SERVICE_DATA_ATTRIBUTE__FC_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -1284,7 +2170,23 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateServiceNS( ServiceNS serviceNS, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( serviceNS, diagnostics, context ); + if( !validate_NoCircularContainment( serviceNS, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( serviceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( serviceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( serviceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( serviceNS, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( serviceNS, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( serviceNS, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( serviceNS, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( serviceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_idAttributeRequired( serviceNS, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_versionAttributeRequired( serviceNS, diagnostics, context ); + return result; } /** @@ -1294,7 +2196,25 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateServiceNsUsage( ServiceNsUsage serviceNsUsage, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( serviceNsUsage, diagnostics, context ); + if( !validate_NoCircularContainment( serviceNsUsage, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( serviceNsUsage, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( serviceNsUsage, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( serviceNsUsage, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( serviceNsUsage, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( serviceNsUsage, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( serviceNsUsage, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( serviceNsUsage, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( serviceNsUsage, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_idAttributeRequired( serviceNsUsage, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_versionAttributeRequired( serviceNsUsage, diagnostics, context ); + return result; } /** @@ -1304,7 +2224,46 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateServiceParameter( ServiceParameter serviceParameter, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( serviceParameter, diagnostics, context ); + if( !validate_NoCircularContainment( serviceParameter, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( serviceParameter, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( serviceParameter, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( serviceParameter, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( serviceParameter, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( serviceParameter, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( serviceParameter, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( serviceParameter, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( serviceParameter, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateServiceParameter_nameAttributeRequired( serviceParameter, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Service Parameter</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String SERVICE_PARAMETER__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Service Parameter</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateServiceParameter_nameAttributeRequired( ServiceParameter serviceParameter, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.SERVICE_PARAMETER, serviceParameter, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + SERVICE_PARAMETER__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -1324,7 +2283,46 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateSubDataAttribute( SubDataAttribute subDataAttribute, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( subDataAttribute, diagnostics, context ); + if( !validate_NoCircularContainment( subDataAttribute, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( subDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( subDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( subDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( subDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( subDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( subDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( subDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( subDataAttribute, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateSubDataAttribute_nameAttributeRequired( subDataAttribute, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Sub Data Attribute</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String SUB_DATA_ATTRIBUTE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Sub Data Attribute</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateSubDataAttribute_nameAttributeRequired( SubDataAttribute subDataAttribute, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.SUB_DATA_ATTRIBUTE, subDataAttribute, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + SUB_DATA_ATTRIBUTE__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -1334,7 +2332,71 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateSubDataObject( SubDataObject subDataObject, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( subDataObject, diagnostics, context ); + if( !validate_NoCircularContainment( subDataObject, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( subDataObject, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( subDataObject, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( subDataObject, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( subDataObject, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( subDataObject, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( subDataObject, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( subDataObject, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( subDataObject, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateSubDataObject_nameAttributeRequired( subDataObject, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateSubDataObject_typeAttributeRequired( subDataObject, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the nameAttributeRequired constraint of '<em>Sub Data Object</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String SUB_DATA_OBJECT__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The name attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.name <> null\n" + "}.status"; + + /** + * Validates the nameAttributeRequired constraint of '<em>Sub Data Object</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateSubDataObject_nameAttributeRequired( SubDataObject subDataObject, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.SUB_DATA_OBJECT, subDataObject, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "nameAttributeRequired", + SUB_DATA_OBJECT__NAME_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + + /** + * The cached validation expression for the typeAttributeRequired constraint of '<em>Sub Data Object</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String SUB_DATA_OBJECT__TYPE_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The type attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.type <> null\n" + "}.status"; + + /** + * Validates the typeAttributeRequired constraint of '<em>Sub Data Object</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateSubDataObject_typeAttributeRequired( SubDataObject subDataObject, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.SUB_DATA_OBJECT, subDataObject, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "typeAttributeRequired", + SUB_DATA_OBJECT__TYPE_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -1344,7 +2406,44 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateTitledClass( TitledClass titledClass, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( titledClass, diagnostics, context ); + if( !validate_NoCircularContainment( titledClass, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( titledClass, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( titledClass, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( titledClass, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( titledClass, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryProxyResolves( titledClass, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( titledClass, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryKeyUnique( titledClass, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_EveryMapEntryUnique( titledClass, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateTitledClass_titleIDAttributeRequired( titledClass, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the titleIDAttributeRequired constraint of '<em>Titled Class</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String TITLED_CLASS__TITLE_ID_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The titleID attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.titleID <> null\n" + "}.status"; + + /** + * Validates the titleIDAttributeRequired constraint of '<em>Titled Class</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateTitledClass_titleIDAttributeRequired( TitledClass titledClass, DiagnosticChain diagnostics, + Map< Object, Object > context ) { + return validate( NsdPackage.Literals.TITLED_CLASS, titledClass, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "titleIDAttributeRequired", + TITLED_CLASS__TITLE_ID_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /** @@ -1364,7 +2463,72 @@ public class NsdValidator extends EObjectValidator { */ public boolean validateAgNSIdentification( AgNSIdentification agNSIdentification, DiagnosticChain diagnostics, Map< Object, Object > context ) { - return validate_EveryDefaultConstraint( agNSIdentification, diagnostics, context ); + if( !validate_NoCircularContainment( agNSIdentification, diagnostics, context ) ) return false; + boolean result = validate_EveryMultiplicityConforms( agNSIdentification, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryDataValueConforms( agNSIdentification, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryReferenceIsContained( agNSIdentification, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryBidirectionalReferenceIsPaired( agNSIdentification, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryProxyResolves( agNSIdentification, diagnostics, context ); + if( result || diagnostics != null ) result &= validate_UniqueID( agNSIdentification, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryKeyUnique( agNSIdentification, diagnostics, context ); + if( result || diagnostics != null ) + result &= validate_EveryMapEntryUnique( agNSIdentification, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_idAttributeRequired( agNSIdentification, diagnostics, context ); + if( result || diagnostics != null ) + result &= validateAgNSIdentification_versionAttributeRequired( agNSIdentification, diagnostics, context ); + return result; + } + + /** + * The cached validation expression for the idAttributeRequired constraint of '<em>Ag NS Identification</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String AG_NS_IDENTIFICATION__ID_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The id attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.id <> null\n" + "}.status"; + + /** + * Validates the idAttributeRequired constraint of '<em>Ag NS Identification</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateAgNSIdentification_idAttributeRequired( AgNSIdentification agNSIdentification, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.AG_NS_IDENTIFICATION, agNSIdentification, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "idAttributeRequired", + AG_NS_IDENTIFICATION__ID_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); + } + + /** + * The cached validation expression for the versionAttributeRequired constraint of '<em>Ag NS Identification</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected static final String AG_NS_IDENTIFICATION__VERSION_ATTRIBUTE_REQUIRED__EEXPRESSION = "Tuple {\n" + + "\tmessage : String = 'The version attribute is required',\n" + "\tstatus : Boolean = \n" + + "\t\t\tself.version <> null\n" + "}.status"; + + /** + * Validates the versionAttributeRequired constraint of '<em>Ag NS Identification</em>'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public boolean validateAgNSIdentification_versionAttributeRequired( AgNSIdentification agNSIdentification, + DiagnosticChain diagnostics, Map< Object, Object > context ) { + return validate( NsdPackage.Literals.AG_NS_IDENTIFICATION, agNSIdentification, diagnostics, context, + "http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot", "versionAttributeRequired", + AG_NS_IDENTIFICATION__VERSION_ATTRIBUTE_REQUIRED__EEXPRESSION, Diagnostic.ERROR, DIAGNOSTIC_SOURCE, 0 ); } /**