diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties index f4846e7a3c18b87e44852ed238705af1223f2c30..57ba8c8840e79474f18ba2ecf92a90fa08a482c8 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/plugin.properties @@ -506,3 +506,7 @@ _UI_DataAttribute_referredByDataAttributeAsSizeAttribute_feature = Referred By D _UI_DataAttribute_referredByDataAttributeAsMaxIndexAttribute_feature = Referred By Data Attribute As Max Index Attribute _UI_FunctionalConstraint_referredByDataAttribute_feature = Referred By Data Attribute _UI_PresenceCondition_referredByDataAttribute_feature = Referred By Data Attribute +_UI_PresenceCondition_referredBySubDataAttribute_feature = Referred By Sub Data Attribute +_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 diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/EnumerationItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/EnumerationItemProvider.java index bae04746446dfb2b1b333fbd5e9e225e2994623b..4efe943c50f0c4484e48be01fb6adaa3537220c6 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/EnumerationItemProvider.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/EnumerationItemProvider.java @@ -66,6 +66,8 @@ public class EnumerationItemProvider extends TitledClassItemProvider { addInheritedFromPropertyDescriptor( object ); addNamePropertyDescriptor( object ); + addRefersToBaseEnumerationPropertyDescriptor( object ); + addReferredByEnumerationAsBasePropertyDescriptor( object ); } return itemPropertyDescriptors; } @@ -102,6 +104,37 @@ public class EnumerationItemProvider extends TitledClassItemProvider { ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null ) ); } + /** + * This adds a property descriptor for the Refers To Base Enumeration feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addRefersToBaseEnumerationPropertyDescriptor( Object object ) { + itemPropertyDescriptors.add( createItemPropertyDescriptor( + ( ( ComposeableAdapterFactory ) adapterFactory ).getRootAdapterFactory(), getResourceLocator(), + getString( "_UI_Enumeration_refersToBaseEnumeration_feature" ), + getString( "_UI_PropertyDescriptor_description", "_UI_Enumeration_refersToBaseEnumeration_feature", + "_UI_Enumeration_type" ), + NsdPackage.Literals.ENUMERATION__REFERS_TO_BASE_ENUMERATION, true, false, true, null, null, null ) ); + } + + /** + * This adds a property descriptor for the Referred By Enumeration As Base feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addReferredByEnumerationAsBasePropertyDescriptor( Object object ) { + itemPropertyDescriptors.add( createItemPropertyDescriptor( + ( ( ComposeableAdapterFactory ) adapterFactory ).getRootAdapterFactory(), getResourceLocator(), + getString( "_UI_Enumeration_referredByEnumerationAsBase_feature" ), + getString( "_UI_PropertyDescriptor_description", "_UI_Enumeration_referredByEnumerationAsBase_feature", + "_UI_Enumeration_type" ), + NsdPackage.Literals.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE, true, false, true, null, null, + null ) ); + } + /** * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate feature for an * {@link org.eclipse.emf.edit.command.AddCommand}, {@link org.eclipse.emf.edit.command.RemoveCommand} or diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/PresenceConditionItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/PresenceConditionItemProvider.java index b9cdd96c46b039510d961f7e8bff024eeb455752..85c419f59cb8705c0746243d4772908359d9fd15 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/PresenceConditionItemProvider.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/PresenceConditionItemProvider.java @@ -68,6 +68,7 @@ public class PresenceConditionItemProvider extends NsdObjectItemProvider { addReferredByDataObjectForDerivedStatisticsPropertyDescriptor( object ); addReferredBySubDataObjectPropertyDescriptor( object ); addReferredByDataAttributePropertyDescriptor( object ); + addReferredBySubDataAttributePropertyDescriptor( object ); } return itemPropertyDescriptors; } @@ -201,6 +202,22 @@ public class PresenceConditionItemProvider extends NsdObjectItemProvider { null, null ) ); } + /** + * This adds a property descriptor for the Referred By Sub Data Attribute feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addReferredBySubDataAttributePropertyDescriptor( Object object ) { + itemPropertyDescriptors.add( createItemPropertyDescriptor( + ( ( ComposeableAdapterFactory ) adapterFactory ).getRootAdapterFactory(), getResourceLocator(), + getString( "_UI_PresenceCondition_referredBySubDataAttribute_feature" ), + getString( "_UI_PropertyDescriptor_description", + "_UI_PresenceCondition_referredBySubDataAttribute_feature", "_UI_PresenceCondition_type" ), + NsdPackage.Literals.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE, true, false, true, null, null, + null ) ); + } + /** * This returns PresenceCondition.gif. * <!-- begin-user-doc --> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/SubDataAttributeItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/SubDataAttributeItemProvider.java index c02b0a49b747e492e804a628a2b8a047a0a46365..490b359a00db19222d1e34c33e73919d965fa41b 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/SubDataAttributeItemProvider.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/SubDataAttributeItemProvider.java @@ -74,6 +74,7 @@ public class SubDataAttributeItemProvider extends DocumentedClassItemProvider { addMaxValuePropertyDescriptor( object ); addMinValuePropertyDescriptor( object ); addNamePropertyDescriptor( object ); + addRefersToPresenceConditionPropertyDescriptor( object ); } return itemPropertyDescriptors; } @@ -190,6 +191,22 @@ public class SubDataAttributeItemProvider extends DocumentedClassItemProvider { ItemPropertyDescriptor.GENERIC_VALUE_IMAGE, null, null ) ); } + /** + * This adds a property descriptor for the Refers To Presence Condition feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + protected void addRefersToPresenceConditionPropertyDescriptor( Object object ) { + itemPropertyDescriptors.add( + createItemPropertyDescriptor( ( ( ComposeableAdapterFactory ) adapterFactory ).getRootAdapterFactory(), + getResourceLocator(), getString( "_UI_SubDataAttribute_refersToPresenceCondition_feature" ), + getString( "_UI_PropertyDescriptor_description", + "_UI_SubDataAttribute_refersToPresenceCondition_feature", "_UI_SubDataAttribute_type" ), + NsdPackage.Literals.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION, 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 31e45673f0a7df36e8450791fa6fe53a3093d0e8..4ed29cb8a11c82eb2926cbb0c8e4480e54c839b1 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore @@ -833,6 +833,12 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="enumerations" ordered="false" eType="#//Enumerations" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//Enumerations/enumeration"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="refersToBaseEnumeration" + ordered="false" eType="#//Enumeration" transient="true" unsettable="true" + resolveProxies="false" eOpposite="#//Enumeration/referredByEnumerationAsBase"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="referredByEnumerationAsBase" + ordered="false" upperBound="-1" eType="#//Enumeration" transient="true" unsettable="true" + resolveProxies="false" eOpposite="#//Enumeration/refersToBaseEnumeration"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="Enumerations" eSuperTypes="#//NsdObject"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1072,6 +1078,10 @@ <eParameters name="functionalConstraintAbbreviation" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> <eParameters name="console" eType="#//IRiseClipseConsole"/> </eOperations> + <eOperations name="findEnumeration" eType="#//Enumeration"> + <eParameters name="enumerationName" 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"> @@ -1235,6 +1245,9 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="referredByDataAttribute" ordered="false" upperBound="-1" eType="#//DataAttribute" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//DataAttribute/refersToPresenceCondition"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="referredBySubDataAttribute" + ordered="false" upperBound="-1" eType="#//SubDataAttribute" transient="true" + unsettable="true" resolveProxies="false" eOpposite="#//SubDataAttribute/refersToPresenceCondition"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="PresenceConditions" eSuperTypes="#//NsdObject"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> @@ -1554,6 +1567,9 @@ <eStructuralFeatures xsi:type="ecore:EReference" name="constructedAttribute" ordered="false" eType="#//ConstructedAttribute" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//ConstructedAttribute/subDataAttribute"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="refersToPresenceCondition" + ordered="false" eType="#//PresenceCondition" transient="true" unsettable="true" + resolveProxies="false" eOpposite="#//PresenceCondition/referredBySubDataAttribute"/> </eClassifiers> <eClassifiers xsi:type="ecore:EClass" name="SubDataObject" eSuperTypes="#//DocumentedClass #//AgPresenceCondition #//AgArray #//AgUnderlyingType"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel index 7987efc48fb5a64a8b5f5598165d380cf2012382..34f799a431c8b3f77dd9cf0eab2d32198c368c48 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel @@ -256,6 +256,8 @@ <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Enumeration/inheritedFrom"/> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//Enumeration/name"/> <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//Enumeration/enumerations"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//Enumeration/refersToBaseEnumeration"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//Enumeration/referredByEnumerationAsBase"/> </genClasses> <genClasses ecoreClass="nsd.ecore#//Enumerations"> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//Enumerations/enumeration"/> @@ -324,6 +326,10 @@ <genParameters ecoreParameter="nsd.ecore#//NS/findFunctionalConstraint/functionalConstraintAbbreviation"/> <genParameters ecoreParameter="nsd.ecore#//NS/findFunctionalConstraint/console"/> </genOperations> + <genOperations ecoreOperation="nsd.ecore#//NS/findEnumeration"> + <genParameters ecoreParameter="nsd.ecore#//NS/findEnumeration/enumerationName"/> + <genParameters ecoreParameter="nsd.ecore#//NS/findEnumeration/console"/> + </genOperations> </genClasses> <genClasses ecoreClass="nsd.ecore#//NSDoc"> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//NSDoc/doc"/> @@ -339,6 +345,7 @@ <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//PresenceCondition/referredByDataObjectForDerivedStatistics"/> <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//PresenceCondition/referredBySubDataObject"/> <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//PresenceCondition/referredByDataAttribute"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//PresenceCondition/referredBySubDataAttribute"/> </genClasses> <genClasses ecoreClass="nsd.ecore#//PresenceConditions"> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//PresenceConditions/presenceCondition"/> @@ -392,6 +399,7 @@ <genClasses ecoreClass="nsd.ecore#//SubDataAttribute"> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//SubDataAttribute/name"/> <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EReference nsd.ecore#//SubDataAttribute/constructedAttribute"/> + <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//SubDataAttribute/refersToPresenceCondition"/> </genClasses> <genClasses ecoreClass="nsd.ecore#//SubDataObject"> <genFeatures createChild="false" ecoreFeature="ecore:EAttribute nsd.ecore#//SubDataObject/name"/> 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 19afbf43ab62e2b132e95bd1f452e52b62a00906..ac1a737331df4172a7dae01b1858e3ebd014d4ac 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 @@ -34,6 +34,8 @@ import org.eclipse.emf.common.util.EList; * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getInheritedFrom <em>Inherited From</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getName <em>Name</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getEnumerations <em>Enumerations</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getRefersToBaseEnumeration <em>Refers To Base Enumeration</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getReferredByEnumerationAsBase <em>Referred By Enumeration As Base</em>}</li> * </ul> * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumeration() @@ -211,4 +213,100 @@ public interface Enumeration extends TitledClass { */ void setEnumerations( Enumerations value ); + /** + * Returns the value of the '<em><b>Refers To Base Enumeration</b></em>' reference. + * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getReferredByEnumerationAsBase <em>Referred By Enumeration As Base</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Refers To Base Enumeration</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 Base Enumeration</em>' reference. + * @see #isSetRefersToBaseEnumeration() + * @see #unsetRefersToBaseEnumeration() + * @see #setRefersToBaseEnumeration(Enumeration) + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumeration_RefersToBaseEnumeration() + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getReferredByEnumerationAsBase + * @model opposite="referredByEnumerationAsBase" resolveProxies="false" unsettable="true" transient="true" ordered="false" + * @generated + */ + Enumeration getRefersToBaseEnumeration(); + + /** + * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getRefersToBaseEnumeration <em>Refers To Base Enumeration</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Refers To Base Enumeration</em>' reference. + * @see #isSetRefersToBaseEnumeration() + * @see #unsetRefersToBaseEnumeration() + * @see #getRefersToBaseEnumeration() + * @generated + */ + void setRefersToBaseEnumeration( Enumeration value ); + + /** + * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getRefersToBaseEnumeration <em>Refers To Base Enumeration</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isSetRefersToBaseEnumeration() + * @see #getRefersToBaseEnumeration() + * @see #setRefersToBaseEnumeration(Enumeration) + * @generated + */ + void unsetRefersToBaseEnumeration(); + + /** + * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getRefersToBaseEnumeration <em>Refers To Base Enumeration</em>}' reference is set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return whether the value of the '<em>Refers To Base Enumeration</em>' reference is set. + * @see #unsetRefersToBaseEnumeration() + * @see #getRefersToBaseEnumeration() + * @see #setRefersToBaseEnumeration(Enumeration) + * @generated + */ + boolean isSetRefersToBaseEnumeration(); + + /** + * Returns the value of the '<em><b>Referred By Enumeration As Base</b></em>' reference list. + * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration}. + * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getRefersToBaseEnumeration <em>Refers To Base Enumeration</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Referred By Enumeration As Base</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Referred By Enumeration As Base</em>' reference list. + * @see #isSetReferredByEnumerationAsBase() + * @see #unsetReferredByEnumerationAsBase() + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getEnumeration_ReferredByEnumerationAsBase() + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getRefersToBaseEnumeration + * @model opposite="refersToBaseEnumeration" resolveProxies="false" unsettable="true" transient="true" ordered="false" + * @generated + */ + EList< Enumeration > getReferredByEnumerationAsBase(); + + /** + * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getReferredByEnumerationAsBase <em>Referred By Enumeration As Base</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isSetReferredByEnumerationAsBase() + * @see #getReferredByEnumerationAsBase() + * @generated + */ + void unsetReferredByEnumerationAsBase(); + + /** + * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getReferredByEnumerationAsBase <em>Referred By Enumeration As Base</em>}' reference list is set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return whether the value of the '<em>Referred By Enumeration As Base</em>' reference list is set. + * @see #unsetReferredByEnumerationAsBase() + * @see #getReferredByEnumerationAsBase() + * @generated + */ + boolean isSetReferredByEnumerationAsBase(); + } // Enumeration 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 4fc7fcb0fc3a5b31e2fbe2c7c5bf0cae0534abee..1401cc8fc96e62a0c6a5482e40984083f1e0b067 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 @@ -635,4 +635,12 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc { FunctionalConstraint findFunctionalConstraint( String functionalConstraintAbbreviation, IRiseClipseConsole console ); + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @model consoleType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.IRiseClipseConsole" + * @generated + */ + Enumeration findEnumeration( String enumerationName, 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 8d569898ab74f03f020c89339a64641d8be8d1a6..00e5de4609826bd4beaaeb5fc89be48a2cd0c4df 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 @@ -3361,6 +3361,24 @@ public interface NsdPackage extends EPackage { */ int ENUMERATION__ENUMERATIONS = TITLED_CLASS_FEATURE_COUNT + 3; + /** + * The feature id for the '<em><b>Refers To Base Enumeration</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ENUMERATION__REFERS_TO_BASE_ENUMERATION = TITLED_CLASS_FEATURE_COUNT + 4; + + /** + * The feature id for the '<em><b>Referred By Enumeration As Base</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE = TITLED_CLASS_FEATURE_COUNT + 5; + /** * The number of structural features of the '<em>Enumeration</em>' class. * <!-- begin-user-doc --> @@ -3368,7 +3386,7 @@ public interface NsdPackage extends EPackage { * @generated * @ordered */ - int ENUMERATION_FEATURE_COUNT = TITLED_CLASS_FEATURE_COUNT + 4; + int ENUMERATION_FEATURE_COUNT = TITLED_CLASS_FEATURE_COUNT + 6; /** * The operation id for the '<em>Build Explicit Links</em>' operation. @@ -4342,6 +4360,15 @@ public interface NsdPackage extends EPackage { */ int NS___FIND_FUNCTIONAL_CONSTRAINT__STRING_IRISECLIPSECONSOLE = COPYRIGHTED_OPERATION_COUNT + 2; + /** + * The operation id for the '<em>Find Enumeration</em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int NS___FIND_ENUMERATION__STRING_IRISECLIPSECONSOLE = COPYRIGHTED_OPERATION_COUNT + 3; + /** * The number of operations of the '<em>NS</em>' class. * <!-- begin-user-doc --> @@ -4349,7 +4376,7 @@ public interface NsdPackage extends EPackage { * @generated * @ordered */ - int NS_OPERATION_COUNT = COPYRIGHTED_OPERATION_COUNT + 3; + int NS_OPERATION_COUNT = COPYRIGHTED_OPERATION_COUNT + 4; /** * The feature id for the '<em><b>Line Number</b></em>' attribute. @@ -4585,6 +4612,15 @@ public interface NsdPackage extends EPackage { */ int PRESENCE_CONDITION__REFERRED_BY_DATA_ATTRIBUTE = NSD_OBJECT_FEATURE_COUNT + 8; + /** + * The feature id for the '<em><b>Referred By Sub Data Attribute</b></em>' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE = NSD_OBJECT_FEATURE_COUNT + 9; + /** * The number of structural features of the '<em>Presence Condition</em>' class. * <!-- begin-user-doc --> @@ -4592,7 +4628,7 @@ public interface NsdPackage extends EPackage { * @generated * @ordered */ - int PRESENCE_CONDITION_FEATURE_COUNT = NSD_OBJECT_FEATURE_COUNT + 9; + int PRESENCE_CONDITION_FEATURE_COUNT = NSD_OBJECT_FEATURE_COUNT + 10; /** * The operation id for the '<em>Build Explicit Links</em>' operation. @@ -5854,6 +5890,15 @@ public interface NsdPackage extends EPackage { */ int SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE = DOCUMENTED_CLASS_FEATURE_COUNT + 13; + /** + * The feature id for the '<em><b>Refers To Presence Condition</b></em>' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + int SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION = DOCUMENTED_CLASS_FEATURE_COUNT + 14; + /** * The number of structural features of the '<em>Sub Data Attribute</em>' class. * <!-- begin-user-doc --> @@ -5861,7 +5906,7 @@ public interface NsdPackage extends EPackage { * @generated * @ordered */ - int SUB_DATA_ATTRIBUTE_FEATURE_COUNT = DOCUMENTED_CLASS_FEATURE_COUNT + 14; + int SUB_DATA_ATTRIBUTE_FEATURE_COUNT = DOCUMENTED_CLASS_FEATURE_COUNT + 15; /** * The operation id for the '<em>Build Explicit Links</em>' operation. @@ -8053,6 +8098,28 @@ public interface NsdPackage extends EPackage { */ EReference getEnumeration_Enumerations(); + /** + * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getRefersToBaseEnumeration <em>Refers To Base Enumeration</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Refers To Base Enumeration</em>'. + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getRefersToBaseEnumeration() + * @see #getEnumeration() + * @generated + */ + EReference getEnumeration_RefersToBaseEnumeration(); + + /** + * Returns the meta object for the reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getReferredByEnumerationAsBase <em>Referred By Enumeration As Base</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference list '<em>Referred By Enumeration As Base</em>'. + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration#getReferredByEnumerationAsBase() + * @see #getEnumeration() + * @generated + */ + EReference getEnumeration_ReferredByEnumerationAsBase(); + /** * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations <em>Enumerations</em>}'. * <!-- begin-user-doc --> @@ -8591,6 +8658,16 @@ public interface NsdPackage extends EPackage { */ EOperation getNS__FindFunctionalConstraint__String_IRiseClipseConsole(); + /** + * Returns the meta object for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findEnumeration(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) <em>Find Enumeration</em>}' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the '<em>Find Enumeration</em>' operation. + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findEnumeration(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) + * @generated + */ + EOperation getNS__FindEnumeration__String_IRiseClipseConsole(); + /** * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSDoc <em>NS Doc</em>}'. * <!-- begin-user-doc --> @@ -8732,6 +8809,17 @@ public interface NsdPackage extends EPackage { */ EReference getPresenceCondition_ReferredByDataAttribute(); + /** + * Returns the meta object for the reference list '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredBySubDataAttribute <em>Referred By Sub Data Attribute</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference list '<em>Referred By Sub Data Attribute</em>'. + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredBySubDataAttribute() + * @see #getPresenceCondition() + * @generated + */ + EReference getPresenceCondition_ReferredBySubDataAttribute(); + /** * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions <em>Presence Conditions</em>}'. * <!-- begin-user-doc --> @@ -9183,6 +9271,17 @@ public interface NsdPackage extends EPackage { */ EReference getSubDataAttribute_ConstructedAttribute(); + /** + * Returns the meta object for the reference '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}'. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return the meta object for the reference '<em>Refers To Presence Condition</em>'. + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getRefersToPresenceCondition() + * @see #getSubDataAttribute() + * @generated + */ + EReference getSubDataAttribute_RefersToPresenceCondition(); + /** * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject <em>Sub Data Object</em>}'. * <!-- begin-user-doc --> @@ -10980,6 +11079,23 @@ public interface NsdPackage extends EPackage { */ EReference ENUMERATION__ENUMERATIONS = eINSTANCE.getEnumeration_Enumerations(); + /** + * The meta object literal for the '<em><b>Refers To Base Enumeration</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference ENUMERATION__REFERS_TO_BASE_ENUMERATION = eINSTANCE.getEnumeration_RefersToBaseEnumeration(); + + /** + * The meta object literal for the '<em><b>Referred By Enumeration As Base</b></em>' reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE = eINSTANCE + .getEnumeration_ReferredByEnumerationAsBase(); + /** * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationsImpl <em>Enumerations</em>}' class. * <!-- begin-user-doc --> @@ -11403,6 +11519,15 @@ public interface NsdPackage extends EPackage { EOperation NS___FIND_FUNCTIONAL_CONSTRAINT__STRING_IRISECLIPSECONSOLE = eINSTANCE .getNS__FindFunctionalConstraint__String_IRiseClipseConsole(); + /** + * The meta object literal for the '<em><b>Find Enumeration</b></em>' operation. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EOperation NS___FIND_ENUMERATION__STRING_IRISECLIPSECONSOLE = eINSTANCE + .getNS__FindEnumeration__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 --> @@ -11514,6 +11639,15 @@ public interface NsdPackage extends EPackage { EReference PRESENCE_CONDITION__REFERRED_BY_DATA_ATTRIBUTE = eINSTANCE .getPresenceCondition_ReferredByDataAttribute(); + /** + * The meta object literal for the '<em><b>Referred By Sub Data Attribute</b></em>' reference list feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE = eINSTANCE + .getPresenceCondition_ReferredBySubDataAttribute(); + /** * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionsImpl <em>Presence Conditions</em>}' class. * <!-- begin-user-doc --> @@ -11876,6 +12010,15 @@ public interface NsdPackage extends EPackage { */ EReference SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE = eINSTANCE.getSubDataAttribute_ConstructedAttribute(); + /** + * The meta object literal for the '<em><b>Refers To Presence Condition</b></em>' reference feature. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + EReference SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION = eINSTANCE + .getSubDataAttribute_RefersToPresenceCondition(); + /** * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataObjectImpl <em>Sub Data Object</em>}' class. * <!-- begin-user-doc --> 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 5f563c348531d899775a78c84cc960083478ef1a..cd38b29dec62d071256f605fa1f4c3f45b7fecef 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 @@ -39,6 +39,7 @@ import org.eclipse.emf.common.util.EList; * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredByDataObjectForDerivedStatistics <em>Referred By Data Object For Derived Statistics</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredBySubDataObject <em>Referred By Sub Data Object</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredByDataAttribute <em>Referred By Data Attribute</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredBySubDataAttribute <em>Referred By Sub Data Attribute</em>}</li> * </ul> * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceCondition() @@ -438,4 +439,45 @@ public interface PresenceCondition extends NsdObject { */ boolean isSetReferredByDataAttribute(); + /** + * Returns the value of the '<em><b>Referred By Sub Data Attribute</b></em>' reference list. + * The list contents are of type {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute}. + * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Referred By Sub Data Attribute</em>' reference list isn't clear, + * there really should be more of a description here... + * </p> + * <!-- end-user-doc --> + * @return the value of the '<em>Referred By Sub Data Attribute</em>' reference list. + * @see #isSetReferredBySubDataAttribute() + * @see #unsetReferredBySubDataAttribute() + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getPresenceCondition_ReferredBySubDataAttribute() + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getRefersToPresenceCondition + * @model opposite="refersToPresenceCondition" resolveProxies="false" unsettable="true" transient="true" ordered="false" + * @generated + */ + EList< SubDataAttribute > getReferredBySubDataAttribute(); + + /** + * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredBySubDataAttribute <em>Referred By Sub Data Attribute</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isSetReferredBySubDataAttribute() + * @see #getReferredBySubDataAttribute() + * @generated + */ + void unsetReferredBySubDataAttribute(); + + /** + * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredBySubDataAttribute <em>Referred By Sub Data Attribute</em>}' reference list is set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return whether the value of the '<em>Referred By Sub Data Attribute</em>' reference list is set. + * @see #unsetReferredBySubDataAttribute() + * @see #getReferredBySubDataAttribute() + * @generated + */ + boolean isSetReferredBySubDataAttribute(); + } // PresenceCondition 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 b9e32081cd2a7ce766758bc1bbd297b2d1871bdc..d5790f8ddaaf31152e8b787df3c2583073ab09d9 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 @@ -30,6 +30,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * <ul> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getName <em>Name</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getConstructedAttribute <em>Constructed Attribute</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}</li> * </ul> * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute() @@ -115,4 +116,59 @@ public interface SubDataAttribute extends DocumentedClass, AgPresenceCondition, */ void setConstructedAttribute( ConstructedAttribute value ); + /** + * Returns the value of the '<em><b>Refers To Presence Condition</b></em>' reference. + * It is bidirectional and its opposite is '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredBySubDataAttribute <em>Referred By Sub Data Attribute</em>}'. + * <!-- begin-user-doc --> + * <p> + * If the meaning of the '<em>Refers To Presence Condition</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 Presence Condition</em>' reference. + * @see #isSetRefersToPresenceCondition() + * @see #unsetRefersToPresenceCondition() + * @see #setRefersToPresenceCondition(PresenceCondition) + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getSubDataAttribute_RefersToPresenceCondition() + * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition#getReferredBySubDataAttribute + * @model opposite="referredBySubDataAttribute" resolveProxies="false" unsettable="true" transient="true" ordered="false" + * @generated + */ + PresenceCondition getRefersToPresenceCondition(); + + /** + * Sets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @param value the new value of the '<em>Refers To Presence Condition</em>' reference. + * @see #isSetRefersToPresenceCondition() + * @see #unsetRefersToPresenceCondition() + * @see #getRefersToPresenceCondition() + * @generated + */ + void setRefersToPresenceCondition( PresenceCondition value ); + + /** + * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #isSetRefersToPresenceCondition() + * @see #getRefersToPresenceCondition() + * @see #setRefersToPresenceCondition(PresenceCondition) + * @generated + */ + void unsetRefersToPresenceCondition(); + + /** + * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}' reference is set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @return whether the value of the '<em>Refers To Presence Condition</em>' reference is set. + * @see #unsetRefersToPresenceCondition() + * @see #getRefersToPresenceCondition() + * @see #setRefersToPresenceCondition(PresenceCondition) + * @generated + */ + boolean isSetRefersToPresenceCondition(); + } // SubDataAttribute 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 7925f276b3b29bded9d83f4429df6a4837728334..553906bd2dde6737e3fdc3738507cf68ffe9732a 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 @@ -2898,29 +2898,27 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib if( super.buildExplicitLinks( console ) ) return true; if( isSetFc() ) { - setRefersToFunctionalConstraint( getCDC().getCDCs().getNS().findFunctionalConstraint( getFc(), console )); + setRefersToFunctionalConstraint( getCDC().getCDCs().getNS().findFunctionalConstraint( getFc(), console ) ); if( getRefersToFunctionalConstraint() == null ) { - console.error( "FunctionalConstraint (abbreviation: " + getFc() + ") refers by DataAttribute (name: " + getName() - + ") in NS (id:" + getCDC().getCDCs().getNS().getId() + ") is unknown" ); + console.error( "FunctionalConstraint (abbreviation: " + getFc() + ") refers by DataAttribute (name: " + + getName() + ") in NS (id:" + getCDC().getCDCs().getNS().getId() + ") is unknown" ); } else { - console.info( "FunctionalConstraint (abbreviation: " + getFc() + ") refers by DataAttribute (name: " + getName() - + ") in NS (id:" + getCDC().getCDCs().getNS().getId() + ") found in NS (id:" + console.info( "FunctionalConstraint (abbreviation: " + getFc() + ") refers by DataAttribute (name: " + + getName() + ") in NS (id:" + getCDC().getCDCs().getNS().getId() + ") found in NS (id:" + getRefersToFunctionalConstraint().getFunctionalConstraints().getNS().getId() + ")" ); } } if( isSetPresCond() ) { - setRefersToPresenceCondition( - getCDC().getCDCs().getNS().findPresenceCondition( getPresCond(), console ) ); + setRefersToPresenceCondition( getCDC().getCDCs().getNS().findPresenceCondition( getPresCond(), console ) ); if( getRefersToPresenceCondition() == null ) { - console.error( - "PresenceCondition (name: " + getPresCond() + ") refers by DataAttribute (name: " + getName() - + ") in NS (id:" + getCDC().getCDCs().getNS().getId() + ") is unknown" ); + console.error( "PresenceCondition (name: " + getPresCond() + ") refers by DataAttribute (name: " + + getName() + ") in NS (id:" + getCDC().getCDCs().getNS().getId() + ") is unknown" ); } else { - console.info( "PresenceCondition (name: " + getPresCond() + ") refers by DataAttribute (name: " + getName() - + ") in NS (id:" + getCDC().getCDCs().getNS().getId() + ") found in NS (id:" + console.info( "PresenceCondition (name: " + getPresCond() + ") refers by DataAttribute (name: " + + getName() + ") in NS (id:" + getCDC().getCDCs().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/EnumerationImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/EnumerationImpl.java index 4ba0bc48cd798b9de8ef60aad7c8f5ce4672b132..d4650b02debce0c1fd5b95f0731ad44590eb1bdf 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 @@ -23,6 +23,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; import java.util.Collection; @@ -36,6 +37,7 @@ import org.eclipse.emf.ecore.InternalEObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList; +import org.eclipse.emf.ecore.util.EObjectWithInverseEList; import org.eclipse.emf.ecore.util.EcoreUtil; import org.eclipse.emf.ecore.util.InternalEList; @@ -51,6 +53,8 @@ import org.eclipse.emf.ecore.util.InternalEList; * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getInheritedFrom <em>Inherited From</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getName <em>Name</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getEnumerations <em>Enumerations</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getRefersToBaseEnumeration <em>Refers To Base Enumeration</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.EnumerationImpl#getReferredByEnumerationAsBase <em>Referred By Enumeration As Base</em>}</li> * </ul> * * @generated @@ -124,6 +128,35 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { */ protected boolean nameESet; + /** + * The cached value of the '{@link #getRefersToBaseEnumeration() <em>Refers To Base Enumeration</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRefersToBaseEnumeration() + * @generated + * @ordered + */ + protected Enumeration refersToBaseEnumeration; + + /** + * This is true if the Refers To Base Enumeration reference has been set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + protected boolean refersToBaseEnumerationESet; + + /** + * The cached value of the '{@link #getReferredByEnumerationAsBase() <em>Referred By Enumeration As Base</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getReferredByEnumerationAsBase() + * @generated + * @ordered + */ + protected EList< Enumeration > referredByEnumerationAsBase; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -321,6 +354,157 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { NsdPackage.ENUMERATION__ENUMERATIONS, newEnumerations, newEnumerations ) ); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public Enumeration getRefersToBaseEnumeration() { + return refersToBaseEnumeration; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRefersToBaseEnumeration( Enumeration newRefersToBaseEnumeration, + NotificationChain msgs ) { + Enumeration oldRefersToBaseEnumeration = refersToBaseEnumeration; + refersToBaseEnumeration = newRefersToBaseEnumeration; + boolean oldRefersToBaseEnumerationESet = refersToBaseEnumerationESet; + refersToBaseEnumerationESet = true; + if( eNotificationRequired() ) { + ENotificationImpl notification = new ENotificationImpl( this, Notification.SET, + NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION, oldRefersToBaseEnumeration, + newRefersToBaseEnumeration, !oldRefersToBaseEnumerationESet ); + if( msgs == null ) + msgs = notification; + else + msgs.add( notification ); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setRefersToBaseEnumeration( Enumeration newRefersToBaseEnumeration ) { + if( newRefersToBaseEnumeration != refersToBaseEnumeration ) { + NotificationChain msgs = null; + if( refersToBaseEnumeration != null ) + msgs = ( ( InternalEObject ) refersToBaseEnumeration ).eInverseRemove( this, + NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE, Enumeration.class, msgs ); + if( newRefersToBaseEnumeration != null ) + msgs = ( ( InternalEObject ) newRefersToBaseEnumeration ).eInverseAdd( this, + NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE, Enumeration.class, msgs ); + msgs = basicSetRefersToBaseEnumeration( newRefersToBaseEnumeration, msgs ); + if( msgs != null ) msgs.dispatch(); + } + else { + boolean oldRefersToBaseEnumerationESet = refersToBaseEnumerationESet; + refersToBaseEnumerationESet = true; + if( eNotificationRequired() ) eNotify( + new ENotificationImpl( this, Notification.SET, NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION, + newRefersToBaseEnumeration, newRefersToBaseEnumeration, !oldRefersToBaseEnumerationESet ) ); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicUnsetRefersToBaseEnumeration( NotificationChain msgs ) { + Enumeration oldRefersToBaseEnumeration = refersToBaseEnumeration; + refersToBaseEnumeration = null; + boolean oldRefersToBaseEnumerationESet = refersToBaseEnumerationESet; + refersToBaseEnumerationESet = false; + if( eNotificationRequired() ) { + ENotificationImpl notification = new ENotificationImpl( this, Notification.UNSET, + NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION, oldRefersToBaseEnumeration, null, + oldRefersToBaseEnumerationESet ); + if( msgs == null ) + msgs = notification; + else + msgs.add( notification ); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void unsetRefersToBaseEnumeration() { + if( refersToBaseEnumeration != null ) { + NotificationChain msgs = null; + msgs = ( ( InternalEObject ) refersToBaseEnumeration ).eInverseRemove( this, + NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE, Enumeration.class, msgs ); + msgs = basicUnsetRefersToBaseEnumeration( msgs ); + if( msgs != null ) msgs.dispatch(); + } + else { + boolean oldRefersToBaseEnumerationESet = refersToBaseEnumerationESet; + refersToBaseEnumerationESet = false; + if( eNotificationRequired() ) eNotify( new ENotificationImpl( this, Notification.UNSET, + NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION, null, null, oldRefersToBaseEnumerationESet ) ); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetRefersToBaseEnumeration() { + return refersToBaseEnumerationESet; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EList< Enumeration > getReferredByEnumerationAsBase() { + if( referredByEnumerationAsBase == null ) { + referredByEnumerationAsBase = new EObjectWithInverseEList.Unsettable< Enumeration >( Enumeration.class, + this, NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE, + NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION ); + } + return referredByEnumerationAsBase; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void unsetReferredByEnumerationAsBase() { + if( referredByEnumerationAsBase != null ) + ( ( InternalEList.Unsettable< ? > ) referredByEnumerationAsBase ).unset(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetReferredByEnumerationAsBase() { + return referredByEnumerationAsBase != null + && ( ( InternalEList.Unsettable< ? > ) referredByEnumerationAsBase ).isSet(); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -336,6 +520,14 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { case NsdPackage.ENUMERATION__ENUMERATIONS: if( eInternalContainer() != null ) msgs = eBasicRemoveFromContainer( msgs ); return basicSetEnumerations( ( Enumerations ) otherEnd, msgs ); + case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION: + if( refersToBaseEnumeration != null ) + msgs = ( ( InternalEObject ) refersToBaseEnumeration ).eInverseRemove( this, + NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE, Enumeration.class, msgs ); + return basicSetRefersToBaseEnumeration( ( Enumeration ) otherEnd, msgs ); + case NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE: + return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredByEnumerationAsBase() ) + .basicAdd( otherEnd, msgs ); } return super.eInverseAdd( otherEnd, featureID, msgs ); } @@ -352,6 +544,10 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { return ( ( InternalEList< ? > ) getLiteral() ).basicRemove( otherEnd, msgs ); case NsdPackage.ENUMERATION__ENUMERATIONS: return basicSetEnumerations( null, msgs ); + case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION: + return basicUnsetRefersToBaseEnumeration( msgs ); + case NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE: + return ( ( InternalEList< ? > ) getReferredByEnumerationAsBase() ).basicRemove( otherEnd, msgs ); } return super.eInverseRemove( otherEnd, featureID, msgs ); } @@ -387,6 +583,10 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { return getName(); case NsdPackage.ENUMERATION__ENUMERATIONS: return getEnumerations(); + case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION: + return getRefersToBaseEnumeration(); + case NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE: + return getReferredByEnumerationAsBase(); } return super.eGet( featureID, resolve, coreType ); } @@ -413,6 +613,13 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { case NsdPackage.ENUMERATION__ENUMERATIONS: setEnumerations( ( Enumerations ) newValue ); return; + case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION: + setRefersToBaseEnumeration( ( Enumeration ) newValue ); + return; + case NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE: + getReferredByEnumerationAsBase().clear(); + getReferredByEnumerationAsBase().addAll( ( Collection< ? extends Enumeration > ) newValue ); + return; } super.eSet( featureID, newValue ); } @@ -437,6 +644,12 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { case NsdPackage.ENUMERATION__ENUMERATIONS: setEnumerations( ( Enumerations ) null ); return; + case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION: + unsetRefersToBaseEnumeration(); + return; + case NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE: + unsetReferredByEnumerationAsBase(); + return; } super.eUnset( featureID ); } @@ -457,6 +670,10 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { return isSetName(); case NsdPackage.ENUMERATION__ENUMERATIONS: return getEnumerations() != null; + case NsdPackage.ENUMERATION__REFERS_TO_BASE_ENUMERATION: + return isSetRefersToBaseEnumeration(); + case NsdPackage.ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE: + return isSetReferredByEnumerationAsBase(); } return super.eIsSet( featureID ); } @@ -485,4 +702,27 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { return result.toString(); } + /* Implicit link + * Enumeration.inheritedFrom -> Enumeration.name + */ + @Override + public boolean buildExplicitLinks( IRiseClipseConsole console ) { + if( super.buildExplicitLinks( console ) ) return true; + + if( isSetInheritedFrom() ) { + setRefersToBaseEnumeration( getEnumerations().getNS().findEnumeration( getInheritedFrom(), console ) ); + if( getRefersToBaseEnumeration() == null ) { + console.error( "Enumeration (name: " + getInheritedFrom() + ") refers by Enumeration (name: " + + getName() + ") in NS (id:" + getEnumerations().getNS().getId() + ") is unknown" ); + } + else { + console.info( "Enumeration (name: " + getInheritedFrom() + ") refers by Enumeration (name: " + getName() + + ") in NS (id:" + getEnumerations().getNS().getId() + ") found in NS (id:" + + getRefersToBaseEnumeration().getEnumerations().getNS().getId() + ")" ); + } + } + + return false; + } + } //EnumerationImpl 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 e8fa279425db7affa5bd8dd8f080de1d3d433325..04b559e714af4d6f9f2a4866af0e609662eab9ac 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 @@ -29,6 +29,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints; @@ -1712,7 +1713,8 @@ public class NSImpl extends CopyrightedImpl implements NS { IRiseClipseConsole console ) { if( isSetFunctionalConstraints() ) { FunctionalConstraint found = getFunctionalConstraints().getFunctionalConstraint().stream() - .filter( fc -> fc.getAbbreviation().equals( functionalConstraintAbbreviation ) ).findAny().orElse( null ); + .filter( fc -> fc.getAbbreviation().equals( functionalConstraintAbbreviation ) ).findAny() + .orElse( null ); if( found != null ) return found; } @@ -1724,6 +1726,27 @@ public class NSImpl extends CopyrightedImpl implements NS { return null; } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated NOT + */ + @Override + public Enumeration findEnumeration( String enumerationName, IRiseClipseConsole console ) { + if( isSetEnumerations() ) { + Enumeration found = getEnumerations().getEnumeration().stream() + .filter( en -> en.getName().equals( enumerationName ) ).findAny().orElse( null ); + if( found != null ) return found; + } + + if( isSetDependsOn() ) { + getDependsOn().buildExplicitLinks( console ); + return getDependsOn().getRefersToNS().findEnumeration( enumerationName, console ); + } + + return null; + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2557,6 +2580,8 @@ public class NSImpl extends CopyrightedImpl implements NS { return findPresenceCondition( ( String ) arguments.get( 0 ), ( IRiseClipseConsole ) arguments.get( 1 ) ); case NsdPackage.NS___FIND_FUNCTIONAL_CONSTRAINT__STRING_IRISECLIPSECONSOLE: 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 ) ); } 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 196eac7a66cdc704f16383000220f9519004758b..402cf9cf9e8ce5ac3aaefc2541db7f28d0926e34 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 @@ -1953,6 +1953,26 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { return ( EReference ) enumerationEClass.getEStructuralFeatures().get( 3 ); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getEnumeration_RefersToBaseEnumeration() { + return ( EReference ) enumerationEClass.getEStructuralFeatures().get( 4 ); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getEnumeration_ReferredByEnumerationAsBase() { + return ( EReference ) enumerationEClass.getEStructuralFeatures().get( 5 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2453,6 +2473,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { return nsEClass.getEOperations().get( 2 ); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EOperation getNS__FindEnumeration__String_IRiseClipseConsole() { + return nsEClass.getEOperations().get( 3 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2583,6 +2613,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { return ( EReference ) presenceConditionEClass.getEStructuralFeatures().get( 8 ); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getPresenceCondition_ReferredBySubDataAttribute() { + return ( EReference ) presenceConditionEClass.getEStructuralFeatures().get( 9 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -3003,6 +3043,16 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { return ( EReference ) subDataAttributeEClass.getEStructuralFeatures().get( 1 ); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EReference getSubDataAttribute_RefersToPresenceCondition() { + return ( EReference ) subDataAttributeEClass.getEStructuralFeatures().get( 2 ); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -3841,6 +3891,8 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { createEAttribute( enumerationEClass, ENUMERATION__INHERITED_FROM ); createEAttribute( enumerationEClass, ENUMERATION__NAME ); createEReference( enumerationEClass, ENUMERATION__ENUMERATIONS ); + createEReference( enumerationEClass, ENUMERATION__REFERS_TO_BASE_ENUMERATION ); + createEReference( enumerationEClass, ENUMERATION__REFERRED_BY_ENUMERATION_AS_BASE ); enumerationsEClass = createEClass( ENUMERATIONS ); createEReference( enumerationsEClass, ENUMERATIONS__ENUMERATION ); @@ -3900,6 +3952,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { createEOperation( nsEClass, NS___FIND_CDC__STRING_IRISECLIPSECONSOLE ); createEOperation( nsEClass, NS___FIND_PRESENCE_CONDITION__STRING_IRISECLIPSECONSOLE ); createEOperation( nsEClass, NS___FIND_FUNCTIONAL_CONSTRAINT__STRING_IRISECLIPSECONSOLE ); + createEOperation( nsEClass, NS___FIND_ENUMERATION__STRING_IRISECLIPSECONSOLE ); nsDocEClass = createEClass( NS_DOC ); createEReference( nsDocEClass, NS_DOC__DOC ); @@ -3915,6 +3968,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { createEReference( presenceConditionEClass, PRESENCE_CONDITION__REFERRED_BY_DATA_OBJECT_FOR_DERIVED_STATISTICS ); createEReference( presenceConditionEClass, PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_OBJECT ); createEReference( presenceConditionEClass, PRESENCE_CONDITION__REFERRED_BY_DATA_ATTRIBUTE ); + createEReference( presenceConditionEClass, PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE ); presenceConditionsEClass = createEClass( PRESENCE_CONDITIONS ); createEReference( presenceConditionsEClass, PRESENCE_CONDITIONS__PRESENCE_CONDITION ); @@ -3970,6 +4024,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { subDataAttributeEClass = createEClass( SUB_DATA_ATTRIBUTE ); createEAttribute( subDataAttributeEClass, SUB_DATA_ATTRIBUTE__NAME ); createEReference( subDataAttributeEClass, SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE ); + createEReference( subDataAttributeEClass, SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION ); subDataObjectEClass = createEClass( SUB_DATA_OBJECT ); createEAttribute( subDataObjectEClass, SUB_DATA_OBJECT__NAME ); @@ -4543,6 +4598,14 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { initEReference( getEnumeration_Enumerations(), this.getEnumerations(), this.getEnumerations_Enumeration(), "enumerations", null, 0, 1, Enumeration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); + initEReference( getEnumeration_RefersToBaseEnumeration(), this.getEnumeration(), + this.getEnumeration_ReferredByEnumerationAsBase(), "refersToBaseEnumeration", null, 0, 1, + Enumeration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, + IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); + initEReference( getEnumeration_ReferredByEnumerationAsBase(), this.getEnumeration(), + this.getEnumeration_RefersToBaseEnumeration(), "referredByEnumerationAsBase", null, 0, -1, + Enumeration.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, + IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); initEClass( enumerationsEClass, Enumerations.class, "Enumerations", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS ); @@ -4700,6 +4763,11 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { addEParameter( op, ecorePackage.getEString(), "functionalConstraintAbbreviation", 0, 1, IS_UNIQUE, IS_ORDERED ); addEParameter( op, this.getIRiseClipseConsole(), "console", 0, 1, IS_UNIQUE, IS_ORDERED ); + op = initEOperation( getNS__FindEnumeration__String_IRiseClipseConsole(), this.getEnumeration(), + "findEnumeration", 0, 1, IS_UNIQUE, IS_ORDERED ); + addEParameter( op, ecorePackage.getEString(), "enumerationName", 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, @@ -4742,6 +4810,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { this.getDataAttribute_RefersToPresenceCondition(), "referredByDataAttribute", null, 0, -1, PresenceCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); + initEReference( getPresenceCondition_ReferredBySubDataAttribute(), this.getSubDataAttribute(), + this.getSubDataAttribute_RefersToPresenceCondition(), "referredBySubDataAttribute", null, 0, -1, + PresenceCondition.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, + IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); initEClass( presenceConditionsEClass, PresenceConditions.class, "PresenceConditions", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS ); @@ -4882,6 +4954,10 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { this.getConstructedAttribute_SubDataAttribute(), "constructedAttribute", null, 0, 1, SubDataAttribute.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); + initEReference( getSubDataAttribute_RefersToPresenceCondition(), this.getPresenceCondition(), + this.getPresenceCondition_ReferredBySubDataAttribute(), "refersToPresenceCondition", null, 0, 1, + SubDataAttribute.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, + IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); initEClass( subDataObjectEClass, SubDataObject.class, "SubDataObject", !IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS ); diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionImpl.java index 5e6d9ff63b06ccfc6419e27c72c942c7cc683722..c53468b03c6cba670f065fc07dbbb628476203b8 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/PresenceConditionImpl.java @@ -25,6 +25,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceConditions; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject; import java.util.Collection; import org.eclipse.emf.common.notify.Notification; @@ -56,6 +57,7 @@ import org.eclipse.emf.ecore.util.InternalEList; * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getReferredByDataObjectForDerivedStatistics <em>Referred By Data Object For Derived Statistics</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getReferredBySubDataObject <em>Referred By Sub Data Object</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getReferredByDataAttribute <em>Referred By Data Attribute</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.PresenceConditionImpl#getReferredBySubDataAttribute <em>Referred By Sub Data Attribute</em>}</li> * </ul> * * @generated @@ -217,6 +219,16 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond */ protected EList< DataAttribute > referredByDataAttribute; + /** + * The cached value of the '{@link #getReferredBySubDataAttribute() <em>Referred By Sub Data Attribute</em>}' reference list. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getReferredBySubDataAttribute() + * @generated + * @ordered + */ + protected EList< SubDataAttribute > referredBySubDataAttribute; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -625,6 +637,43 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond return referredByDataAttribute != null && ( ( InternalEList.Unsettable< ? > ) referredByDataAttribute ).isSet(); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public EList< SubDataAttribute > getReferredBySubDataAttribute() { + if( referredBySubDataAttribute == null ) { + referredBySubDataAttribute = new EObjectWithInverseEList.Unsettable< SubDataAttribute >( + SubDataAttribute.class, this, NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE, + NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION ); + } + return referredBySubDataAttribute; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void unsetReferredBySubDataAttribute() { + if( referredBySubDataAttribute != null ) + ( ( InternalEList.Unsettable< ? > ) referredBySubDataAttribute ).unset(); + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetReferredBySubDataAttribute() { + return referredBySubDataAttribute != null + && ( ( InternalEList.Unsettable< ? > ) referredBySubDataAttribute ).isSet(); + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -649,6 +698,9 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_ATTRIBUTE: return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredByDataAttribute() ) .basicAdd( otherEnd, msgs ); + case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE: + return ( ( InternalEList< InternalEObject > ) ( InternalEList< ? > ) getReferredBySubDataAttribute() ) + .basicAdd( otherEnd, msgs ); } return super.eInverseAdd( otherEnd, featureID, msgs ); } @@ -672,6 +724,8 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond return ( ( InternalEList< ? > ) getReferredBySubDataObject() ).basicRemove( otherEnd, msgs ); case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_ATTRIBUTE: return ( ( InternalEList< ? > ) getReferredByDataAttribute() ).basicRemove( otherEnd, msgs ); + case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE: + return ( ( InternalEList< ? > ) getReferredBySubDataAttribute() ).basicRemove( otherEnd, msgs ); } return super.eInverseRemove( otherEnd, featureID, msgs ); } @@ -717,6 +771,8 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond return getReferredBySubDataObject(); case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_ATTRIBUTE: return getReferredByDataAttribute(); + case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE: + return getReferredBySubDataAttribute(); } return super.eGet( featureID, resolve, coreType ); } @@ -761,6 +817,10 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond getReferredByDataAttribute().clear(); getReferredByDataAttribute().addAll( ( Collection< ? extends DataAttribute > ) newValue ); return; + case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE: + getReferredBySubDataAttribute().clear(); + getReferredBySubDataAttribute().addAll( ( Collection< ? extends SubDataAttribute > ) newValue ); + return; } super.eSet( featureID, newValue ); } @@ -800,6 +860,9 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_ATTRIBUTE: unsetReferredByDataAttribute(); return; + case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE: + unsetReferredBySubDataAttribute(); + return; } super.eUnset( featureID ); } @@ -830,6 +893,8 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond return isSetReferredBySubDataObject(); case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_DATA_ATTRIBUTE: return isSetReferredByDataAttribute(); + case NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE: + return isSetReferredBySubDataAttribute(); } return super.eIsSet( featureID ); } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataAttributeImpl.java index 27271bc1785b3c0bcaa65c175809d7dc02a77328..30147ad755c4a04df3e853c6a03fcdd74125752a 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataAttributeImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataAttributeImpl.java @@ -26,7 +26,9 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgPresenceCondition; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdFactory; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute; +import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; import java.math.BigDecimal; @@ -63,6 +65,7 @@ import org.eclipse.emf.ecore.util.EcoreUtil; * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl#getMinValue <em>Min Value</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl#getName <em>Name</em>}</li> * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl#getConstructedAttribute <em>Constructed Attribute</em>}</li> + * <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.SubDataAttributeImpl#getRefersToPresenceCondition <em>Refers To Presence Condition</em>}</li> * </ul> * * @generated @@ -446,6 +449,25 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData */ protected boolean nameESet; + /** + * The cached value of the '{@link #getRefersToPresenceCondition() <em>Refers To Presence Condition</em>}' reference. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @see #getRefersToPresenceCondition() + * @generated + * @ordered + */ + protected PresenceCondition refersToPresenceCondition; + + /** + * This is true if the Refers To Presence Condition reference has been set. + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + * @ordered + */ + protected boolean refersToPresenceConditionESet; + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1171,6 +1193,121 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData newConstructedAttribute, newConstructedAttribute ) ); } + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public PresenceCondition getRefersToPresenceCondition() { + return refersToPresenceCondition; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicSetRefersToPresenceCondition( PresenceCondition newRefersToPresenceCondition, + NotificationChain msgs ) { + PresenceCondition oldRefersToPresenceCondition = refersToPresenceCondition; + refersToPresenceCondition = newRefersToPresenceCondition; + boolean oldRefersToPresenceConditionESet = refersToPresenceConditionESet; + refersToPresenceConditionESet = true; + if( eNotificationRequired() ) { + ENotificationImpl notification = new ENotificationImpl( this, Notification.SET, + NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION, oldRefersToPresenceCondition, + newRefersToPresenceCondition, !oldRefersToPresenceConditionESet ); + if( msgs == null ) + msgs = notification; + else + msgs.add( notification ); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void setRefersToPresenceCondition( PresenceCondition newRefersToPresenceCondition ) { + if( newRefersToPresenceCondition != refersToPresenceCondition ) { + NotificationChain msgs = null; + if( refersToPresenceCondition != null ) + msgs = ( ( InternalEObject ) refersToPresenceCondition ).eInverseRemove( this, + NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE, PresenceCondition.class, msgs ); + if( newRefersToPresenceCondition != null ) + msgs = ( ( InternalEObject ) newRefersToPresenceCondition ).eInverseAdd( this, + NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE, PresenceCondition.class, msgs ); + msgs = basicSetRefersToPresenceCondition( newRefersToPresenceCondition, msgs ); + if( msgs != null ) msgs.dispatch(); + } + else { + boolean oldRefersToPresenceConditionESet = refersToPresenceConditionESet; + refersToPresenceConditionESet = true; + if( eNotificationRequired() ) eNotify( new ENotificationImpl( this, Notification.SET, + NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION, newRefersToPresenceCondition, + newRefersToPresenceCondition, !oldRefersToPresenceConditionESet ) ); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + public NotificationChain basicUnsetRefersToPresenceCondition( NotificationChain msgs ) { + PresenceCondition oldRefersToPresenceCondition = refersToPresenceCondition; + refersToPresenceCondition = null; + boolean oldRefersToPresenceConditionESet = refersToPresenceConditionESet; + refersToPresenceConditionESet = false; + if( eNotificationRequired() ) { + ENotificationImpl notification = new ENotificationImpl( this, Notification.UNSET, + NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION, oldRefersToPresenceCondition, null, + oldRefersToPresenceConditionESet ); + if( msgs == null ) + msgs = notification; + else + msgs.add( notification ); + } + return msgs; + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public void unsetRefersToPresenceCondition() { + if( refersToPresenceCondition != null ) { + NotificationChain msgs = null; + msgs = ( ( InternalEObject ) refersToPresenceCondition ).eInverseRemove( this, + NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE, PresenceCondition.class, msgs ); + msgs = basicUnsetRefersToPresenceCondition( msgs ); + if( msgs != null ) msgs.dispatch(); + } + else { + boolean oldRefersToPresenceConditionESet = refersToPresenceConditionESet; + refersToPresenceConditionESet = false; + if( eNotificationRequired() ) eNotify( new ENotificationImpl( this, Notification.UNSET, + NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION, null, null, + oldRefersToPresenceConditionESet ) ); + } + } + + /** + * <!-- begin-user-doc --> + * <!-- end-user-doc --> + * @generated + */ + @Override + public boolean isSetRefersToPresenceCondition() { + return refersToPresenceConditionESet; + } + /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -1182,6 +1319,11 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE: if( eInternalContainer() != null ) msgs = eBasicRemoveFromContainer( msgs ); return basicSetConstructedAttribute( ( ConstructedAttribute ) otherEnd, msgs ); + case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION: + if( refersToPresenceCondition != null ) + msgs = ( ( InternalEObject ) refersToPresenceCondition ).eInverseRemove( this, + NsdPackage.PRESENCE_CONDITION__REFERRED_BY_SUB_DATA_ATTRIBUTE, PresenceCondition.class, msgs ); + return basicSetRefersToPresenceCondition( ( PresenceCondition ) otherEnd, msgs ); } return super.eInverseAdd( otherEnd, featureID, msgs ); } @@ -1196,6 +1338,8 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData switch( featureID ) { case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE: return basicSetConstructedAttribute( null, msgs ); + case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION: + return basicUnsetRefersToPresenceCondition( msgs ); } return super.eInverseRemove( otherEnd, featureID, msgs ); } @@ -1251,6 +1395,8 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData return getName(); case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE: return getConstructedAttribute(); + case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION: + return getRefersToPresenceCondition(); } return super.eGet( featureID, resolve, coreType ); } @@ -1305,6 +1451,9 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE: setConstructedAttribute( ( ConstructedAttribute ) newValue ); return; + case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION: + setRefersToPresenceCondition( ( PresenceCondition ) newValue ); + return; } super.eSet( featureID, newValue ); } @@ -1359,6 +1508,9 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE: setConstructedAttribute( ( ConstructedAttribute ) null ); return; + case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION: + unsetRefersToPresenceCondition(); + return; } super.eUnset( featureID ); } @@ -1399,6 +1551,8 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData return isSetName(); case NsdPackage.SUB_DATA_ATTRIBUTE__CONSTRUCTED_ATTRIBUTE: return getConstructedAttribute() != null; + case NsdPackage.SUB_DATA_ATTRIBUTE__REFERS_TO_PRESENCE_CONDITION: + return isSetRefersToPresenceCondition(); } return super.eIsSet( featureID ); } @@ -1598,4 +1752,32 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData return result.toString(); } + /* Implicit link + * SubDataAttribute.presCond -> PresenceCondition.name + * SubDataAttribute.sizeAttribute -> DataAttribute.name ? Which DataAttribute ? + * SubDataAttribute.maxIndexAttribute -> DataAttribute.name ? Which DataAttribute ? + */ + @Override + public boolean buildExplicitLinks( IRiseClipseConsole console ) { + if( super.buildExplicitLinks( console ) ) return true; + + if( isSetPresCond() ) { + setRefersToPresenceCondition( getConstructedAttribute().getConstructedAttributes().getNS() + .findPresenceCondition( getPresCond(), console ) ); + if( getRefersToPresenceCondition() == null ) { + console.error( "PresenceCondition (name: " + getPresCond() + ") refers by SubDataAttribute (name: " + + getName() + ") in NS (id:" + + getConstructedAttribute().getConstructedAttributes().getNS().getId() + ") is unknown" ); + } + else { + console.info( "PresenceCondition (name: " + getPresCond() + ") refers by SubDataAttribute (name: " + + getName() + ") in NS (id:" + + getConstructedAttribute().getConstructedAttributes().getNS().getId() + ") found in NS (id:" + + getRefersToPresenceCondition().getPresenceConditions().getNS().getId() + ")" ); + } + } + + return false; + } + } //SubDataAttributeImpl diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java index 3e89911bd3e1a4fa5c6c5812dae89a6bc3c4cb16..70e3c423d6c15eab740038909340434e53d44673 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsdResourceSetImpl.java @@ -154,21 +154,22 @@ public class NsdResourceSetImpl extends ResourceSetImpl { * SubDataObject.presCond -> PresenceCondition.name DONE * SubDataObject.sizeAttribute -> DataAttribute.name DONE * SubDataObject.maxIndexAttribute -> DataAttribute.name DONE - * DataAttribute.fc -> FunctionalConstraint.abbreviation - * DataAttribute.presCond -> PresenceCondition.name - * DataAttribute.sizeAttribute -> DataAttribute.name - * DataAttribute.maxIndexAttribute -> DataAttribute.name - * ServiceParameter.name -> DataAttribute.name ? - * SubDataAttribute.presCond -> PresenceCondition.name - * SubDataAttribute.sizeAttribute -> DataAttribute.name - * SubDataAttribute.maxIndexAttribute -> DataAttribute.name - * Enumeration.inheritedFrom -> Enumeration.name - * ServiceCDC.cdc -> CDC.name ? - * ServiceDataAttribute.fc -> FunctionalConstraint.abbreviation - * ServiceDataAttribute.presCond -> PresenceCondition.name - * AppliesTo.id -> NS.id - * ServiceTypeRealization.fc -> FunctionalConstraint.abbreviation ? ServiceTypeRealization is not a name of a type but a name of a refence - * ServiceTypeRealization.presCond -> PresenceCondition.name ? idem + * DataAttribute.fc -> FunctionalConstraint.abbreviation DONE + * DataAttribute.presCond -> PresenceCondition.name DONE + * DataAttribute.sizeAttribute -> DataAttribute.name DONE + * DataAttribute.maxIndexAttribute -> DataAttribute.name DONE + * ServiceParameter.name -> DataAttribute.name ? Name of the data attribute but may be not name of a DataAttribute ? + * SubDataAttribute.presCond -> PresenceCondition.name DONE + * SubDataAttribute.sizeAttribute -> DataAttribute.name ? Which DataAttribute ? + * SubDataAttribute.maxIndexAttribute -> DataAttribute.name ? Which DataAttribute ? + * Enumeration.inheritedFrom -> Enumeration.name DONE + * ServiceCDC.cdc -> CDC.name ? not sure and in ServiceNS file + * ServiceCDC.ServiceDataAttribute -> DataAttribute.name ? not sure and in ServiceNS file + * ServiceDataAttribute.fc -> FunctionalConstraint.abbreviation ? in ServiceNS file + * ServiceDataAttribute.presCond -> PresenceCondition.name ? in ServiceNS file + * AppliesTo.id -> NS.id ? in ServiceNS file + * ServiceTypeRealization.fc -> FunctionalConstraint.abbreviation ? ServiceTypeRealization is not a name of a type but a name of a reference + * ServiceTypeRealization.presCond -> PresenceCondition.name ? ServiceTypeRealization is not a name of a type but a name of a reference */ public void buildExplicitLinks( IRiseClipseConsole console ) { for( Resource resource : getResources() ) {