diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore index 816c3a27236565a1729fb6d324253b00f2b93302..5c1937d0ac8e0ed4ef1776b5a549757c65f828e2 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.ecore @@ -1271,30 +1271,6 @@ <details key="name" value="tNS"/> <details key="kind" value="elementOnly"/> </eAnnotations> - <eOperations name="findCDC" eType="#//CDC"> - <eParameters name="cDCName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eParameters name="console" eType="#//IRiseClipseConsole"/> - </eOperations> - <eOperations name="findPresenceCondition" eType="#//PresenceCondition"> - <eParameters name="presenceConditionName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eParameters name="console" eType="#//IRiseClipseConsole"/> - </eOperations> - <eOperations name="findFunctionalConstraint" eType="#//FunctionalConstraint"> - <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> - <eOperations name="findBasicType" eType="#//BasicType"> - <eParameters name="basicTypeName" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/> - <eParameters name="console" eType="#//IRiseClipseConsole"/> - </eOperations> - <eOperations name="findConstructedAttribute" eType="#//ConstructedAttribute"> - <eParameters name="constructedAttributeName" 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/parentNS"> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel index 736e49b033b4adc5b9cca19be7d49ad962c69924..17cb7ee59dda4c65b823d32a87dc2abd33726015 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/model/nsd.genmodel @@ -330,30 +330,6 @@ <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//NS/cDCs"/> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//NS/lNClasses"/> <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference nsd.ecore#//NS/referredByDependsOn"/> - <genOperations ecoreOperation="nsd.ecore#//NS/findCDC"> - <genParameters ecoreParameter="nsd.ecore#//NS/findCDC/cDCName"/> - <genParameters ecoreParameter="nsd.ecore#//NS/findCDC/console"/> - </genOperations> - <genOperations ecoreOperation="nsd.ecore#//NS/findPresenceCondition"> - <genParameters ecoreParameter="nsd.ecore#//NS/findPresenceCondition/presenceConditionName"/> - <genParameters ecoreParameter="nsd.ecore#//NS/findPresenceCondition/console"/> - </genOperations> - <genOperations ecoreOperation="nsd.ecore#//NS/findFunctionalConstraint"> - <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> - <genOperations ecoreOperation="nsd.ecore#//NS/findBasicType"> - <genParameters ecoreParameter="nsd.ecore#//NS/findBasicType/basicTypeName"/> - <genParameters ecoreParameter="nsd.ecore#//NS/findBasicType/console"/> - </genOperations> - <genOperations ecoreOperation="nsd.ecore#//NS/findConstructedAttribute"> - <genParameters ecoreParameter="nsd.ecore#//NS/findConstructedAttribute/constructedAttributeName"/> - <genParameters ecoreParameter="nsd.ecore#//NS/findConstructedAttribute/console"/> - </genOperations> </genClasses> <genClasses ecoreClass="nsd.ecore#//NSDoc"> <genFeatures property="None" children="true" createChild="true" ecoreFeature="ecore:EReference nsd.ecore#//NSDoc/doc"/> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NS.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/NS.java index 57e278da2127af7f0c6a93a234fb67e05a78c9b3..36791dacbcc7c6852719caefa5183e6a4140f105 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 @@ -19,7 +19,6 @@ */ package fr.centralesupelec.edf.riseclipse.iec61850.nsd; -import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; import org.eclipse.emf.common.util.EList; /** @@ -610,53 +609,4 @@ public interface NS extends Copyrighted, AgNSIdentification, AgUML, AgNSdesc { */ boolean isSetReferredByDependsOn(); - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @model consoleType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.IRiseClipseConsole" - * @generated - */ - CDC findCDC( String cDCName, IRiseClipseConsole console ); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @model consoleType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.IRiseClipseConsole" - * @generated - */ - PresenceCondition findPresenceCondition( String presenceConditionName, IRiseClipseConsole console ); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @model consoleType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.IRiseClipseConsole" - * @generated - */ - 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 ); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @model consoleType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.IRiseClipseConsole" - * @generated - */ - BasicType findBasicType( String basicTypeName, IRiseClipseConsole console ); - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @model consoleType="fr.centralesupelec.edf.riseclipse.iec61850.nsd.IRiseClipseConsole" - * @generated - */ - ConstructedAttribute findConstructedAttribute( String constructedAttributeName, 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 18a8b85d584e6a4a0cc3daf6eae9544b44158696..53b5bb757b73e81c96aecde14a7de79a6c1a1c9b 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 @@ -4695,60 +4695,6 @@ public interface NsdPackage extends EPackage { */ int NS___BUILD_EXPLICIT_LINKS__IRISECLIPSECONSOLE_BOOLEAN = COPYRIGHTED___BUILD_EXPLICIT_LINKS__IRISECLIPSECONSOLE_BOOLEAN; - /** - * The operation id for the '<em>Find CDC</em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int NS___FIND_CDC__STRING_IRISECLIPSECONSOLE = COPYRIGHTED_OPERATION_COUNT + 0; - - /** - * The operation id for the '<em>Find Presence Condition</em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int NS___FIND_PRESENCE_CONDITION__STRING_IRISECLIPSECONSOLE = COPYRIGHTED_OPERATION_COUNT + 1; - - /** - * The operation id for the '<em>Find Functional Constraint</em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - 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 operation id for the '<em>Find Basic Type</em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int NS___FIND_BASIC_TYPE__STRING_IRISECLIPSECONSOLE = COPYRIGHTED_OPERATION_COUNT + 4; - - /** - * The operation id for the '<em>Find Constructed Attribute</em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - * @ordered - */ - int NS___FIND_CONSTRUCTED_ATTRIBUTE__STRING_IRISECLIPSECONSOLE = COPYRIGHTED_OPERATION_COUNT + 5; - /** * The number of operations of the '<em>NS</em>' class. * <!-- begin-user-doc --> @@ -4756,7 +4702,7 @@ public interface NsdPackage extends EPackage { * @generated * @ordered */ - int NS_OPERATION_COUNT = COPYRIGHTED_OPERATION_COUNT + 6; + int NS_OPERATION_COUNT = COPYRIGHTED_OPERATION_COUNT + 0; /** * The feature id for the '<em><b>Line Number</b></em>' attribute. @@ -9454,66 +9400,6 @@ public interface NsdPackage extends EPackage { */ EReference getNS_ReferredByDependsOn(); - /** - * Returns the meta object for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findCDC(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) <em>Find CDC</em>}' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the '<em>Find CDC</em>' operation. - * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findCDC(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) - * @generated - */ - EOperation getNS__FindCDC__String_IRiseClipseConsole(); - - /** - * Returns the meta object for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findPresenceCondition(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) <em>Find Presence Condition</em>}' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the '<em>Find Presence Condition</em>' operation. - * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findPresenceCondition(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) - * @generated - */ - EOperation getNS__FindPresenceCondition__String_IRiseClipseConsole(); - - /** - * Returns the meta object for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findFunctionalConstraint(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) <em>Find Functional Constraint</em>}' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the '<em>Find Functional Constraint</em>' operation. - * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findFunctionalConstraint(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) - * @generated - */ - 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 the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findBasicType(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) <em>Find Basic Type</em>}' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the '<em>Find Basic Type</em>' operation. - * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findBasicType(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) - * @generated - */ - EOperation getNS__FindBasicType__String_IRiseClipseConsole(); - - /** - * Returns the meta object for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findConstructedAttribute(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) <em>Find Constructed Attribute</em>}' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @return the meta object for the '<em>Find Constructed Attribute</em>' operation. - * @see fr.centralesupelec.edf.riseclipse.iec61850.nsd.NS#findConstructedAttribute(java.lang.String, fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole) - * @generated - */ - EOperation getNS__FindConstructedAttribute__String_IRiseClipseConsole(); - /** * Returns the meta object for class '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.NSDoc <em>NS Doc</em>}'. * <!-- begin-user-doc --> @@ -12559,59 +12445,6 @@ public interface NsdPackage extends EPackage { */ EReference NS__REFERRED_BY_DEPENDS_ON = eINSTANCE.getNS_ReferredByDependsOn(); - /** - * The meta object literal for the '<em><b>Find CDC</b></em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - EOperation NS___FIND_CDC__STRING_IRISECLIPSECONSOLE = eINSTANCE.getNS__FindCDC__String_IRiseClipseConsole(); - - /** - * The meta object literal for the '<em><b>Find Presence Condition</b></em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - EOperation NS___FIND_PRESENCE_CONDITION__STRING_IRISECLIPSECONSOLE = eINSTANCE - .getNS__FindPresenceCondition__String_IRiseClipseConsole(); - - /** - * The meta object literal for the '<em><b>Find Functional Constraint</b></em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - 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 '<em><b>Find Basic Type</b></em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - EOperation NS___FIND_BASIC_TYPE__STRING_IRISECLIPSECONSOLE = eINSTANCE - .getNS__FindBasicType__String_IRiseClipseConsole(); - - /** - * The meta object literal for the '<em><b>Find Constructed Attribute</b></em>' operation. - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - EOperation NS___FIND_CONSTRUCTED_ATTRIBUTE__STRING_IRISECLIPSECONSOLE = eINSTANCE - .getNS__FindConstructedAttribute__String_IRiseClipseConsole(); - /** * The meta object literal for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl.NSDocImpl <em>NS Doc</em>}' class. * <!-- begin-user-doc --> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataAttributeImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/DataAttributeImpl.java index d45981ac5867cf9fbde2590589fd2ead26aa1f84..4120efe8a71acf022a72d9778fb2c2b6d94fd2a6 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 @@ -3575,12 +3575,14 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib if( super.buildExplicitLinks( console, forceUpdate ) ) return true; NS ns = getParentCDC().getParentCDCs().getParentNS(); + NsdResourceSetImpl rs = getResourceSet(); + if( rs == null ) return false; String messagePrefix = "[NSD links] while resolving link from DataAttribute (name: " + getName() + ", NS id: " + ns.getId() + ", line: " + getLineNumber() + "): "; if( isSetFc() ) { - FunctionalConstraint foundFC = ns.findFunctionalConstraint( getFc(), console ); + FunctionalConstraint foundFC = rs.findFunctionalConstraint( getFc(), getNsIdentification(), console ); if( foundFC == null ) { console.warning( messagePrefix + "FunctionalConstraint (abbreviation: " + getFc() + ") not found" ); @@ -3596,7 +3598,7 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib } if( isSetPresCond() ) { - PresenceCondition foundPC = ns.findPresenceCondition( getPresCond(), console ); + PresenceCondition foundPC = rs.findPresenceCondition( getPresCond(), getNsIdentification(), console ); if( foundPC == null ) { console.warning( messagePrefix + "PresenceCondition (name: " + getPresCond() + ") not found" ); @@ -3650,7 +3652,7 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib if( isSetType() ) { switch( getTypeKind().getValue() ) { case DefinedAttributeTypeKind.BASIC_VALUE: - BasicType foundBT = ns.findBasicType( getType(), console ); + BasicType foundBT = rs.findBasicType( getType(), getNsIdentification(), console ); if( foundBT == null ) { console.warning( messagePrefix + "BasicType (name: " + getType() + ") not found" ); @@ -3664,7 +3666,7 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib } break; case DefinedAttributeTypeKind.CONSTRUCTED_VALUE: - ConstructedAttribute foundCA = ns.findConstructedAttribute( getType(), console ); + ConstructedAttribute foundCA = rs.findConstructedAttribute( getType(), getNsIdentification(), console ); if( foundCA == null ) { console.warning( messagePrefix + "ConstructedAttribute (name: " + getType() + ") not found" ); @@ -3680,7 +3682,7 @@ public class DataAttributeImpl extends DocumentedClassImpl implements DataAttrib } break; case DefinedAttributeTypeKind.ENUMERATED_VALUE: - Enumeration foundEn = ns.findEnumeration( getType(), console ); + Enumeration foundEn = rs.findEnumeration( getType(), getNsIdentification(), console ); if( foundEn == null ) { console.warning( messagePrefix + "Enumeration (name: " + getType() + ") not found" ); 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 cc7dcccebac7975751ecd768d20d71428fcc7732..5521ece70f101efd401b7670fa59fa2db0521508 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 @@ -2188,12 +2188,14 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject { if( super.buildExplicitLinks( console, forceUpdate ) ) return true; NS ns = getParentAnyLNClass().getParentLNClasses().getParentNS(); + NsdResourceSetImpl rs = getResourceSet(); + if( rs == null ) return false; String messagePrefix = "[NSD links] while resolving link from DataObject (name: " + getName() + ", NS id: " + ns.getId() + ", line: " + getLineNumber() + "): "; if( isSetType() ) { - CDC foundCDC = ns.findCDC( getType(), console ); + CDC foundCDC = rs.findCDC( getType(), getNsIdentification(), console ); if( foundCDC == null ) { console.warning( messagePrefix + "CDC (name: " + getType() + ") not found" ); @@ -2207,7 +2209,7 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject { } if( isSetPresCond() ) { - PresenceCondition foundPC = ns.findPresenceCondition( getPresCond(), console ); + PresenceCondition foundPC = rs.findPresenceCondition( getPresCond(), getNsIdentification(), console ); if( foundPC == null ) { console.warning( messagePrefix + "PresenceCondition (name: " + getPresCond() + ") not found" ); @@ -2221,7 +2223,7 @@ public class DataObjectImpl extends DocumentedClassImpl implements DataObject { } if( isSetDsPresCond() ) { - PresenceCondition foundPC = ns.findPresenceCondition( getDsPresCond(), console ); + PresenceCondition foundPC = rs.findPresenceCondition( getDsPresCond(), getNsIdentification(), console ); if( foundPC == null ) { console.warning( messagePrefix + "PresenceCondition (name: " + getDsPresCond() + ") not found" ); } 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 575a6feafada045294c04fa245dece564ebb75e3..b53cf874a3deee3b8e4ed1e3a26f4034f401597a 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 @@ -26,6 +26,7 @@ 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.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; import java.util.Collection; @@ -787,12 +788,14 @@ public class EnumerationImpl extends TitledClassImpl implements Enumeration { if( super.buildExplicitLinks( console, forceUpdate ) ) return true; NS ns = getParentEnumerations().getParentNS(); + NsdResourceSetImpl rs = getResourceSet(); + if( rs == null ) return false; String messagePrefix = "[NSD links] while resolving link from Enumeration (name: " + getName() + ", NS id: " + ns.getId() + ", line: " + getLineNumber() + "): "; if( isSetInheritedFrom() ) { - Enumeration foundBase = ns.findEnumeration( getInheritedFrom(), console ); + Enumeration foundBase = rs.findEnumeration( getInheritedFrom(), getNsIdentification(), console ); if( foundBase == null ) { console.warning( messagePrefix + "Enumeration (name: " + getInheritedFrom() + ") not found" ); } 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 db6ada47010d74defd59447f067fe12fae01df18..15eb4e55991cfb7693118b6460b70460f575eb83 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NSImpl.java @@ -23,29 +23,22 @@ import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Abbreviations; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgNSIdentification; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgNSdesc; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.AgUML; -import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicType; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.BasicTypes; -import fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDC; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.CDCs; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Changes; -import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttribute; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.ConstructedAttributes; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.DependsOn; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.Doc; -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; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.LNClasses; 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.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; import java.util.Collection; import javax.xml.datatype.XMLGregorianCalendar; @@ -1724,147 +1717,6 @@ public class NSImpl extends CopyrightedImpl implements NS { return referredByDependsOn != null && ( ( InternalEList.Unsettable< ? > ) referredByDependsOn ).isSet(); } - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated NOT - */ - @Override - public CDC findCDC( String cDCName, IRiseClipseConsole console ) { - if( isSetCDCs() ) { - CDC found = getCDCs().getCDC().stream().filter( cdc -> cdc.getName().equals( cDCName ) ).findAny() - .orElse( null ); - if( found != null ) return found; - } - - // Look for in NS referred by DependsOn - // Warning: NS referred by DependsOn may not be loaded - if( isSetDependsOn() && ( getDependsOn().isSetRefersToNS() ) ) { - getDependsOn().buildExplicitLinks( console, false ); - return getDependsOn().getRefersToNS().findCDC( cDCName, console ); - } - - return null; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated NOT - */ - @Override - public PresenceCondition findPresenceCondition( String presenceConditionName, IRiseClipseConsole console ) { - if( isSetPresenceConditions() ) { - PresenceCondition found = getPresenceConditions().getPresenceCondition().stream() - .filter( cond -> cond.getName().equals( presenceConditionName ) ).findAny().orElse( null ); - if( found != null ) return found; - } - - // Look for in NS referred by DependsOn - // Warning: NS referred by DependsOn may not be loaded - if( isSetDependsOn() && ( getDependsOn().isSetRefersToNS() ) ) { - getDependsOn().buildExplicitLinks( console, false ); - return getDependsOn().getRefersToNS().findPresenceCondition( presenceConditionName, console ); - } - - return null; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated NOT - */ - @Override - public FunctionalConstraint findFunctionalConstraint( String functionalConstraintAbbreviation, - IRiseClipseConsole console ) { - if( isSetFunctionalConstraints() ) { - FunctionalConstraint found = getFunctionalConstraints().getFunctionalConstraint().stream() - .filter( fc -> fc.getAbbreviation().equals( functionalConstraintAbbreviation ) ).findAny() - .orElse( null ); - if( found != null ) return found; - } - - // Look for in NS referred by DependsOn - // Warning: NS referred by DependsOn may not be loaded - if( isSetDependsOn() && ( getDependsOn().isSetRefersToNS() ) ) { - getDependsOn().buildExplicitLinks( console, false ); - return getDependsOn().getRefersToNS().findFunctionalConstraint( functionalConstraintAbbreviation, console ); - } - - 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; - } - - // Look for in NS referred by DependsOn - // Warning: NS referred by DependsOn may not be loaded - if( isSetDependsOn() && ( getDependsOn().isSetRefersToNS() ) ) { - getDependsOn().buildExplicitLinks( console, false ); - return getDependsOn().getRefersToNS().findEnumeration( enumerationName, console ); - } - - return null; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated NOT - */ - @Override - public BasicType findBasicType( String basicTypeName, IRiseClipseConsole console ) { - if( isSetBasicTypes() ) { - BasicType found = getBasicTypes().getBasicType().stream() - .filter( bt -> bt.getName().equals( basicTypeName ) ).findAny().orElse( null ); - if( found != null ) return found; - } - - // Look for in NS referred by DependsOn - // Warning: NS referred by DependsOn may not be loaded - if( isSetDependsOn() && ( getDependsOn().isSetRefersToNS() ) ) { - getDependsOn().buildExplicitLinks( console, false ); - return getDependsOn().getRefersToNS().findBasicType( basicTypeName, console ); - } - - return null; - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated NOT - */ - @Override - public ConstructedAttribute findConstructedAttribute( String constructedAttributeName, - IRiseClipseConsole console ) { - if( isSetConstructedAttributes() ) { - ConstructedAttribute found = getConstructedAttributes().getConstructedAttribute().stream() - .filter( ca -> ca.getName().equals( constructedAttributeName ) ).findAny().orElse( null ); - if( found != null ) return found; - } - - // Look for in NS referred by DependsOn - // Warning: NS referred by DependsOn may not be loaded - if( isSetDependsOn() && ( getDependsOn().isSetRefersToNS() ) ) { - getDependsOn().buildExplicitLinks( console, false ); - return getDependsOn().getRefersToNS().findConstructedAttribute( constructedAttributeName, console ); - } - - return null; - } - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -2841,30 +2693,6 @@ public class NSImpl extends CopyrightedImpl implements NS { return super.eDerivedStructuralFeatureID( baseFeatureID, baseClass ); } - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public Object eInvoke( int operationID, EList< ? > arguments ) throws InvocationTargetException { - switch( operationID ) { - case NsdPackage.NS___FIND_CDC__STRING_IRISECLIPSECONSOLE: - return findCDC( ( String ) arguments.get( 0 ), ( IRiseClipseConsole ) arguments.get( 1 ) ); - case NsdPackage.NS___FIND_PRESENCE_CONDITION__STRING_IRISECLIPSECONSOLE: - 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 ) ); - case NsdPackage.NS___FIND_BASIC_TYPE__STRING_IRISECLIPSECONSOLE: - return findBasicType( ( String ) arguments.get( 0 ), ( IRiseClipseConsole ) arguments.get( 1 ) ); - case NsdPackage.NS___FIND_CONSTRUCTED_ATTRIBUTE__STRING_IRISECLIPSECONSOLE: - return findConstructedAttribute( ( String ) arguments.get( 0 ), ( IRiseClipseConsole ) arguments.get( 1 ) ); - } - return super.eInvoke( operationID, arguments ); - } - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdObjectImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdObjectImpl.java index dcb0c33e39a8816752d6001c8aac10fa424d34c1..3a3871a4fe092a8f4252f26f14b45f9e6f4f9562 100644 --- a/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdObjectImpl.java +++ b/fr.centralesupelec.edf.riseclipse.iec61850.nsd/src/fr/centralesupelec/edf/riseclipse/iec61850/nsd/impl/NsdObjectImpl.java @@ -21,7 +21,7 @@ package fr.centralesupelec.edf.riseclipse.iec61850.nsd.impl; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdObject; import fr.centralesupelec.edf.riseclipse.iec61850.nsd.NsdPackage; - +import fr.centralesupelec.edf.riseclipse.iec61850.nsd.util.NsdResourceSetImpl; import fr.centralesupelec.edf.riseclipse.util.IRiseClipseConsole; import java.lang.reflect.InvocationTargetException; import org.eclipse.emf.common.notify.Notification; @@ -31,6 +31,7 @@ import org.eclipse.emf.ecore.EClass; import org.eclipse.emf.ecore.EObject; import org.eclipse.emf.ecore.impl.ENotificationImpl; import org.eclipse.emf.ecore.impl.MinimalEObjectImpl; +import org.eclipse.emf.ecore.resource.ResourceSet; /** * <!-- begin-user-doc --> @@ -273,4 +274,10 @@ public abstract class NsdObjectImpl extends MinimalEObjectImpl.Container impleme return result.toString(); } + public NsdResourceSetImpl getResourceSet() { + ResourceSet rs = eResource().getResourceSet(); + if( rs instanceof NsdResourceSetImpl ) return ( NsdResourceSetImpl ) rs; + return null; + } + } //NsdObjectImpl 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 8fed7feb6cf767350ff973184241e527eb5efb26..711115b5c75fb3f9e5906f0269fbabcc60cf362b 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 @@ -2604,66 +2604,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { return ( EReference ) nsEClass.getEStructuralFeatures().get( 10 ); } - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public EOperation getNS__FindCDC__String_IRiseClipseConsole() { - return nsEClass.getEOperations().get( 0 ); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public EOperation getNS__FindPresenceCondition__String_IRiseClipseConsole() { - return nsEClass.getEOperations().get( 1 ); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public EOperation getNS__FindFunctionalConstraint__String_IRiseClipseConsole() { - 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 --> - * @generated - */ - @Override - public EOperation getNS__FindBasicType__String_IRiseClipseConsole() { - return nsEClass.getEOperations().get( 4 ); - } - - /** - * <!-- begin-user-doc --> - * <!-- end-user-doc --> - * @generated - */ - @Override - public EOperation getNS__FindConstructedAttribute__String_IRiseClipseConsole() { - return nsEClass.getEOperations().get( 5 ); - } - /** * <!-- begin-user-doc --> * <!-- end-user-doc --> @@ -4226,12 +4166,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { createEReference( nsEClass, NS__CD_CS ); createEReference( nsEClass, NS__LN_CLASSES ); createEReference( nsEClass, NS__REFERRED_BY_DEPENDS_ON ); - 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 ); - createEOperation( nsEClass, NS___FIND_BASIC_TYPE__STRING_IRISECLIPSECONSOLE ); - createEOperation( nsEClass, NS___FIND_CONSTRUCTED_ATTRIBUTE__STRING_IRISECLIPSECONSOLE ); nsDocEClass = createEClass( NS_DOC ); createEReference( nsDocEClass, NS_DOC__DOC ); @@ -5103,36 +5037,6 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, !IS_DERIVED, !IS_ORDERED ); - EOperation op = initEOperation( getNS__FindCDC__String_IRiseClipseConsole(), this.getCDC(), "findCDC", 0, 1, - IS_UNIQUE, IS_ORDERED ); - addEParameter( op, ecorePackage.getEString(), "cDCName", 0, 1, IS_UNIQUE, IS_ORDERED ); - addEParameter( op, this.getIRiseClipseConsole(), "console", 0, 1, IS_UNIQUE, IS_ORDERED ); - - op = initEOperation( getNS__FindPresenceCondition__String_IRiseClipseConsole(), this.getPresenceCondition(), - "findPresenceCondition", 0, 1, IS_UNIQUE, IS_ORDERED ); - addEParameter( op, ecorePackage.getEString(), "presenceConditionName", 0, 1, IS_UNIQUE, IS_ORDERED ); - addEParameter( op, this.getIRiseClipseConsole(), "console", 0, 1, IS_UNIQUE, IS_ORDERED ); - - op = initEOperation( getNS__FindFunctionalConstraint__String_IRiseClipseConsole(), - this.getFunctionalConstraint(), "findFunctionalConstraint", 0, 1, IS_UNIQUE, IS_ORDERED ); - 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 ); - - op = initEOperation( getNS__FindBasicType__String_IRiseClipseConsole(), this.getBasicType(), "findBasicType", 0, - 1, IS_UNIQUE, IS_ORDERED ); - addEParameter( op, ecorePackage.getEString(), "basicTypeName", 0, 1, IS_UNIQUE, IS_ORDERED ); - addEParameter( op, this.getIRiseClipseConsole(), "console", 0, 1, IS_UNIQUE, IS_ORDERED ); - - op = initEOperation( getNS__FindConstructedAttribute__String_IRiseClipseConsole(), - this.getConstructedAttribute(), "findConstructedAttribute", 0, 1, IS_UNIQUE, IS_ORDERED ); - addEParameter( op, ecorePackage.getEString(), "constructedAttributeName", 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_ParentNSDoc(), "doc", null, 0, -1, NSDoc.class, !IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, IS_COMPOSITE, !IS_RESOLVE_PROXIES, IS_UNSETTABLE, IS_UNIQUE, @@ -5371,8 +5275,8 @@ public class NsdPackageImpl extends EPackageImpl implements NsdPackage { 1, NsdObject.class, IS_TRANSIENT, !IS_VOLATILE, IS_CHANGEABLE, !IS_UNSETTABLE, !IS_ID, IS_UNIQUE, !IS_DERIVED, IS_ORDERED ); - op = initEOperation( getNsdObject__BuildExplicitLinks__IRiseClipseConsole_boolean(), ecorePackage.getEBoolean(), - "buildExplicitLinks", 0, 1, IS_UNIQUE, IS_ORDERED ); + EOperation op = initEOperation( getNsdObject__BuildExplicitLinks__IRiseClipseConsole_boolean(), + ecorePackage.getEBoolean(), "buildExplicitLinks", 0, 1, IS_UNIQUE, IS_ORDERED ); addEParameter( op, this.getIRiseClipseConsole(), "console", 0, 1, IS_UNIQUE, IS_ORDERED ); addEParameter( op, ecorePackage.getEBoolean(), "forceUpdate", 0, 1, IS_UNIQUE, IS_ORDERED ); 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 2e5a9df4cd2bbe64e6f90d3cb36284be23a6686d..58326e1d4f107f90ff0cd1c7080b0407a44dc782 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 @@ -2425,12 +2425,14 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData if( super.buildExplicitLinks( console, forceUpdate ) ) return true; NS ns = getParentConstructedAttribute().getParentConstructedAttributes().getParentNS(); + NsdResourceSetImpl rs = getResourceSet(); + if( rs == null ) return false; String messagePrefix = "[NSD links] while resolving link from SubDataAttribute (name: " + getName() + ", NS id: " + ns.getId() + ", line: " + getLineNumber() + "): "; if( isSetPresCond() ) { - PresenceCondition foundPC = ns.findPresenceCondition( getPresCond(), console ); + PresenceCondition foundPC = rs.findPresenceCondition( getPresCond(), getNsIdentification(), console ); if( foundPC == null ) { console.warning( messagePrefix + "PresenceCondition (name: " + getPresCond() + ") not found" ); } @@ -2447,7 +2449,7 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData if( isSetType() ) { switch( getTypeKind().getValue() ) { case DefinedAttributeTypeKind.BASIC_VALUE: - BasicType foundBT = ns.findBasicType( getType(), console ); + BasicType foundBT = rs.findBasicType( getType(), getNsIdentification(), console ); if( foundBT == null ) { console.warning( messagePrefix + "BasicType (name: " + getType() + ") not found" ); @@ -2461,7 +2463,7 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData } break; case DefinedAttributeTypeKind.CONSTRUCTED_VALUE: - ConstructedAttribute foundCA = ns.findConstructedAttribute( getType(), console ); + ConstructedAttribute foundCA = rs.findConstructedAttribute( getType(), getNsIdentification(), console ); if( foundCA == null ) { console.warning( messagePrefix + "ConstructedAttribute (name: " + getType() + ") not found" ); @@ -2477,7 +2479,7 @@ public class SubDataAttributeImpl extends DocumentedClassImpl implements SubData } break; case DefinedAttributeTypeKind.ENUMERATED_VALUE: - Enumeration foundEn = ns.findEnumeration( getType(), console ); + Enumeration foundEn = rs.findEnumeration( getType(), getNsIdentification(), console ); if( foundEn == null ) { console.warning( messagePrefix + "Enumeration (name: " + getType() + ") not found" ); 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 2d7b79fc50307568209a1fe6e127afac17c7a3ca..400dbd430fa3598c14b332ee0eb088151c863d09 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 @@ -2184,12 +2184,14 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj if( super.buildExplicitLinks( console, forceUpdate ) ) return true; NS ns = getParentCDC().getParentCDCs().getParentNS(); + NsdResourceSetImpl rs = getResourceSet(); + if( rs == null ) return false; String messagePrefix = "[NSD links] while resolving link from SubDataObject (name: " + getName() + ", NS id: " + ns.getId() + ", line: " + getLineNumber() + "): "; if( isSetType() ) { - CDC foundCDC = ns.findCDC( getType(), console ); + CDC foundCDC = rs.findCDC( getType(), getNsIdentification(), console ); if( foundCDC == null ) { console.warning( messagePrefix + "CDC (name: " + getType() + ") not found" ); @@ -2203,7 +2205,7 @@ public class SubDataObjectImpl extends DocumentedClassImpl implements SubDataObj } if( isSetPresCond() ) { - PresenceCondition foundPC = ns.findPresenceCondition( getPresCond(), console ); + PresenceCondition foundPC = rs.findPresenceCondition( getPresCond(), getNsIdentification(), console ); if( foundPC == null ) { console.warning( messagePrefix + "PresenceCondition (name: " + getPresCond() + ") not found" ); 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 e273a7ac0a78857c17e7ef021265c728f830684e..63c24390db51bb3ad44fa1aafd8faec62a4c2e70 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 @@ -312,6 +312,13 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { return lnClassStream; } + public LNClass findLNClass( String lnClass, NsIdentification nsIdentification, IRiseClipseConsole console ) { + return getLNClassStream( nsIdentification ) + .filter( c -> c.getName().equals( lnClass ) ) + .findAny() + .orElse( null ); + } + public Stream< Abbreviation > getAllAbbreviationStream() { Stream< Abbreviation > abbreviationStream = Stream.empty(); Iterator< NS > it = nsdResources.values().iterator(); @@ -342,6 +349,13 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { return abbreviationStream; } + public Abbreviation findAbbreviation( String abb, NsIdentification nsIdentification, IRiseClipseConsole console ) { + return getAbbreviationStream( nsIdentification ) + .filter( a -> a.getName().equals( abb ) ) + .findAny() + .orElse( null ); + } + public Stream< Enumeration > getAllEnumerationStream() { Stream< Enumeration > enumerationStream = Stream.empty(); Iterator< NS > it = nsdResources.values().iterator(); @@ -372,6 +386,13 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { return enumerationStream; } + public Enumeration findEnumeration( String en, NsIdentification nsIdentification, IRiseClipseConsole console ) { + return getEnumerationStream( nsIdentification ) + .filter( e -> e.getName().equals( en ) ) + .findAny() + .orElse( null ); + } + public Stream< CDC > getAllCDCStream() { Stream< CDC > cdcStream = Stream.empty(); Iterator< NS > it = nsdResources.values().iterator(); @@ -402,6 +423,13 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { return cdcStream; } + public CDC findCDC( String cdc, NsIdentification nsIdentification, IRiseClipseConsole console ) { + return getCDCStream( nsIdentification ) + .filter( c -> c.getName().equals( cdc ) ) + .findAny() + .orElse( null ); + } + public Stream< ConstructedAttribute > getAllConstructedAttributeStream() { Stream< ConstructedAttribute > constructedAttributeStream = Stream.empty(); Iterator< NS > it = nsdResources.values().iterator(); @@ -432,6 +460,13 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { return constructedAttributeStream; } + public ConstructedAttribute findConstructedAttribute( String att, NsIdentification nsIdentification, IRiseClipseConsole console ) { + return getConstructedAttributeStream( nsIdentification ) + .filter( c -> c.getName().equals( att ) ) + .findAny() + .orElse( null ); + } + public Stream< BasicType > getAllBasicTypeStream() { Stream< BasicType > basicTypeStream = Stream.empty(); Iterator< NS > it = nsdResources.values().iterator(); @@ -462,6 +497,13 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { return basicTypeStream; } + public BasicType findBasicType( String basic, NsIdentification nsIdentification, IRiseClipseConsole console ) { + return getBasicTypeStream( nsIdentification ) + .filter( b -> b.getName().equals( basic ) ) + .findAny() + .orElse( null ); + } + public Stream< FunctionalConstraint > getAllFunctionalConstraintStream() { Stream< FunctionalConstraint > functionalConstraintStream = Stream.empty(); Iterator< NS > it = nsdResources.values().iterator(); @@ -492,6 +534,13 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { return functionalConstraintStream; } + public FunctionalConstraint findFunctionalConstraint( String fc, NsIdentification nsIdentification, IRiseClipseConsole console ) { + return getFunctionalConstraintStream( nsIdentification ) + .filter( f -> f.getAbbreviation().equals( fc ) ) + .findAny() + .orElse( null ); + } + public Stream< PresenceCondition > getAllPresenceConditionStream() { Stream< PresenceCondition > presenceConditionStream = Stream.empty(); Iterator< NS > it = nsdResources.values().iterator(); @@ -522,6 +571,13 @@ public class NsdResourceSetImpl extends AbstractRiseClipseResourceSet { return presenceConditionStream; } + public PresenceCondition findPresenceCondition( String presence, NsIdentification nsIdentification, IRiseClipseConsole console ) { + return getPresenceConditionStream( nsIdentification ) + .filter( p -> p.getName().equals( presence ) ) + .findAny() + .orElse( null ); + } + public Doc findDoc( NsIdentification identification, String id ) { for( NSDoc nsdoc : nsdocResources.values() ) { Optional< Doc > doc = nsdoc