diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/LNClassesItemProvider.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/LNClassesItemProvider.java index b6c162f6e3018f8228b69b1b309df24374008b78..207c42533338e17c65a1bfaf946f37c7fc894aaa 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/LNClassesItemProvider.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/LNClassesItemProvider.java @@ -149,9 +149,6 @@ public class LNClassesItemProvider extends NsdObjectItemProvider { protected void collectNewChildDescriptors( Collection< Object > newChildDescriptors, Object object ) { super.collectNewChildDescriptors( newChildDescriptors, object ); - newChildDescriptors.add( createChildParameter( NsdPackage.Literals.LN_CLASSES__ABSTRACT_LN_CLASS, - NsdFactory.eINSTANCE.createAbstractLNClass() ) ); - newChildDescriptors.add( createChildParameter( NsdPackage.Literals.LN_CLASSES__LN_CLASS, NsdFactory.eINSTANCE.createLNClass() ) ); } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/NsdItemProviderAdapterFactory.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/NsdItemProviderAdapterFactory.java index 63c5dd0c9a1fe17b7543faaafc8c15a005f66af7..81aec4df6a870018d85e976b091a1bbec9477703 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/NsdItemProviderAdapterFactory.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd.edit/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/provider/NsdItemProviderAdapterFactory.java @@ -227,29 +227,6 @@ public class NsdItemProviderAdapterFactory extends NsdAdapterFactory return abbreviationsItemProvider; } - /** - * This keeps track of the one adapter used for all {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass} instances. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected AbstractLNClassItemProvider abstractLNClassItemProvider; - - /** - * This creates an adapter for a {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.AbstractLNClass}. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Adapter createAbstractLNClassAdapter() { - if( abstractLNClassItemProvider == null ) { - abstractLNClassItemProvider = new AbstractLNClassItemProvider( this ); - } - - return abstractLNClassItemProvider; - } - /** * This keeps track of the one adapter used for all {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.ApplicableServiceNS} instances. * <!-- begin-user-doc --> @@ -595,29 +572,6 @@ public class NsdItemProviderAdapterFactory extends NsdAdapterFactory return docItemProvider; } - /** - * This keeps track of the one adapter used for all {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass} instances. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected DocumentedClassItemProvider documentedClassItemProvider; - - /** - * This creates an adapter for a {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass}. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Adapter createDocumentedClassAdapter() { - if( documentedClassItemProvider == null ) { - documentedClassItemProvider = new DocumentedClassItemProvider( this ); - } - - return documentedClassItemProvider; - } - /** * This keeps track of the one adapter used for all {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration} instances. * <!-- begin-user-doc --> @@ -1170,29 +1124,6 @@ public class NsdItemProviderAdapterFactory extends NsdAdapterFactory return subDataObjectItemProvider; } - /** - * This keeps track of the one adapter used for all {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass} instances. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - protected TitledClassItemProvider titledClassItemProvider; - - /** - * This creates an adapter for a {@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.TitledClass}. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Adapter createTitledClassAdapter() { - if( titledClassItemProvider == null ) { - titledClassItemProvider = new TitledClassItemProvider( this ); - } - - return titledClassItemProvider; - } - /** * This returns the root adapter factory that contains this factory. * <!-- begin-user-doc --> @@ -1304,7 +1235,6 @@ public class NsdItemProviderAdapterFactory extends NsdAdapterFactory if( serviceTypeItemProvider != null ) serviceTypeItemProvider.dispose(); if( abbreviationItemProvider != null ) abbreviationItemProvider.dispose(); if( abbreviationsItemProvider != null ) abbreviationsItemProvider.dispose(); - if( abstractLNClassItemProvider != null ) abstractLNClassItemProvider.dispose(); if( applicableServiceNSItemProvider != null ) applicableServiceNSItemProvider.dispose(); if( applicableServicesItemProvider != null ) applicableServicesItemProvider.dispose(); if( basicTypeItemProvider != null ) basicTypeItemProvider.dispose(); @@ -1320,7 +1250,6 @@ public class NsdItemProviderAdapterFactory extends NsdAdapterFactory if( dataObjectItemProvider != null ) dataObjectItemProvider.dispose(); if( dataSetMemberOfItemProvider != null ) dataSetMemberOfItemProvider.dispose(); if( docItemProvider != null ) docItemProvider.dispose(); - if( documentedClassItemProvider != null ) documentedClassItemProvider.dispose(); if( enumerationItemProvider != null ) enumerationItemProvider.dispose(); if( enumerationsItemProvider != null ) enumerationsItemProvider.dispose(); if( functionalConstraintItemProvider != null ) functionalConstraintItemProvider.dispose(); @@ -1345,7 +1274,6 @@ public class NsdItemProviderAdapterFactory extends NsdAdapterFactory if( serviceTypeRealizationsItemProvider != null ) serviceTypeRealizationsItemProvider.dispose(); if( subDataAttributeItemProvider != null ) subDataAttributeItemProvider.dispose(); if( subDataObjectItemProvider != null ) subDataObjectItemProvider.dispose(); - if( titledClassItemProvider != null ) titledClassItemProvider.dispose(); } } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore index 21a928e59cf3a6d25233d62f484efd7c306ff8a1..4ed916b32fe7fe467cf8c51bbd18bacb8ed2cd73 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore @@ -171,7 +171,7 @@ eType="#//ServiceNS" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//ServiceNS/abbreviations"/> </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="AbstractLNClass" eSuperTypes="#//AnyLNClass"> + <eClassifiers xsi:type="ecore:EClass" name="AbstractLNClass" abstract="true" eSuperTypes="#//AnyLNClass"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> <details key="name" value="tAbstractLNClass"/> <details key="kind" value="elementOnly"/> @@ -927,7 +927,7 @@ ordered="false" upperBound="-1" eType="#//AgPresenceConditionDerivedStatistics" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//AgPresenceConditionDerivedStatistics/refersToDsPresCondArgsDoc"/> </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="DocumentedClass" eSuperTypes="#//NsdObject"> + <eClassifiers xsi:type="ecore:EClass" name="DocumentedClass" abstract="true" eSuperTypes="#//NsdObject"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> <details key="name" value="tDocumentedClass"/> <details key="kind" value="empty"/> @@ -1867,7 +1867,7 @@ ordered="false" eType="#//DataAttribute" transient="true" unsettable="true" resolveProxies="false" eOpposite="#//DataAttribute/referredBySubDataObjectAsMaxIndexAttribute"/> </eClassifiers> - <eClassifiers xsi:type="ecore:EClass" name="TitledClass" eSuperTypes="#//DocumentedClass"> + <eClassifiers xsi:type="ecore:EClass" name="TitledClass" abstract="true" eSuperTypes="#//DocumentedClass"> <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData"> <details key="name" value="tTitledClass"/> <details key="kind" value="empty"/> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java index aaac90e1508ae4e3a2b75ef96e43dfa9969bdafb..64fff621c80b972a1e82b538b55b24bd19c8c4f7 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/AbstractLNClass.java @@ -36,7 +36,8 @@ import org.eclipse.emf.common.util.EList; * </ul> * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getAbstractLNClass() - * @model extendedMetaData="name='tAbstractLNClass' kind='elementOnly'" + * @model abstract="true" + * extendedMetaData="name='tAbstractLNClass' kind='elementOnly'" * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='nameAttributeRequired'" * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot nameAttributeRequired='Tuple {\n\tmessage : String = \'The name attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.name <> null\n}.status'" * @generated @@ -105,6 +106,7 @@ public interface AbstractLNClass extends AnyLNClass { * @model opposite="abstractLNClass" resolveProxies="false" unsettable="true" ordered="false" * @generated */ + @Override LNClasses getParentLNClasses(); /** diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java index b5bdb3cf0825a263092d2e3c0abae7eafd047aa4..69beabe2c8c3296ceff986546b1693d5b2aed3fd 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/DocumentedClass.java @@ -35,7 +35,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * </ul> * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getDocumentedClass() - * @model extendedMetaData="name='tDocumentedClass' kind='empty'" + * @model abstract="true" + * extendedMetaData="name='tDocumentedClass' kind='empty'" * @generated */ public interface DocumentedClass extends NsdObject { diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdFactory.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdFactory.java index a7e0a847e9cd8e4ad7ac3c4854a5e20f57ead313..5777842a7b55c83861498c28ea68f6db48d235f4 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdFactory.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NsdFactory.java @@ -92,15 +92,6 @@ public interface NsdFactory extends EFactory { */ Abbreviations createAbbreviations(); - /** - * Returns a new object of class '<em>Abstract LN Class</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return a new object of class '<em>Abstract LN Class</em>'. - * @generated - */ - AbstractLNClass createAbstractLNClass(); - /** * Returns a new object of class '<em>Applicable Service NS</em>'. * <!-- begin-user-doc --> @@ -236,15 +227,6 @@ public interface NsdFactory extends EFactory { */ Doc createDoc(); - /** - * Returns a new object of class '<em>Documented Class</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return a new object of class '<em>Documented Class</em>'. - * @generated - */ - DocumentedClass createDocumentedClass(); - /** * Returns a new object of class '<em>Enumeration</em>'. * <!-- begin-user-doc --> @@ -461,15 +443,6 @@ public interface NsdFactory extends EFactory { */ SubDataObject createSubDataObject(); - /** - * Returns a new object of class '<em>Titled Class</em>'. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return a new object of class '<em>Titled Class</em>'. - * @generated - */ - TitledClass createTitledClass(); - /** * Returns the package supported by this factory. * <!-- begin-user-doc --> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java index b1f077d50ffa89ff4a0e91cc0bb56762b0d28fd4..9b77bec0cabf5ad23e4226bddc7475d2cd800d6c 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/TitledClass.java @@ -32,7 +32,8 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; * </ul> * * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage#getTitledClass() - * @model extendedMetaData="name='tTitledClass' kind='empty'" + * @model abstract="true" + * extendedMetaData="name='tTitledClass' kind='empty'" * annotation="http://www.eclipse.org/emf/2002/Ecore constraints='titleIDAttributeRequired'" * annotation="http://www.eclipse.org/emf/2002/Ecore/OCL/Pivot titleIDAttributeRequired='Tuple {\n\tmessage : String = \'The titleID attribute is required\',\n\tstatus : Boolean = \n\t\t\tself.titleID <> null\n}.status'" * @generated diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java index 2c636c76a5cb00664d81afee7616516644ec26f0..95704813bd105965eec4a0ba416a7fd7c0992c1a 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbbreviationImpl.java @@ -23,6 +23,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -583,7 +584,7 @@ public class AbbreviationImpl extends NsdObjectImpl implements Abbreviation { if( isSetDescID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = (( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getDescID() ); + Doc doc = (( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( new NsIdentification( getParentAbbreviations().getParentNS() ), getDescID() ); if( doc != null ) setRefersToDoc( doc ); } } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java index b55bdd5ca43145bd902178ca47fa51da98fd6772..49583dd9e6c9896fe80486bbf7883d1636d41403 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AbstractLNClassImpl.java @@ -52,7 +52,7 @@ import org.eclipse.emf.ecore.util.InternalEList; * * @generated */ -public class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNClass { +public abstract class AbstractLNClassImpl extends AnyLNClassImpl implements AbstractLNClass { /** * The default value of the '{@link #getName() <em>Name</em>}' attribute. * <!-- begin-user-doc --> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AnyLNClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AnyLNClassImpl.java index 844f5060d8b20fb97c1f991720b7e953496a6d5a..44e8b28b778c40ee32c642d05bbd70a2e7664a12 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AnyLNClassImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/AnyLNClassImpl.java @@ -24,6 +24,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AnyLNClass; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; import fr.centralesupelec.edf.riseclipse.util.RiseClipseFatalException; @@ -520,7 +521,7 @@ public abstract class AnyLNClassImpl extends TitledClassImpl implements AnyLNCla if( isSetBase() ) { String messagePrefix = "[NSD links] while resolving link from AnyLNClass (name: " + getName() - + ", NS id: " + getParentLNClasses().getParentNS().getId() + ", line: " + getLineNumber() + "): "; + + ", NS id: " + getParentLNClasses().getParentNS().getId() + ", line: " + getLineNumber() + "): "; // This code assumes that the referred AbstractLNClass is in the same NS // TODO: check that it is right @@ -532,9 +533,10 @@ public abstract class AnyLNClassImpl extends TitledClassImpl implements AnyLNCla .ifPresent( abstractLNClass -> setRefersToAbstractLNClass( abstractLNClass ) ); if( isSetRefersToAbstractLNClass() ) { - console.info( "[NSD links] AbstractLNClass (name: " + getBase() + ") refers by AnyLNClass (name: " + getName() - + ") in NS (id:" + getParentLNClasses().getParentNS().getId() + ") found in NS (id:" - + getRefersToAbstractLNClass().getParentLNClasses().getParentNS().getId() + ")" ); + console.info( + "[NSD links] AbstractLNClass (name: " + getBase() + ") refers by AnyLNClass (name: " + getName() + + ") in NS (id:" + getParentLNClasses().getParentNS().getId() + ") found in NS (id:" + + getRefersToAbstractLNClass().getParentLNClasses().getParentNS().getId() + ")" ); } else { console.warning( messagePrefix + "AbstractLNClass (name: " + getBase() + ") not found" ); @@ -544,4 +546,9 @@ public abstract class AnyLNClassImpl extends TitledClassImpl implements AnyLNCla return false; } + @Override + protected NsIdentification getNsIdentification() { + return new NsIdentification( getParentLNClasses().getParentNS() ); + } + } //AnyLNClassImpl 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 cf359b8593389973c9a4ad6e8b5180d94ea3da32..20dae4cd3193210527f4c69d5d0ffd948490c3f6 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 @@ -24,6 +24,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -651,7 +652,8 @@ public class BasicTypeImpl extends NsdObjectImpl implements BasicType { if( isSetDescID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getDescID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ) + .findDoc( new NsIdentification( getParentBasicTypes().getParentNS() ), getDescID() ); if( doc != null ) setRefersToDoc( doc ); } } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCImpl.java index 499f9c43ce34dee12928c48f545254780c6173ba..56b80f03f923b42618e6f4f24369d1736404185d 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/CDCImpl.java @@ -26,6 +26,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DataObject; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import java.util.Collection; @@ -1119,4 +1120,9 @@ public class CDCImpl extends TitledClassImpl implements CDC { return result.toString(); } + @Override + protected NsIdentification getNsIdentification() { + return new NsIdentification( getParentCDCs().getParentNS() ); + } + } //CDCImpl diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java index 3f490d7d6865bdb6571f7fd85c6121ad862abc13..80d2fad8a2abc41321af6cb6805416c66e7d6398 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ConstructedAttributeImpl.java @@ -20,11 +20,13 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgAttributeType; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgNSIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataAttribute; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import java.util.Collection; @@ -537,4 +539,16 @@ public class ConstructedAttributeImpl extends TitledClassImpl implements Constru return result.toString(); } + @Override + protected NsIdentification getNsIdentification() { + AgNSIdentification ns = null; + if( getParentConstructedAttributes() != null ) { + ns = getParentConstructedAttributes().getParentNS(); + } + if(( ns == null ) && ( getParentServiceTypeRealizations() != null ) ) { + ns = getParentServiceTypeRealizations().getParentServiceNS(); + } + return new NsIdentification( ns ); + } + } //ConstructedAttributeImpl 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 d59f4110310efd5afcf30819ca2f7f771acb00ec..d45981ac5867cf9fbde2590589fd2ead26aa1f84 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 @@ -38,6 +38,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -3701,11 +3702,18 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib if( isSetPresCondArgsID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getPresCondArgsID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getNsIdentification(), + getPresCondArgsID() ); if( doc != null ) setRefersToPresCondArgsDoc( doc ); } } return false; } + + @Override + protected NsIdentification getNsIdentification() { + return new NsIdentification( getParentCDC().getParentCDCs().getParentNS() ); + } + } //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 764179f85f10ca70edd7c29ba8af272fa99cde05..cc7dcccebac7975751ecd768d20d71428fcc7732 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 @@ -31,6 +31,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -2189,7 +2190,7 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject { NS ns = getParentAnyLNClass().getParentLNClasses().getParentNS(); String messagePrefix = "[NSD links] while resolving link from DataObject (name: " + getName() - + ", NS id: " + ns.getId() + ", line: " + getLineNumber() + "): "; + + ", NS id: " + ns.getId() + ", line: " + getLineNumber() + "): "; if( isSetType() ) { CDC foundCDC = ns.findCDC( getType(), console ); @@ -2226,7 +2227,8 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject { } else { setRefersToPresenceConditionDerivedStatistics( foundPC ); - console.info( "[NSD links] PresenceCondition (name: " + getDsPresCond() + ") refers by DataObject (name: " + console.info( "[NSD links] PresenceCondition (name: " + getDsPresCond() + + ") refers by DataObject (name: " + getName() + ") in NS (id:" + getParentAnyLNClass().getParentLNClasses().getParentNS().getId() + ") found in NS (id:" + getRefersToPresenceConditionDerivedStatistics().getParentPresenceConditions().getParentNS() @@ -2237,19 +2239,26 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject { if( isSetPresCondArgsID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = (( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getPresCondArgsID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getNsIdentification(), + getPresCondArgsID() ); if( doc != null ) setRefersToPresCondArgsDoc( doc ); } } if( isSetDsPresCondArgsID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = (( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getDsPresCondArgsID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getNsIdentification(), + getDsPresCondArgsID() ); if( doc != null ) setRefersToDsPresCondArgsDoc( doc ); } } - return false; + return false; + } + + @Override + protected NsIdentification getNsIdentification() { + return new NsIdentification( getParentAnyLNClass().getParentLNClasses().getParentNS() ); } } //DataObjectImpl 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 c55325e1538bacbb34a39bf261154eb5ffcf4fc8..5702d38bc89457999161198a282963785f3810fb 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 @@ -24,7 +24,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.PubStage; -import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NSIdentification; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -910,16 +910,18 @@ public class DependsOnImpl extends NsdObjectImpl implements DependsOn { public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) { if( super.buildExplicitLinks( console, forceUpdate ) ) return true; - String messagePrefix = "[NSD links] while resolving link from DependsOn (NS id: " + new NSIdentification( getParentNS() ) + ", line: " + getLineNumber() + "): "; + String messagePrefix = "[NSD links] while resolving link from DependsOn (NS id: " + + new NsIdentification( getParentNS() ) + ", line: " + getLineNumber() + "): "; - NSIdentification identification = new NSIdentification( getId(), getVersion(), getRevision(), getRelease() ); + NsIdentification identification = new NsIdentification( getId(), getVersion(), getRevision(), getRelease() ); NS ns = ( ( NsdResourceSetImpl ) eResource().getResourceSet() ).getNS( identification ); if( ns == null ) { console.warning( messagePrefix + "NS (id: " + identification + ") not found" ); } else { setRefersToNS( ns ); - console.info( "[NSD links] NS (id: " + identification + ") refers by DependsOn in NS (id:" + new NSIdentification( getParentNS() ) + ") found" ); + console.info( "[NSD links] NS (id: " + identification + ") refers by DependsOn in NS (id:" + + new NsIdentification( getParentNS() ) + ") found" ); } return false; } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocumentedClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocumentedClassImpl.java index f763e73deb094f233eb7ee51db16f0d1023e6095..dcf59af24752a5dcee392b40b598dfa67f81886b 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocumentedClassImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DocumentedClassImpl.java @@ -22,6 +22,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DocumentedClass; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -49,7 +50,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl; * * @generated */ -public class DocumentedClassImpl extends NsdObjectImpl implements DocumentedClass { +public abstract class DocumentedClassImpl extends NsdObjectImpl implements DocumentedClass { /** * The default value of the '{@link #isDeprecated() <em>Deprecated</em>}' attribute. * <!-- begin-user-doc --> @@ -594,10 +595,11 @@ public class DocumentedClassImpl extends NsdObjectImpl implements DocumentedClas @Override public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) { if( super.buildExplicitLinks( console, forceUpdate ) ) return true; - + if( isSetDescID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = (( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getDescID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getNsIdentification(), + getDescID() ); if( doc != null ) setRefersToDoc( doc ); } } @@ -605,4 +607,6 @@ public class DocumentedClassImpl extends NsdObjectImpl implements DocumentedClas return false; } + protected abstract NsIdentification getNsIdentification(); + } //DocumentedClassImpl 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 e74ac24c9c6e4fa95102cd1387cb734b585709be..575a6feafada045294c04fa245dece564ebb75e3 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 @@ -25,6 +25,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumerations; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; import java.util.Collection; @@ -806,4 +807,9 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { return false; } + @Override + protected NsIdentification getNsIdentification() { + return new NsIdentification( getParentEnumerations().getParentNS() ); + } + } //EnumerationImpl diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintImpl.java index e9ff7a216d3c791a4c83ccd684f6129fb6b57808..37b337bf9c9d9734bbc7490cfc76663b62476461 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/FunctionalConstraintImpl.java @@ -25,6 +25,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraint; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.FunctionalConstraints; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -903,10 +904,11 @@ public class FunctionalConstraintImpl extends NsdObjectImpl implements Functiona @Override public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) { if( super.buildExplicitLinks( console, forceUpdate ) ) return true; - + if( isSetDescID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = (( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getDescID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ) + .findDoc( new NsIdentification( getParentFunctionalConstraints().getParentNS() ), getDescID() ); if( doc != null ) setRefersToDoc( doc ); } } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java index 65ef445d01053d01adf75a2875ec222f5a945fa0..b6014a18523ddd1f86437a2ad16128f06121ad5e 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LNClassImpl.java @@ -22,6 +22,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClass; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import org.eclipse.emf.common.notify.Notification; diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LiteralImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LiteralImpl.java index 3c02c0673209c168a2dba9ce7dfea6234e2c84ae..75240db3a48b19233b7b3b8db091845f1a859bfe 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LiteralImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/LiteralImpl.java @@ -22,6 +22,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Literal; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import org.eclipse.emf.common.notify.Notification; @@ -424,4 +425,9 @@ public class LiteralImpl extends DocumentedClassImpl implements Literal { return result.toString(); } + @Override + protected NsIdentification getNsIdentification() { + return new NsIdentification( getParentEnumeration().getParentEnumerations().getParentNS() ); + } + } //LiteralImpl 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 ecdc8d75b0a10642c35a07dc850a0d4daa9e25bb..db6ada47010d74defd59447f067fe12fae01df18 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 @@ -42,6 +42,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.PubStage; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; import java.lang.reflect.InvocationTargetException; @@ -1846,7 +1847,8 @@ public class NSImpl extends CopyrightedImpl implements NS { * @generated NOT */ @Override - public ConstructedAttribute findConstructedAttribute( String constructedAttributeName, IRiseClipseConsole console ) { + public ConstructedAttribute findConstructedAttribute( String constructedAttributeName, + IRiseClipseConsole console ) { if( isSetConstructedAttributes() ) { ConstructedAttribute found = getConstructedAttributes().getConstructedAttribute().stream() .filter( ca -> ca.getName().equals( constructedAttributeName ) ).findAny().orElse( null ); @@ -2923,7 +2925,8 @@ public class NSImpl extends CopyrightedImpl implements NS { if( isSetDescID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getDescID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ) + .findDoc( new NsIdentification( this ), getDescID() ); if( doc != null ) setRefersToDoc( doc ); } } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java index e85a0d7e126643c1efee8f8f2d79642b2babe851..33e97372c4f0d869e967ef8fe373e7cf642147f2 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdFactoryImpl.java @@ -90,8 +90,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory { return createAbbreviation(); case NsdPackage.ABBREVIATIONS: return createAbbreviations(); - case NsdPackage.ABSTRACT_LN_CLASS: - return createAbstractLNClass(); case NsdPackage.APPLICABLE_SERVICE_NS: return createApplicableServiceNS(); case NsdPackage.APPLICABLE_SERVICES: @@ -122,8 +120,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory { return createDataSetMemberOf(); case NsdPackage.DOC: return createDoc(); - case NsdPackage.DOCUMENTED_CLASS: - return createDocumentedClass(); case NsdPackage.ENUMERATION: return createEnumeration(); case NsdPackage.ENUMERATIONS: @@ -172,8 +168,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory { return createSubDataAttribute(); case NsdPackage.SUB_DATA_OBJECT: return createSubDataObject(); - case NsdPackage.TITLED_CLASS: - return createTitledClass(); default: throw new IllegalArgumentException( "The class '" + eClass.getName() + "' is not a valid classifier" ); } @@ -325,17 +319,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory { return abbreviations; } - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public AbstractLNClass createAbstractLNClass() { - AbstractLNClassImpl abstractLNClass = new AbstractLNClassImpl(); - return abstractLNClass; - } - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -501,17 +484,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory { return doc; } - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public DocumentedClass createDocumentedClass() { - DocumentedClassImpl documentedClass = new DocumentedClassImpl(); - return documentedClass; - } - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -776,17 +748,6 @@ public class NsdFactoryImpl extends EFactoryImpl implements NsdFactory { return subDataObject; } - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public TitledClass createTitledClass() { - TitledClassImpl titledClass = new TitledClassImpl(); - return titledClass; - } - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> 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 8697b97e5b3f77e18b22beb829800ac4d6599201..2d671bae787f50323c01f915f652364b2aa34994 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 @@ -4566,7 +4566,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { "parentServiceNS", null, 0, 1, Abbreviations.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, !IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); - initEClass( abstractLNClassEClass, AbstractLNClass.class, "AbstractLNClass", !IS_ABSTRACT, !IS_INTERFACE, + initEClass( abstractLNClassEClass, AbstractLNClass.class, "AbstractLNClass", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS ); initEAttribute( getAbstractLNClass_Name(), ecorePackage.getEString(), "name", null, 0, 1, AbstractLNClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED ); @@ -4889,7 +4889,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { "referredByAgPresenceConditionDerivedStatistics", null, 0, -1, Doc.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); - initEClass( documentedClassEClass, DocumentedClass.class, "DocumentedClass", !IS_ABSTRACT, !IS_INTERFACE, + initEClass( documentedClassEClass, DocumentedClass.class, "DocumentedClass", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS ); initEAttribute( getDocumentedClass_Deprecated(), theXMLTypePackage.getBoolean(), "deprecated", "false", 0, 1, DocumentedClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, @@ -5330,7 +5330,7 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { 0, 1, SubDataObject.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); - initEClass( titledClassEClass, TitledClass.class, "TitledClass", !IS_ABSTRACT, !IS_INTERFACE, + initEClass( titledClassEClass, TitledClass.class, "TitledClass", IS_ABSTRACT, !IS_INTERFACE, IS_GENERATED_INSTANCE_CLASS ); initEAttribute( getTitledClass_TitleID(), ecorePackage.getEString(), "titleID", null, 0, 1, TitledClass.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED ); 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 3489f1e9de01513c42c430c364b2292dd43e25c2..82a8552be93bdc52e88536198c03c472324a87a0 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 @@ -28,6 +28,7 @@ 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 fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -1102,10 +1103,11 @@ public class PresenceConditionImpl extends NsdObjectImpl implements PresenceCond @Override public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) { if( super.buildExplicitLinks( console, forceUpdate ) ) return true; - + if( isSetDescID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = (( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getDescID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ) + .findDoc( new NsIdentification( getParentPresenceConditions().getParentNS() ), getDescID() ); if( doc != null ) setRefersToDoc( doc ); } } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceDataAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceDataAttributeImpl.java index 929929772e409c7522a1500a4b6727c3c47a7d10..0da289e6a7c0e85948c44e20d1b512c596e71972 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceDataAttributeImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceDataAttributeImpl.java @@ -31,6 +31,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdFactory; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDC; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceDataAttribute; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -1845,7 +1846,9 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser if( isSetPresCondArgsID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getPresCondArgsID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( + new NsIdentification( getParentServiceCDC().getParentServiceCDCs().getParentServiceNS() ), + getPresCondArgsID() ); if( doc != null ) setRefersToPresCondArgsDoc( doc ); } } @@ -1853,4 +1856,9 @@ public class ServiceDataAttributeImpl extends DocumentedClassImpl implements Ser return false; } + @Override + protected NsIdentification getNsIdentification() { + return new NsIdentification( getParentServiceCDC().getParentServiceCDCs().getParentServiceNS() ); + } + } //ServiceDataAttributeImpl diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNSImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNSImpl.java index 848d742ec255ee4b1c6f24c3c6ca618608592c51..0af2e13d4a8d76459e3c569a00577ba4721de99a 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNSImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceNSImpl.java @@ -33,6 +33,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceCDCs; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceConstructedAttributes; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceNS; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceTypeRealizations; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -2246,10 +2247,11 @@ public class ServiceNSImpl extends CopyrightedImpl implements ServiceNS { @Override public boolean buildExplicitLinks( IRiseClipseConsole console, boolean forceUpdate ) { if( super.buildExplicitLinks( console, forceUpdate ) ) return true; - + if( isSetDescID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = (( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getDescID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ) + .findDoc( new NsIdentification( this ), getDescID() ); if( doc != null ) setRefersToDoc( doc ); } } diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceParameterImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceParameterImpl.java index 564c2bc5f1e75737ccde946959907430be3e4074..20bff56d5be766ee6fb8a53114d8c9d54534e4f4 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceParameterImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/ServiceParameterImpl.java @@ -28,6 +28,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Enumeration; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdFactory; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ServiceParameter; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import java.math.BigDecimal; @@ -1357,4 +1358,9 @@ public class ServiceParameterImpl extends DocumentedClassImpl implements Service return result.toString(); } + @Override + protected NsIdentification getNsIdentification() { + return new NsIdentification( getParentCDC().getParentCDCs().getParentNS() ); + } + } //ServiceParameterImpl 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 eb82a426a01139575962c18a01a98bdb0e0977ac..2e5a9df4cd2bbe64e6f90d3cb36284be23a6686d 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 @@ -22,6 +22,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgArray; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgAttributeType; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgAttributeTypeAndValues; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgNSIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgPresenceCondition; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute; @@ -33,6 +34,7 @@ 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.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -2497,7 +2499,8 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData if( isSetPresCondArgsID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getPresCondArgsID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getNsIdentification(), + getPresCondArgsID() ); if( doc != null ) setRefersToPresCondArgsDoc( doc ); } } @@ -2505,4 +2508,13 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData return false; } + @Override + protected NsIdentification getNsIdentification() { + AgNSIdentification parent = getParentConstructedAttribute().getParentConstructedAttributes().getParentNS(); + if( parent == null ) { + parent = getParentConstructedAttribute().getParentServiceTypeRealizations().getParentServiceNS(); + } + return new NsIdentification( parent ); + } + } //SubDataAttributeImpl diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataObjectImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataObjectImpl.java index e1a370fc154456b386b15d773bfe51b15f8eddef..2d7b79fc50307568209a1fe6e127afac17c7a3ca 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataObjectImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/SubDataObjectImpl.java @@ -30,6 +30,7 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.PresenceCondition; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.SubDataObject; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; @@ -2185,7 +2186,7 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj NS ns = getParentCDC().getParentCDCs().getParentNS(); String messagePrefix = "[NSD links] while resolving link from SubDataObject (name: " + getName() - + ", NS id: " + ns.getId() + ", line: " + getLineNumber() + "): "; + + ", NS id: " + ns.getId() + ", line: " + getLineNumber() + "): "; if( isSetType() ) { CDC foundCDC = ns.findCDC( getType(), console ); @@ -2209,7 +2210,8 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj } else { setRefersToPresenceCondition( foundPC ); - console.info( "[NSD links] PresenceCondition (name: " + getPresCond() + ") refers by SubDataObject (name: " + console.info( "[NSD links] PresenceCondition (name: " + getPresCond() + + ") refers by SubDataObject (name: " + getName() + ") in NS (id:" + ns.getId() + ") found in NS (id:" + getRefersToPresenceCondition().getParentPresenceConditions().getParentNS().getId() + ")" ); } @@ -2253,7 +2255,8 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj if( isSetPresCondArgsID() ) { if( this.eResource().getResourceSet() instanceof NsdResourceSetImpl ) { - Doc doc = (( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getPresCondArgsID() ); + Doc doc = ( ( NsdResourceSetImpl ) this.eResource().getResourceSet() ).findDoc( getNsIdentification(), + getPresCondArgsID() ); if( doc != null ) setRefersToPresCondArgsDoc( doc ); } } @@ -2261,4 +2264,9 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj return false; } + @Override + protected NsIdentification getNsIdentification() { + return new NsIdentification( getParentCDC().getParentCDCs().getParentNS() ); + } + } //SubDataObjectImpl diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/TitledClassImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/TitledClassImpl.java index 071f7b7090e92a8b19ef2c54a67f7438238ba02c..da40f0ba666bb834fb056d80a5c22a6cb9527195 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/TitledClassImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/TitledClassImpl.java @@ -41,7 +41,7 @@ import org.eclipse.emf.ecore.impl.ENotificationImpl; * * @generated */ -public class TitledClassImpl extends DocumentedClassImpl implements TitledClass { +public abstract class TitledClassImpl extends DocumentedClassImpl implements TitledClass { /** * The default value of the '{@link #getTitleID() <em>Title ID</em>}' attribute. * <!-- begin-user-doc --> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NSIdentification.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsIdentification.java similarity index 88% rename from fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NSIdentification.java rename to fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsIdentification.java index f9b0e7866de2a2ac6a837eed0ac164ceeb5f30ec..651ad96ebd803b6e892a7f8d12acbb2a8315c08d 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NSIdentification.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/util/NsIdentification.java @@ -23,13 +23,13 @@ import java.util.Objects; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgNSIdentification; -public class NSIdentification { +public class NsIdentification { private String id; private Integer version; private String revision; private Integer release; - public NSIdentification( String id, Integer version, String revision, Integer release ) { + public NsIdentification( String id, Integer version, String revision, Integer release ) { super(); this.id = id; this.version = version; @@ -37,7 +37,7 @@ public class NSIdentification { this.release = release; } - public NSIdentification( AgNSIdentification identification ) { + public NsIdentification( AgNSIdentification identification ) { super(); this.id = identification.getId(); this.version = identification.getVersion(); @@ -55,14 +55,14 @@ public class NSIdentification { if( this == obj ) return true; if( obj == null ) return false; if( getClass() != obj.getClass() ) return false; - NSIdentification other = ( NSIdentification ) obj; + NsIdentification other = ( NsIdentification ) obj; return Objects.equals( id, other.id ) && Objects.equals( release, other.release ) && Objects.equals( revision, other.revision ) && Objects.equals( version, other.version ); } @Override public String toString() { - return "NSIdentification [" + ( id != null ? "id=" + id + ", " : "" ) + return "NsIdentification [" + ( id != null ? "id=" + id + ", " : "" ) + ( version != null ? "version=" + version + ", " : "" ) + ( revision != null ? "revision=" + revision + ", " : "" ) + ( release != null ? "release=" + release : "" ) + "]"; 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 8ec1674a4514a5655379c3b7b061d083c9be1567..48b94cc063ced65f5e86101588d1f5f48146a35c 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 @@ -31,6 +31,7 @@ import org.eclipse.emf.ecore.resource.Resource; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviation; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations; +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgNSIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC; @@ -58,8 +59,8 @@ import fr.centralesupelec.edf.riseclipse.util.AbstractRiseClipseResourceSet; public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { - private Map< NSIdentification, NS > nsdResources; - private Map< NSIdentification, NSDoc > nsdocResources; + private Map< NsIdentification, NS > nsdResources; + private Map< NsIdentification, NSDoc > nsdocResources; private NsdResourceFactoryImpl resourceFactory; public NsdResourceSetImpl( boolean strictContent, IRiseClipseConsole console ) { @@ -96,9 +97,9 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { DocumentRoot root = (DocumentRoot) resource.getContents().get( 0 ); if( root.getNS() != null ) { NS ns = ( NS ) root.getNS(); - NSIdentification id = new NSIdentification( ns ); + NsIdentification id = new NsIdentification( ns ); if( nsdResources.get( id ) != null ) { - AbstractRiseClipseConsole.getConsole().error( "There is already an NSD file with NSIdentification " + id + ", " + resource.getURI() + " is ignored" ); + AbstractRiseClipseConsole.getConsole().error( "There is already an NSD file with NsIdentification " + id + ", " + resource.getURI() + " is ignored" ); this.getResources().remove( resource ); return; } @@ -107,9 +108,9 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { } if( root.getNSDoc() != null ) { NSDoc nsdoc = ( NSDoc ) root.getNSDoc(); - NSIdentification id = new NSIdentification( nsdoc ); + NsIdentification id = new NsIdentification( nsdoc ); if( nsdocResources.get( id ) != null ) { - AbstractRiseClipseConsole.getConsole().error( "There is already an NSDoc file with NSIdentification " + id + ", " + resource.getURI() + " is ignored" ); + AbstractRiseClipseConsole.getConsole().error( "There is already an NSDoc file with NsIdentification " + id + ", " + resource.getURI() + " is ignored" ); this.getResources().remove( resource ); return; } @@ -171,7 +172,7 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { } - public NS getNS( NSIdentification id ) { + public NS getNS( NsIdentification id ) { return nsdResources.get( id ); } @@ -386,7 +387,7 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { return presenceConditionStream; } - public Doc findDoc( String id ) { + public Doc findDoc( NsIdentification identification, String id ) { for( NSDoc nsdoc : nsdocResources.values() ) { Optional< Doc > doc = nsdoc .getDoc()