diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties index 57ba8c8840e79474f18ba2ecf92a90fa08a482c8..1cb6f010d9b4b76cf334b0559a07ec939a1d72fc 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties @@ -510,3 +510,5 @@ _UI_PresenceCondition_referredBySubDataAttribute_feature = Referred By Sub Data _UI_SubDataAttribute_refersToPresenceCondition_feature = Refers To Presence Condition _UI_Enumeration_refersToBaseEnumeration_feature = Refers To Base Enumeration _UI_Enumeration_referredByEnumerationAsBase_feature = Referred By Enumeration As Base +_UI_BasicType_referredByDataAttribute_feature = Referred By Data Attribute +_UI_DataAttribute_refersToBasicType_feature = Refers To Basic Type diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/BasicTypeItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/BasicTypeItemProvider.java index 2b403257753f57fad99df8ba8fbe7a6154c45042..9f82acfa05ccbb941a469619ec276e4e0fd89578 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/BasicTypeItemProvider.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/BasicTypeItemProvider.java @@ -62,6 +62,7 @@ public class BasicTypeItemProvider extends NsdObjectItemProvider { addDescIDPropertyDescriptor( object ); addNamePropertyDescriptor( object ); + addReferredByDataAttributePropertyDescriptor( object ); } return itemPropertyDescriptors; } @@ -98,6 +99,21 @@ public class BasicTypeItemProvider extends NsdObjectItemProvider { ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null ) ); } + /** + * This adds a property descriptor for the Referred By Data Attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addReferredByDataAttributePropertyDescriptor( Object object ) { + itemPropertyDescriptors.add( createItemPropertyDescriptor( + ( ( ComposeableAdapterFactory ) adapterFactory ).getRootAdapterFactory(), getResourceLocator(), + getString( "_UI_BasicType_referredByDataAttribute_feature" ), + getString( "_UI_PropertyDescriptor_description", "_UI_BasicType_referredByDataAttribute_feature", + "_UI_BasicType_type" ), + NsdPackage.Literals.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE, true, false, true, null, null, null ) ); + } + /** * This returns BasicType.gif. * <!-- begin-user-doc --> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DataAttributeItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DataAttributeItemProvider.java index c9e1434b4025ad2fcd54244047a982f4ac4631ea..0a4afd71c66167d11d32955b9b419716b8ba8a40 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DataAttributeItemProvider.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/DataAttributeItemProvider.java @@ -86,6 +86,7 @@ public class DataAttributeItemProvider extends DocumentedClassItemProvider { addRefersToMaxIndexAttributePropertyDescriptor( object ); addReferredByDataAttributeAsSizeAttributePropertyDescriptor( object ); addReferredByDataAttributeAsMaxIndexAttributePropertyDescriptor( object ); + addRefersToBasicTypePropertyDescriptor( object ); } return itemPropertyDescriptors; } @@ -379,6 +380,22 @@ public class DataAttributeItemProvider extends DocumentedClassItemProvider { true, null, null, null ) ); } + /** + * This adds a property descriptor for the Refers To Basic Type feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addRefersToBasicTypePropertyDescriptor( Object object ) { + itemPropertyDescriptors.add( + createItemPropertyDescriptor( ( ( ComposeableAdapterFactory ) adapterFactory ).getRootAdapterFactory(), + getResourceLocator(), getString( "_UI_DataAttribute_refersToBasicType_feature" ), + getString( "_UI_PropertyDescriptor_description", "_UI_DataAttribute_refersToBasicType_feature", + "_UI_DataAttribute_type" ), + NsdPackage.Literals.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE, true, false, true, null, null, + null ) ); + } + /** * This adds a property descriptor for the Pres Cond feature. * <!-- begin-user-doc --> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore index 270c8642e2943cac73627816037c3b047b7ead63..eb32c373d96435001bd49054046a421c14af2aff 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore @@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> -<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" - name="nsd" nsURI="http://www.iec.ch/61850/2016/NSD" nsPrefix="nsd"> +<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="nsd" nsURI="http://www.iec.ch/61850/2016/NSD" nsPrefix="nsd"> <eAnnotations source="http://www.eclipse.org/OCL/Import"> <details key="ecore" value="http://www.eclipse.org/emf/2002/Ecore"/> <details key="ecore.xml.type" value="http://www.eclipse.org/emf/2003/XMLType"/> @@ -400,6 +400,9 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="basicTypes" ordered="false" eType="#//BasicTypes" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//BasicTypes/basicType"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDataAttribute" + ordered="false" eType="#//DataAttribute" transient="true" unsettable="true" + resolveProxies="false" eOpposite="#//DataAttribute/refersToBasicType"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="BasicTypes" eSuperTypes="#//NsdObject"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -751,6 +754,9 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDataAttributeAsMaxIndexAttribute" ordered="false" upperBound="-1" eType="#//DataAttribute" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//DataAttribute/refersToMaxIndexAttribute"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="refersToBasicType" ordered="false" + eType="#//BasicType" transient="true" unsettable="true" resolveProxies="false" + eOpposite="#//BasicType/referredByDataAttribute"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="DataObject" eSuperTypes="#//DocumentedClass #//AgPresenceCondition #//AgPresenceConditionDerivedStatistics #//AgUnderlyingType"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1242,6 +1248,10 @@ <eParameters name="enumerationName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> <eParameters name="console" eType="#//IRiseClipseConsole"/> </eOperations> + <eOperations name="findBasicType" eType="#//BasicType"> + <eParameters name="basicTypeName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> + <eParameters name="console" eType="#//IRiseClipseConsole"/> + </eOperations> <eStructuralFeatures xsi:type="ecore:EReference" name="changes" ordered="false" eType="#//Changes" unsettable="true" containment="true" resolveProxies="false" eOpposite="#//Changes/nS"> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel index 34f799a431c8b3f77dd9cf0eab2d32198c368c48..19de1d396bded8536c25861173d96f61b3d7a7a0 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel @@ -163,6 +163,7 @@ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//BasicType/descID"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//BasicType/name"/> <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//BasicType/basicTypes"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//BasicType/referredByDataAttribute"/> </genClasses> <genClasses ecoreClass="nsd.ecore#//BasicTypes"> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//BasicTypes/basicType"/> @@ -225,6 +226,7 @@ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DataAttribute/refersToMaxIndexAttribute"/> <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DataAttribute/referredByDataAttributeAsSizeAttribute"/> <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DataAttribute/referredByDataAttributeAsMaxIndexAttribute"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//DataAttribute/refersToBasicType"/> </genClasses> <genClasses ecoreClass="nsd.ecore#//DataObject"> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//DataObject/name"/> @@ -330,6 +332,10 @@ <genParameters ecoreParameter="nsd.ecore#//NS/findEnumeration/enumerationName"/> <genParameters ecoreParameter="nsd.ecore#//NS/findEnumeration/console"/> </genOperations> + <genOperations ecoreOperation="nsd.ecore#//NS/findBasicType"> + <genParameters ecoreParameter="nsd.ecore#//NS/findBasicType/basicTypeName"/> + <genParameters ecoreParameter="nsd.ecore#//NS/findBasicType/console"/> + </genOperations> </genClasses> <genClasses ecoreClass="nsd.ecore#//NSDoc"> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//NSDoc/doc"/> 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 99bef51bc5ecf70bc5edd3cfb66248dee50ea950..88260393b16072a95d598c0ad1e7368a46e523c4 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 @@ -31,6 +31,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getDescID <em>Desc ID</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getName <em>Name</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getBasicTypes <em>Basic Types</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getReferredByDataAttribute <em>Referred By Data Attribute</em>}</li> * </ul> * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicType() @@ -168,4 +169,59 @@ public interface BasicType extends NsdObject { */ void setBasicTypes( BasicTypes value ); + /** + * Returns the value of the '<em><b>Referred By Data Attribute</b></em>' reference. + * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getRefersToBasicType <em>Refers To Basic Type</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Referred By Data Attribute</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Referred By Data Attribute</em>' reference. + * @see #isSetReferredByDataAttribute() + * @see #unsetReferredByDataAttribute() + * @see #setReferredByDataAttribute(DataAttribute) + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getBasicType_ReferredByDataAttribute() + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getRefersToBasicType + * @model opposite="refersToBasicType" resolveProxies="false" unsettable="true" transient="true" ordered="false" + * @generated + */ + DataAttribute getReferredByDataAttribute(); + + /** + * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getReferredByDataAttribute <em>Referred By Data Attribute</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Referred By Data Attribute</em>' reference. + * @see #isSetReferredByDataAttribute() + * @see #unsetReferredByDataAttribute() + * @see #getReferredByDataAttribute() + * @generated + */ + void setReferredByDataAttribute( DataAttribute value ); + + /** + * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getReferredByDataAttribute <em>Referred By Data Attribute</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isSetReferredByDataAttribute() + * @see #getReferredByDataAttribute() + * @see #setReferredByDataAttribute(DataAttribute) + * @generated + */ + void unsetReferredByDataAttribute(); + + /** + * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getReferredByDataAttribute <em>Referred By Data Attribute</em>}' reference is set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return whether the value of the '<em>Referred By Data Attribute</em>' reference is set. + * @see #unsetReferredByDataAttribute() + * @see #getReferredByDataAttribute() + * @see #setReferredByDataAttribute(DataAttribute) + * @generated + */ + boolean isSetReferredByDataAttribute(); + } // BasicType 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 b397091faa6ad3bb16c40d73d8a7785cd4dbf49e..53a6edb6c86bbbaa7fec160f62f55e6ea1ae2d18 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 @@ -41,6 +41,7 @@ import org.eclipse.emf.common.util.EList; * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getRefersToMaxIndexAttribute <em>Refers To Max Index Attribute</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getReferredByDataAttributeAsSizeAttribute <em>Referred By Data Attribute As Size Attribute</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getReferredByDataAttributeAsMaxIndexAttribute <em>Referred By Data Attribute As Max Index Attribute</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getRefersToBasicType <em>Refers To Basic Type</em>}</li> * </ul> * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute() @@ -563,4 +564,59 @@ public interface DataAttribute */ boolean isSetReferredByDataAttributeAsMaxIndexAttribute(); + /** + * Returns the value of the '<em><b>Refers To Basic Type</b></em>' reference. + * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getReferredByDataAttribute <em>Referred By Data Attribute</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Refers To Basic Type</em>' reference isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Refers To Basic Type</em>' reference. + * @see #isSetRefersToBasicType() + * @see #unsetRefersToBasicType() + * @see #setRefersToBasicType(BasicType) + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDataAttribute_RefersToBasicType() + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getReferredByDataAttribute + * @model opposite="referredByDataAttribute" resolveProxies="false" unsettable="true" transient="true" ordered="false" + * @generated + */ + BasicType getRefersToBasicType(); + + /** + * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getRefersToBasicType <em>Refers To Basic Type</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Refers To Basic Type</em>' reference. + * @see #isSetRefersToBasicType() + * @see #unsetRefersToBasicType() + * @see #getRefersToBasicType() + * @generated + */ + void setRefersToBasicType( BasicType value ); + + /** + * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getRefersToBasicType <em>Refers To Basic Type</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isSetRefersToBasicType() + * @see #getRefersToBasicType() + * @see #setRefersToBasicType(BasicType) + * @generated + */ + void unsetRefersToBasicType(); + + /** + * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getRefersToBasicType <em>Refers To Basic Type</em>}' reference is set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return whether the value of the '<em>Refers To Basic Type</em>' reference is set. + * @see #unsetRefersToBasicType() + * @see #getRefersToBasicType() + * @see #setRefersToBasicType(BasicType) + * @generated + */ + boolean isSetRefersToBasicType(); + } // DataAttribute diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NS.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NS.java index 1401cc8fc96e62a0c6a5482e40984083f1e0b067..7b792281f721db474c9dcf87a31516ceaf454ee9 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NS.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NS.java @@ -643,4 +643,12 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc { */ Enumeration findEnumeration( String enumerationName, IRiseClipseConsole console ); + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model consoleType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.IRiseClipseConsole" + * @generated + */ + BasicType findBasicType( String basicTypeName, IRiseClipseConsole console ); + } // NS diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java index 1f497d9a3ac5f5be6c4384f2acdccbc0eadd187b..c365085d40fe297ce624c31db6dbeb466c64f173 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdPackage.java @@ -1905,6 +1905,15 @@ public interface NsdPackage extends EPackage { */ int BASIC_TYPE__BASIC_TYPES = NSD_OBJECT_FEATURE_COUNT + 2; + /** + * The feature id for the '<em><b>Referred By Data Attribute</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE = NSD_OBJECT_FEATURE_COUNT + 3; + /** * The number of structural features of the '<em>Basic Type</em>' class. * <!-- begin-user-doc --> @@ -1912,7 +1921,7 @@ public interface NsdPackage extends EPackage { * @generated * @ordered */ - int BASIC_TYPE_FEATURE_COUNT = NSD_OBJECT_FEATURE_COUNT + 3; + int BASIC_TYPE_FEATURE_COUNT = NSD_OBJECT_FEATURE_COUNT + 4; /** * The operation id for the '<em>Build Explicit Links</em>' operation. @@ -2886,6 +2895,15 @@ public interface NsdPackage extends EPackage { */ int DATA_ATTRIBUTE__REFERRED_BY_DATA_ATTRIBUTE_AS_MAX_INDEX_ATTRIBUTE = DOCUMENTED_CLASS_FEATURE_COUNT + 25; + /** + * The feature id for the '<em><b>Refers To Basic Type</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE = DOCUMENTED_CLASS_FEATURE_COUNT + 26; + /** * The number of structural features of the '<em>Data Attribute</em>' class. * <!-- begin-user-doc --> @@ -2893,7 +2911,7 @@ public interface NsdPackage extends EPackage { * @generated * @ordered */ - int DATA_ATTRIBUTE_FEATURE_COUNT = DOCUMENTED_CLASS_FEATURE_COUNT + 26; + int DATA_ATTRIBUTE_FEATURE_COUNT = DOCUMENTED_CLASS_FEATURE_COUNT + 27; /** * The operation id for the '<em>Build Explicit Links</em>' operation. @@ -4371,6 +4389,15 @@ public interface NsdPackage extends EPackage { */ int NS___FIND_ENUMERATION__STRING_IRISECLIPSECONSOLE = COPYRIGHTED_OPERATION_COUNT + 3; + /** + * The operation id for the '<em>Find Basic Type</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NS___FIND_BASIC_TYPE__STRING_IRISECLIPSECONSOLE = COPYRIGHTED_OPERATION_COUNT + 4; + /** * The number of operations of the '<em>NS</em>' class. * <!-- begin-user-doc --> @@ -4378,7 +4405,7 @@ public interface NsdPackage extends EPackage { * @generated * @ordered */ - int NS_OPERATION_COUNT = COPYRIGHTED_OPERATION_COUNT + 4; + int NS_OPERATION_COUNT = COPYRIGHTED_OPERATION_COUNT + 5; /** * The feature id for the '<em><b>Line Number</b></em>' attribute. @@ -7245,6 +7272,17 @@ public interface NsdPackage extends EPackage { */ EReference getBasicType_BasicTypes(); + /** + * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getReferredByDataAttribute <em>Referred By Data Attribute</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Referred By Data Attribute</em>'. + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType#getReferredByDataAttribute() + * @see #getBasicType() + * @generated + */ + EReference getBasicType_ReferredByDataAttribute(); + /** * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes <em>Basic Types</em>}'. * <!-- begin-user-doc --> @@ -7819,6 +7857,17 @@ public interface NsdPackage extends EPackage { */ EReference getDataAttribute_ReferredByDataAttributeAsMaxIndexAttribute(); + /** + * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getRefersToBasicType <em>Refers To Basic Type</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Refers To Basic Type</em>'. + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute#getRefersToBasicType() + * @see #getDataAttribute() + * @generated + */ + EReference getDataAttribute_RefersToBasicType(); + /** * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject <em>Data Object</em>}'. * <!-- begin-user-doc --> @@ -8670,6 +8719,16 @@ public interface NsdPackage extends EPackage { */ EOperation getNS__FindEnumeration__String_IRiseClipseConsole(); + /** + * Returns the meta object for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findBasicType(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) <em>Find Basic Type</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Find Basic Type</em>' operation. + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findBasicType(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) + * @generated + */ + EOperation getNS__FindBasicType__String_IRiseClipseConsole(); + /** * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSDoc <em>NS Doc</em>}'. * <!-- begin-user-doc --> @@ -10410,6 +10469,14 @@ public interface NsdPackage extends EPackage { */ EReference BASIC_TYPE__BASIC_TYPES = eINSTANCE.getBasicType_BasicTypes(); + /** + * The meta object literal for the '<em><b>Referred By Data Attribute</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE = eINSTANCE.getBasicType_ReferredByDataAttribute(); + /** * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypesImpl <em>Basic Types</em>}' class. * <!-- begin-user-doc --> @@ -10862,6 +10929,14 @@ public interface NsdPackage extends EPackage { EReference DATA_ATTRIBUTE__REFERRED_BY_DATA_ATTRIBUTE_AS_MAX_INDEX_ATTRIBUTE = eINSTANCE .getDataAttribute_ReferredByDataAttributeAsMaxIndexAttribute(); + /** + * The meta object literal for the '<em><b>Refers To Basic Type</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE = eINSTANCE.getDataAttribute_RefersToBasicType(); + /** * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataObjectImpl <em>Data Object</em>}' class. * <!-- begin-user-doc --> @@ -11530,6 +11605,15 @@ public interface NsdPackage extends EPackage { EOperation NS___FIND_ENUMERATION__STRING_IRISECLIPSECONSOLE = eINSTANCE .getNS__FindEnumeration__String_IRiseClipseConsole(); + /** + * The meta object literal for the '<em><b>Find Basic Type</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation NS___FIND_BASIC_TYPE__STRING_IRISECLIPSECONSOLE = eINSTANCE + .getNS__FindBasicType__String_IRiseClipseConsole(); + /** * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NSDocImpl <em>NS Doc</em>}' class. * <!-- begin-user-doc --> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypeImpl.java index e85d8d3d1c65aaa7dd028dee058520e409f08f3f..0eef17f0b8df8d21980df445bb2e49044b1d931d 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypeImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/BasicTypeImpl.java @@ -21,6 +21,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import org.eclipse.emf.common.notify.Notification; @@ -43,6 +44,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil; * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypeImpl#getDescID <em>Desc ID</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypeImpl#getName <em>Name</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypeImpl#getBasicTypes <em>Basic Types</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.BasicTypeImpl#getReferredByDataAttribute <em>Referred By Data Attribute</em>}</li> * </ul> * * @generated @@ -106,6 +108,25 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType { */ protected boolean nameESet; + /** + * The cached value of the '{@link #getReferredByDataAttribute() <em>Referred By Data Attribute</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getReferredByDataAttribute() + * @generated + * @ordered + */ + protected DataAttribute referredByDataAttribute; + + /** + * This is true if the Referred By Data Attribute reference has been set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + protected boolean referredByDataAttributeESet; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -268,6 +289,118 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType { NsdPackage.BASIC_TYPE__BASIC_TYPES, newBasicTypes, newBasicTypes ) ); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public DataAttribute getReferredByDataAttribute() { + return referredByDataAttribute; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetReferredByDataAttribute( DataAttribute newReferredByDataAttribute, + NotificationChain msgs ) { + DataAttribute oldReferredByDataAttribute = referredByDataAttribute; + referredByDataAttribute = newReferredByDataAttribute; + boolean oldReferredByDataAttributeESet = referredByDataAttributeESet; + referredByDataAttributeESet = true; + if( eNotificationRequired() ) { + ENotificationImpl notification = new ENotificationImpl( this, Notification.SET, + NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE, oldReferredByDataAttribute, + newReferredByDataAttribute, !oldReferredByDataAttributeESet ); + if( msgs == null ) + msgs = notification; + else + msgs.add( notification ); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setReferredByDataAttribute( DataAttribute newReferredByDataAttribute ) { + if( newReferredByDataAttribute != referredByDataAttribute ) { + NotificationChain msgs = null; + if( referredByDataAttribute != null ) msgs = ( ( InternalEObject ) referredByDataAttribute ) + .eInverseRemove( this, NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE, DataAttribute.class, msgs ); + if( newReferredByDataAttribute != null ) msgs = ( ( InternalEObject ) newReferredByDataAttribute ) + .eInverseAdd( this, NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE, DataAttribute.class, msgs ); + msgs = basicSetReferredByDataAttribute( newReferredByDataAttribute, msgs ); + if( msgs != null ) msgs.dispatch(); + } + else { + boolean oldReferredByDataAttributeESet = referredByDataAttributeESet; + referredByDataAttributeESet = true; + if( eNotificationRequired() ) eNotify( + new ENotificationImpl( this, Notification.SET, NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE, + newReferredByDataAttribute, newReferredByDataAttribute, !oldReferredByDataAttributeESet ) ); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicUnsetReferredByDataAttribute( NotificationChain msgs ) { + DataAttribute oldReferredByDataAttribute = referredByDataAttribute; + referredByDataAttribute = null; + boolean oldReferredByDataAttributeESet = referredByDataAttributeESet; + referredByDataAttributeESet = false; + if( eNotificationRequired() ) { + ENotificationImpl notification = new ENotificationImpl( this, Notification.UNSET, + NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE, oldReferredByDataAttribute, null, + oldReferredByDataAttributeESet ); + if( msgs == null ) + msgs = notification; + else + msgs.add( notification ); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void unsetReferredByDataAttribute() { + if( referredByDataAttribute != null ) { + NotificationChain msgs = null; + msgs = ( ( InternalEObject ) referredByDataAttribute ).eInverseRemove( this, + NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE, DataAttribute.class, msgs ); + msgs = basicUnsetReferredByDataAttribute( msgs ); + if( msgs != null ) msgs.dispatch(); + } + else { + boolean oldReferredByDataAttributeESet = referredByDataAttributeESet; + referredByDataAttributeESet = false; + if( eNotificationRequired() ) eNotify( new ENotificationImpl( this, Notification.UNSET, + NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE, null, null, oldReferredByDataAttributeESet ) ); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetReferredByDataAttribute() { + return referredByDataAttributeESet; + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -279,6 +412,10 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType { case NsdPackage.BASIC_TYPE__BASIC_TYPES: if( eInternalContainer() != null ) msgs = eBasicRemoveFromContainer( msgs ); return basicSetBasicTypes( ( BasicTypes ) otherEnd, msgs ); + case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE: + if( referredByDataAttribute != null ) msgs = ( ( InternalEObject ) referredByDataAttribute ) + .eInverseRemove( this, NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE, DataAttribute.class, msgs ); + return basicSetReferredByDataAttribute( ( DataAttribute ) otherEnd, msgs ); } return super.eInverseAdd( otherEnd, featureID, msgs ); } @@ -293,6 +430,8 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType { switch( featureID ) { case NsdPackage.BASIC_TYPE__BASIC_TYPES: return basicSetBasicTypes( null, msgs ); + case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE: + return basicUnsetReferredByDataAttribute( msgs ); } return super.eInverseRemove( otherEnd, featureID, msgs ); } @@ -326,6 +465,8 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType { return getName(); case NsdPackage.BASIC_TYPE__BASIC_TYPES: return getBasicTypes(); + case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE: + return getReferredByDataAttribute(); } return super.eGet( featureID, resolve, coreType ); } @@ -347,6 +488,9 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType { case NsdPackage.BASIC_TYPE__BASIC_TYPES: setBasicTypes( ( BasicTypes ) newValue ); return; + case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE: + setReferredByDataAttribute( ( DataAttribute ) newValue ); + return; } super.eSet( featureID, newValue ); } @@ -368,6 +512,9 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType { case NsdPackage.BASIC_TYPE__BASIC_TYPES: setBasicTypes( ( BasicTypes ) null ); return; + case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE: + unsetReferredByDataAttribute(); + return; } super.eUnset( featureID ); } @@ -386,6 +533,8 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType { return isSetName(); case NsdPackage.BASIC_TYPE__BASIC_TYPES: return getBasicTypes() != null; + case NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE: + return isSetReferredByDataAttribute(); } return super.eIsSet( featureID ); } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataAttributeImpl.java index 07adc46a896eb35174f7cb0b106bc44d0f5256f2..4781d724834a150d6c080409a0df1ff0bf254a28 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataAttributeImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataAttributeImpl.java @@ -24,8 +24,10 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgAttributeType; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgAttributeTypeAndValues; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgPresenceCondition; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgTrgOp; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataAttribute; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DefinedAttributeTypeKind; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdFactory; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; @@ -85,6 +87,7 @@ import org.eclipse.emf.ecore.util.InternalEList; * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getRefersToMaxIndexAttribute <em>Refers To Max Index Attribute</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getReferredByDataAttributeAsSizeAttribute <em>Referred By Data Attribute As Size Attribute</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getReferredByDataAttributeAsMaxIndexAttribute <em>Referred By Data Attribute As Max Index Attribute</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.DataAttributeImpl#getRefersToBasicType <em>Refers To Basic Type</em>}</li> * </ul> * * @generated @@ -700,6 +703,25 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib */ protected EList< DataAttribute > referredByDataAttributeAsMaxIndexAttribute; + /** + * The cached value of the '{@link #getRefersToBasicType() <em>Refers To Basic Type</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRefersToBasicType() + * @generated + * @ordered + */ + protected BasicType refersToBasicType; + + /** + * This is true if the Refers To Basic Type reference has been set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + protected boolean refersToBasicTypeESet; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2236,6 +2258,117 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib && ( ( InternalEList.Unsettable< ? > ) referredByDataAttributeAsMaxIndexAttribute ).isSet(); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public BasicType getRefersToBasicType() { + return refersToBasicType; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRefersToBasicType( BasicType newRefersToBasicType, NotificationChain msgs ) { + BasicType oldRefersToBasicType = refersToBasicType; + refersToBasicType = newRefersToBasicType; + boolean oldRefersToBasicTypeESet = refersToBasicTypeESet; + refersToBasicTypeESet = true; + if( eNotificationRequired() ) { + ENotificationImpl notification = new ENotificationImpl( this, Notification.SET, + NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE, oldRefersToBasicType, newRefersToBasicType, + !oldRefersToBasicTypeESet ); + if( msgs == null ) + msgs = notification; + else + msgs.add( notification ); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setRefersToBasicType( BasicType newRefersToBasicType ) { + if( newRefersToBasicType != refersToBasicType ) { + NotificationChain msgs = null; + if( refersToBasicType != null ) msgs = ( ( InternalEObject ) refersToBasicType ).eInverseRemove( this, + NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE, BasicType.class, msgs ); + if( newRefersToBasicType != null ) msgs = ( ( InternalEObject ) newRefersToBasicType ).eInverseAdd( this, + NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE, BasicType.class, msgs ); + msgs = basicSetRefersToBasicType( newRefersToBasicType, msgs ); + if( msgs != null ) msgs.dispatch(); + } + else { + boolean oldRefersToBasicTypeESet = refersToBasicTypeESet; + refersToBasicTypeESet = true; + if( eNotificationRequired() ) + eNotify( new ENotificationImpl( this, Notification.SET, NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE, + newRefersToBasicType, newRefersToBasicType, !oldRefersToBasicTypeESet ) ); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicUnsetRefersToBasicType( NotificationChain msgs ) { + BasicType oldRefersToBasicType = refersToBasicType; + refersToBasicType = null; + boolean oldRefersToBasicTypeESet = refersToBasicTypeESet; + refersToBasicTypeESet = false; + if( eNotificationRequired() ) { + ENotificationImpl notification = new ENotificationImpl( this, Notification.UNSET, + NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE, oldRefersToBasicType, null, + oldRefersToBasicTypeESet ); + if( msgs == null ) + msgs = notification; + else + msgs.add( notification ); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void unsetRefersToBasicType() { + if( refersToBasicType != null ) { + NotificationChain msgs = null; + msgs = ( ( InternalEObject ) refersToBasicType ).eInverseRemove( this, + NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE, BasicType.class, msgs ); + msgs = basicUnsetRefersToBasicType( msgs ); + if( msgs != null ) msgs.dispatch(); + } + else { + boolean oldRefersToBasicTypeESet = refersToBasicTypeESet; + refersToBasicTypeESet = false; + if( eNotificationRequired() ) eNotify( new ENotificationImpl( this, Notification.UNSET, + NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE, null, null, oldRefersToBasicTypeESet ) ); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetRefersToBasicType() { + return refersToBasicTypeESet; + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2283,6 +2416,10 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_DATA_ATTRIBUTE_AS_MAX_INDEX_ATTRIBUTE: return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredByDataAttributeAsMaxIndexAttribute() ) .basicAdd( otherEnd, msgs ); + case NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE: + if( refersToBasicType != null ) msgs = ( ( InternalEObject ) refersToBasicType ).eInverseRemove( this, + NsdPackage.BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE, BasicType.class, msgs ); + return basicSetRefersToBasicType( ( BasicType ) otherEnd, msgs ); } return super.eInverseAdd( otherEnd, featureID, msgs ); } @@ -2315,6 +2452,8 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_DATA_ATTRIBUTE_AS_MAX_INDEX_ATTRIBUTE: return ( ( InternalEList< ? > ) getReferredByDataAttributeAsMaxIndexAttribute() ).basicRemove( otherEnd, msgs ); + case NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE: + return basicUnsetRefersToBasicType( msgs ); } return super.eInverseRemove( otherEnd, featureID, msgs ); } @@ -2393,6 +2532,8 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib return getReferredByDataAttributeAsSizeAttribute(); case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_DATA_ATTRIBUTE_AS_MAX_INDEX_ATTRIBUTE: return getReferredByDataAttributeAsMaxIndexAttribute(); + case NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE: + return getRefersToBasicType(); } return super.eGet( featureID, resolve, coreType ); } @@ -2490,6 +2631,9 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib getReferredByDataAttributeAsMaxIndexAttribute() .addAll( ( Collection< ? extends DataAttribute > ) newValue ); return; + case NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE: + setRefersToBasicType( ( BasicType ) newValue ); + return; } super.eSet( featureID, newValue ); } @@ -2580,6 +2724,9 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_DATA_ATTRIBUTE_AS_MAX_INDEX_ATTRIBUTE: unsetReferredByDataAttributeAsMaxIndexAttribute(); return; + case NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE: + unsetRefersToBasicType(); + return; } super.eUnset( featureID ); } @@ -2644,6 +2791,8 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib return isSetReferredByDataAttributeAsSizeAttribute(); case NsdPackage.DATA_ATTRIBUTE__REFERRED_BY_DATA_ATTRIBUTE_AS_MAX_INDEX_ATTRIBUTE: return isSetReferredByDataAttributeAsMaxIndexAttribute(); + case NsdPackage.DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE: + return isSetRefersToBasicType(); } return super.eIsSet( featureID ); } @@ -2953,6 +3102,18 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib } } + if( getTypeKind().equals( DefinedAttributeTypeKind.BASIC ) ) { + setRefersToBasicType( getCDC().getCDCs().getNS().findBasicType( getType(), console ) ); + if( getRefersToBasicType() == null ) { + console.error( "BasicType (name: " + getType() + ") refers as type by DataAttribute (name: " + getName() + + ") in NS (id:" + getCDC().getCDCs().getNS().getId() + ") is unknown" ); + } + else { + console.verbose( "BasicType (name: " + getType() + ") refers as type by DataAttribute (name: " + + getName() + ") in NS (id:" + getCDC().getCDCs().getNS().getId() + ") found" ); + } + } + return false; } } //DataAttributeImpl diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataObjectImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataObjectImpl.java index b844222c415f455c804e93a298282767fceeced2..d9c234216d9c8d7040661ff9c91a46ac79ea6a34 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataObjectImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataObjectImpl.java @@ -1848,8 +1848,8 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject { + getAnyLNClass().getLNClasses().getNS().getId() + ") is unknown" ); } else { - console.verbose( "CDC (name: " + getType() + ") refers by DataObject (name: " + getName() + ") in NS (id:" - + getAnyLNClass().getLNClasses().getNS().getId() + ") found in NS (id:" + console.verbose( "CDC (name: " + getType() + ") refers by DataObject (name: " + getName() + + ") in NS (id:" + getAnyLNClass().getLNClasses().getNS().getId() + ") found in NS (id:" + getRefersToCDC().getCDCs().getNS().getId() + ")" ); } } @@ -1863,9 +1863,10 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject { + ") in NS (id:" + getAnyLNClass().getLNClasses().getNS().getId() + ") is unknown" ); } else { - console.verbose( "PresenceCondition (name: " + getPresCond() + ") refers by DataObject (name: " + getName() - + ") in NS (id:" + getAnyLNClass().getLNClasses().getNS().getId() + ") found in NS (id:" - + getRefersToPresenceCondition().getPresenceConditions().getNS().getId() + ")" ); + console.verbose( + "PresenceCondition (name: " + getPresCond() + ") refers by DataObject (name: " + getName() + + ") in NS (id:" + getAnyLNClass().getLNClasses().getNS().getId() + ") found in NS (id:" + + getRefersToPresenceCondition().getPresenceConditions().getNS().getId() + ")" ); } } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DependsOnImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DependsOnImpl.java index 34323b1baec85edef68e82c8bc63dd3a43a73d4c..b49f0485836d0170a04836b3efa0365d43ccba1a 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DependsOnImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DependsOnImpl.java @@ -898,7 +898,8 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn { "NS (id: " + getId() + ") and refers by DependsOn in NS (id:" + getNS().getId() + ") is unknown" ); } else { - console.verbose( "NS (id: " + getId() + ") and refers by DependsOn in NS (id:" + getNS().getId() + ") found" ); + console.verbose( + "NS (id: " + getId() + ") and refers by DependsOn in NS (id:" + getNS().getId() + ") found" ); } return false; } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationImpl.java index 25c6eddf2af8056e9b8197a83ed773d8d0e16e77..e10140cabd29a0b71994479244814b8973d0b125 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationImpl.java @@ -716,8 +716,8 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { + getName() + ") in NS (id:" + getEnumerations().getNS().getId() + ") is unknown" ); } else { - console.verbose( "Enumeration (name: " + getInheritedFrom() + ") refers by Enumeration (name: " + getName() - + ") in NS (id:" + getEnumerations().getNS().getId() + ") found in NS (id:" + console.verbose( "Enumeration (name: " + getInheritedFrom() + ") refers by Enumeration (name: " + + getName() + ") in NS (id:" + getEnumerations().getNS().getId() + ") found in NS (id:" + getRefersToBaseEnumeration().getEnumerations().getNS().getId() + ")" ); } } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSImpl.java index 04b559e714af4d6f9f2a4866af0e609662eab9ac..b26354892293238291463ef50aa55ad4697df4b1 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSImpl.java @@ -23,6 +23,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgNSIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgNSdesc; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgUML; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs; @@ -1747,6 +1748,27 @@ public class NSImpl extends CopyrightedImpl implements NS { return null; } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public BasicType findBasicType( String basicTypeName, IRiseClipseConsole console ) { + if( isSetBasicTypes() ) { + BasicType found = getBasicTypes().getBasicType().stream() + .filter( bt -> bt.getName().equals( basicTypeName ) ).findAny().orElse( null ); + if( found != null ) return found; + } + + if( isSetDependsOn() ) { + getDependsOn().buildExplicitLinks( console ); + return getDependsOn().getRefersToNS().findBasicType( basicTypeName, console ); + } + + return null; + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2582,6 +2604,8 @@ public class NSImpl extends CopyrightedImpl implements NS { return findFunctionalConstraint( ( String ) arguments.get( 0 ), ( IRiseClipseConsole ) arguments.get( 1 ) ); case NsdPackage.NS___FIND_ENUMERATION__STRING_IRISECLIPSECONSOLE: return findEnumeration( ( String ) arguments.get( 0 ), ( IRiseClipseConsole ) arguments.get( 1 ) ); + case NsdPackage.NS___FIND_BASIC_TYPE__STRING_IRISECLIPSECONSOLE: + return findBasicType( ( String ) arguments.get( 0 ), ( IRiseClipseConsole ) arguments.get( 1 ) ); } return super.eInvoke( operationID, arguments ); } 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 8e5091c9e50859895ce36da0a8d519a0f322b9de..cccbac86e24253e55faa4c5245faa7b59615ebb3 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 @@ -1163,6 +1163,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { return ( EReference ) basicTypeEClass.getEStructuralFeatures().get( 2 ); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getBasicType_ReferredByDataAttribute() { + return ( EReference ) basicTypeEClass.getEStructuralFeatures().get( 3 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1693,6 +1703,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { return ( EReference ) dataAttributeEClass.getEStructuralFeatures().get( 10 ); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getDataAttribute_RefersToBasicType() { + return ( EReference ) dataAttributeEClass.getEStructuralFeatures().get( 11 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2483,6 +2503,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { return nsEClass.getEOperations().get( 3 ); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EOperation getNS__FindBasicType__String_IRiseClipseConsole() { + return nsEClass.getEOperations().get( 4 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -3798,6 +3828,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { createEAttribute( basicTypeEClass, BASIC_TYPE__DESC_ID ); createEAttribute( basicTypeEClass, BASIC_TYPE__NAME ); createEReference( basicTypeEClass, BASIC_TYPE__BASIC_TYPES ); + createEReference( basicTypeEClass, BASIC_TYPE__REFERRED_BY_DATA_ATTRIBUTE ); basicTypesEClass = createEClass( BASIC_TYPES ); createEReference( basicTypesEClass, BASIC_TYPES__BASIC_TYPE ); @@ -3860,6 +3891,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { createEReference( dataAttributeEClass, DATA_ATTRIBUTE__REFERS_TO_MAX_INDEX_ATTRIBUTE ); createEReference( dataAttributeEClass, DATA_ATTRIBUTE__REFERRED_BY_DATA_ATTRIBUTE_AS_SIZE_ATTRIBUTE ); createEReference( dataAttributeEClass, DATA_ATTRIBUTE__REFERRED_BY_DATA_ATTRIBUTE_AS_MAX_INDEX_ATTRIBUTE ); + createEReference( dataAttributeEClass, DATA_ATTRIBUTE__REFERS_TO_BASIC_TYPE ); dataObjectEClass = createEClass( DATA_OBJECT ); createEAttribute( dataObjectEClass, DATA_OBJECT__NAME ); @@ -3953,6 +3985,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { createEOperation( nsEClass, NS___FIND_PRESENCE_CONDITION__STRING_IRISECLIPSECONSOLE ); createEOperation( nsEClass, NS___FIND_FUNCTIONAL_CONSTRAINT__STRING_IRISECLIPSECONSOLE ); createEOperation( nsEClass, NS___FIND_ENUMERATION__STRING_IRISECLIPSECONSOLE ); + createEOperation( nsEClass, NS___FIND_BASIC_TYPE__STRING_IRISECLIPSECONSOLE ); nsDocEClass = createEClass( NS_DOC ); createEReference( nsDocEClass, NS_DOC__DOC ); @@ -4361,6 +4394,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { initEReference( getBasicType_BasicTypes(), this.getBasicTypes(), this.getBasicTypes_BasicType(), "basicTypes", null, 0, 1, BasicType.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); + initEReference( getBasicType_ReferredByDataAttribute(), this.getDataAttribute(), + this.getDataAttribute_RefersToBasicType(), "referredByDataAttribute", null, 0, 1, BasicType.class, + IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, + !IS_DERIVED, !IS_ORDERED ); initEClass( basicTypesEClass, BasicTypes.class, "BasicTypes", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS ); @@ -4525,6 +4562,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { this.getDataAttribute_RefersToMaxIndexAttribute(), "referredByDataAttributeAsMaxIndexAttribute", null, 0, -1, DataAttribute.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); + initEReference( getDataAttribute_RefersToBasicType(), this.getBasicType(), + this.getBasicType_ReferredByDataAttribute(), "refersToBasicType", null, 0, 1, DataAttribute.class, + IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, + !IS_DERIVED, !IS_ORDERED ); initEClass( dataObjectEClass, DataObject.class, "DataObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS ); @@ -4768,6 +4809,11 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { addEParameter( op, ecorePackage.getEString(), "enumerationName", 0, 1, IS_UNIQUE, IS_ORDERED ); addEParameter( op, this.getIRiseClipseConsole(), "console", 0, 1, IS_UNIQUE, IS_ORDERED ); + op = initEOperation( getNS__FindBasicType__String_IRiseClipseConsole(), this.getBasicType(), "findBasicType", 0, + 1, IS_UNIQUE, IS_ORDERED ); + addEParameter( op, ecorePackage.getEString(), "basicTypeName", 0, 1, IS_UNIQUE, IS_ORDERED ); + addEParameter( op, this.getIRiseClipseConsole(), "console", 0, 1, IS_UNIQUE, IS_ORDERED ); + initEClass( nsDocEClass, NSDoc.class, "NSDoc", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS ); initEReference( getNSDoc_Doc(), this.getDoc(), this.getDoc_NSDoc(), "doc", null, 0, -1, NSDoc.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE,