From 006879b8bd3722d0c243713215f3902de4222006 Mon Sep 17 00:00:00 2001
From: Dominique Marcadet <Dominique.Marcadet@centralesupelec.fr>
Date: Wed, 19 Feb 2020 10:02:22 +0100
Subject: [PATCH] remove use of FeatureMap in AnyLN

---
 .../model/SCL.ecore                           |  23 +---
 .../model/SCL.genmodel                        |   1 -
 .../edf/riseclipse/iec61850/scl/AnyLN.java    |  44 +-------
 .../riseclipse/iec61850/scl/SclPackage.java   |  40 +------
 .../iec61850/scl/impl/AnyLNImpl.java          | 103 ++++++------------
 .../iec61850/scl/impl/SclPackageImpl.java     |  10 --
 .../riseclipse/iec61850/scl/impl/scl.ecore    |  23 +---
 7 files changed, 45 insertions(+), 199 deletions(-)

diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore
index 6bd1b09..b9569c9 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.ecore
@@ -622,19 +622,11 @@
         eType="#//DOI" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//DOI/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReportControl" ordered="false"
-        upperBound="-1" eType="#//ReportControl" volatile="true" unsettable="true"
-        containment="true" resolveProxies="false" eOpposite="#//ReportControl/ParentAnyLN">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithTriggerOpt"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//ReportControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//ReportControl/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LogControl" ordered="false"
-        upperBound="-1" eType="#//LogControl" volatile="true" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//LogControl/ParentAnyLN">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithTriggerOpt"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//LogControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//LogControl/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="DataSet" ordered="false"
         upperBound="-1" eType="#//DataSet" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//DataSet/ParentAnyLN"/>
@@ -653,13 +645,6 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReferredByLNode" ordered="false"
         upperBound="-1" eType="#//LNode" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//LNode/RefersToAnyLN"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ControlWithTriggerOpt"
-        ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true" unsettable="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Association" eSuperTypes="#//BaseElement #//AgLNRef">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="associationID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel
index d8d7b9b..b9370ae 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/model/SCL.genmodel
@@ -374,7 +374,6 @@
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SCL.ecore#//AnyLN/ReferredByAssociation"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SCL.ecore#//AnyLN/ReferredByIEDName"/>
       <genFeatures notify="false" createChild="false" propertySortChoices="true" ecoreFeature="ecore:EReference SCL.ecore#//AnyLN/ReferredByLNode"/>
-      <genFeatures property="None" notify="false" createChild="false" ecoreFeature="ecore:EAttribute SCL.ecore#//AnyLN/ControlWithTriggerOpt"/>
       <genOperations ecoreOperation="SCL.ecore#//AnyLN/getParentLDevice"/>
       <genOperations ecoreOperation="SCL.ecore#//AnyLN/getNamespace"/>
     </genClasses>
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/AnyLN.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/AnyLN.java
index 5e8964b..5e634ab 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/AnyLN.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/AnyLN.java
@@ -21,7 +21,6 @@
 package fr.centralesupelec.edf.riseclipse.iec61850.scl;
 
 import org.eclipse.emf.common.util.EList;
-import org.eclipse.emf.ecore.util.FeatureMap;
 
 /**
  * <!-- begin-user-doc -->
@@ -47,7 +46,6 @@ import org.eclipse.emf.ecore.util.FeatureMap;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getReferredByAssociation <em>Referred By Association</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getReferredByIEDName <em>Referred By IED Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getReferredByLNode <em>Referred By LNode</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getControlWithTriggerOpt <em>Control With Trigger Opt</em>}</li>
  * </ul>
  *
  * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getAnyLN()
@@ -421,8 +419,7 @@ public interface AnyLN extends UnNaming {
      * @see #unsetReportControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getAnyLN_ReportControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.ReportControl#getParentAnyLN
-     * @model opposite="ParentAnyLN" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#ControlWithTriggerOpt'"
+     * @model opposite="ParentAnyLN" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     EList< ReportControl > getReportControl();
@@ -463,8 +460,7 @@ public interface AnyLN extends UnNaming {
      * @see #unsetLogControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getAnyLN_LogControl()
      * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.LogControl#getParentAnyLN
-     * @model opposite="ParentAnyLN" containment="true" unsettable="true" volatile="true" ordered="false"
-     *        extendedMetaData="group='#ControlWithTriggerOpt'"
+     * @model opposite="ParentAnyLN" containment="true" unsettable="true" ordered="false"
      * @generated
      */
     EList< LogControl > getLogControl();
@@ -728,42 +724,6 @@ public interface AnyLN extends UnNaming {
      */
     boolean isSetReferredByLNode();
 
-    /**
-     * Returns the value of the '<em><b>Control With Trigger Opt</b></em>' attribute list.
-     * The list contents are of type {@link org.eclipse.emf.ecore.util.FeatureMap.Entry}.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the value of the '<em>Control With Trigger Opt</em>' attribute list.
-     * @see #isSetControlWithTriggerOpt()
-     * @see #unsetControlWithTriggerOpt()
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.SclPackage#getAnyLN_ControlWithTriggerOpt()
-     * @model unsettable="true" dataType="org.eclipse.emf.ecore.EFeatureMapEntry" many="true" transient="true" ordered="false"
-     *        extendedMetaData="kind='group'"
-     * @generated
-     */
-    FeatureMap getControlWithTriggerOpt();
-
-    /**
-     * Unsets the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getControlWithTriggerOpt <em>Control With Trigger Opt</em>}' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #isSetControlWithTriggerOpt()
-     * @see #getControlWithTriggerOpt()
-     * @generated
-     */
-    void unsetControlWithTriggerOpt();
-
-    /**
-     * Returns whether the value of the '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getControlWithTriggerOpt <em>Control With Trigger Opt</em>}' attribute list is set.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return whether the value of the '<em>Control With Trigger Opt</em>' attribute list is set.
-     * @see #unsetControlWithTriggerOpt()
-     * @see #getControlWithTriggerOpt()
-     * @generated
-     */
-    boolean isSetControlWithTriggerOpt();
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java
index bd57fb0..442a07e 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/SclPackage.java
@@ -7197,15 +7197,6 @@ public interface SclPackage extends EPackage {
      */
     int ANY_LN__REFERRED_BY_LNODE = UN_NAMING_FEATURE_COUNT + 14;
 
-    /**
-     * The feature id for the '<em><b>Control With Trigger Opt</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int ANY_LN__CONTROL_WITH_TRIGGER_OPT = UN_NAMING_FEATURE_COUNT + 15;
-
     /**
      * The number of structural features of the '<em>Any LN</em>' class.
      * <!-- begin-user-doc -->
@@ -7213,7 +7204,7 @@ public interface SclPackage extends EPackage {
      * @generated
      * @ordered
      */
-    int ANY_LN_FEATURE_COUNT = UN_NAMING_FEATURE_COUNT + 16;
+    int ANY_LN_FEATURE_COUNT = UN_NAMING_FEATURE_COUNT + 15;
 
     /**
      * The operation id for the '<em>Build Explicit Links</em>' operation.
@@ -12694,15 +12685,6 @@ public interface SclPackage extends EPackage {
      */
     int LN__REFERRED_BY_LNODE = ANY_LN__REFERRED_BY_LNODE;
 
-    /**
-     * The feature id for the '<em><b>Control With Trigger Opt</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LN__CONTROL_WITH_TRIGGER_OPT = ANY_LN__CONTROL_WITH_TRIGGER_OPT;
-
     /**
      * The feature id for the '<em><b>Prefix</b></em>' attribute.
      * <!-- begin-user-doc -->
@@ -12973,15 +12955,6 @@ public interface SclPackage extends EPackage {
      */
     int LN0__REFERRED_BY_LNODE = ANY_LN__REFERRED_BY_LNODE;
 
-    /**
-     * The feature id for the '<em><b>Control With Trigger Opt</b></em>' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     * @ordered
-     */
-    int LN0__CONTROL_WITH_TRIGGER_OPT = ANY_LN__CONTROL_WITH_TRIGGER_OPT;
-
     /**
      * The feature id for the '<em><b>GSE Control</b></em>' containment reference list.
      * <!-- begin-user-doc -->
@@ -25005,17 +24978,6 @@ public interface SclPackage extends EPackage {
      */
     EReference getAnyLN_ReferredByLNode();
 
-    /**
-     * Returns the meta object for the attribute list '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getControlWithTriggerOpt <em>Control With Trigger Opt</em>}'.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @return the meta object for the attribute list '<em>Control With Trigger Opt</em>'.
-     * @see fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getControlWithTriggerOpt()
-     * @see #getAnyLN()
-     * @generated
-     */
-    EAttribute getAnyLN_ControlWithTriggerOpt();
-
     /**
      * Returns the meta object for the '{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.AnyLN#getParentLDevice() <em>Get Parent LDevice</em>}' operation.
      * <!-- begin-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java
index 925f910..64b3095 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/AnyLNImpl.java
@@ -53,10 +53,8 @@ import org.eclipse.emf.common.util.EList;
 import org.eclipse.emf.ecore.EClass;
 import org.eclipse.emf.ecore.InternalEObject;
 import org.eclipse.emf.ecore.impl.ENotificationImpl;
-import org.eclipse.emf.ecore.util.BasicFeatureMap;
 import org.eclipse.emf.ecore.util.EObjectContainmentWithInverseEList;
 import org.eclipse.emf.ecore.util.EObjectWithInverseEList;
-import org.eclipse.emf.ecore.util.FeatureMap;
 import org.eclipse.emf.ecore.util.InternalEList;
 
 /**
@@ -82,7 +80,6 @@ import org.eclipse.emf.ecore.util.InternalEList;
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.AnyLNImpl#getReferredByAssociation <em>Referred By Association</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.AnyLNImpl#getReferredByIEDName <em>Referred By IED Name</em>}</li>
  *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.AnyLNImpl#getReferredByLNode <em>Referred By LNode</em>}</li>
- *   <li>{@link fr.centralesupelec.edf.riseclipse.iec61850.scl.impl.AnyLNImpl#getControlWithTriggerOpt <em>Control With Trigger Opt</em>}</li>
  * </ul>
  *
  * @generated
@@ -233,6 +230,26 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     protected EList< DOI > doi;
 
+    /**
+     * The cached value of the '{@link #getReportControl() <em>Report Control</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getReportControl()
+     * @generated
+     * @ordered
+     */
+    protected EList< ReportControl > reportControl;
+
+    /**
+     * The cached value of the '{@link #getLogControl() <em>Log Control</em>}' containment reference list.
+     * <!-- begin-user-doc -->
+     * <!-- end-user-doc -->
+     * @see #getLogControl()
+     * @generated
+     * @ordered
+     */
+    protected EList< LogControl > logControl;
+
     /**
      * The cached value of the '{@link #getDataSet() <em>Data Set</em>}' containment reference list.
      * <!-- begin-user-doc -->
@@ -293,16 +310,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     protected EList< LNode > referredByLNode;
 
-    /**
-     * The cached value of the '{@link #getControlWithTriggerOpt() <em>Control With Trigger Opt</em>}' attribute list.
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @see #getControlWithTriggerOpt()
-     * @generated
-     * @ordered
-     */
-    protected FeatureMap controlWithTriggerOpt;
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -778,7 +785,11 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public EList< ReportControl > getReportControl() {
-        return getControlWithTriggerOpt().list( SclPackage.eINSTANCE.getAnyLN_ReportControl() );
+        if( reportControl == null ) {
+            reportControl = new EObjectContainmentWithInverseEList.Unsettable< ReportControl >( ReportControl.class,
+                    this, SclPackage.ANY_LN__REPORT_CONTROL, SclPackage.REPORT_CONTROL__PARENT_ANY_LN );
+        }
+        return reportControl;
     }
 
     /**
@@ -788,7 +799,7 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public void unsetReportControl() {
-        ( ( FeatureMap.Internal ) getControlWithTriggerOpt() ).clear( SclPackage.eINSTANCE.getAnyLN_ReportControl() );
+        if( reportControl != null ) ( ( InternalEList.Unsettable< ? > ) reportControl ).unset();
     }
 
     /**
@@ -798,8 +809,7 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public boolean isSetReportControl() {
-        return !( ( FeatureMap.Internal ) getControlWithTriggerOpt() )
-                .isEmpty( SclPackage.eINSTANCE.getAnyLN_ReportControl() );
+        return reportControl != null && ( ( InternalEList.Unsettable< ? > ) reportControl ).isSet();
     }
 
     /**
@@ -809,7 +819,11 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public EList< LogControl > getLogControl() {
-        return getControlWithTriggerOpt().list( SclPackage.eINSTANCE.getAnyLN_LogControl() );
+        if( logControl == null ) {
+            logControl = new EObjectContainmentWithInverseEList.Unsettable< LogControl >( LogControl.class, this,
+                    SclPackage.ANY_LN__LOG_CONTROL, SclPackage.LOG_CONTROL__PARENT_ANY_LN );
+        }
+        return logControl;
     }
 
     /**
@@ -819,7 +833,7 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public void unsetLogControl() {
-        ( ( FeatureMap.Internal ) getControlWithTriggerOpt() ).clear( SclPackage.eINSTANCE.getAnyLN_LogControl() );
+        if( logControl != null ) ( ( InternalEList.Unsettable< ? > ) logControl ).unset();
     }
 
     /**
@@ -829,8 +843,7 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
      */
     @Override
     public boolean isSetLogControl() {
-        return !( ( FeatureMap.Internal ) getControlWithTriggerOpt() )
-                .isEmpty( SclPackage.eINSTANCE.getAnyLN_LogControl() );
+        return logControl != null && ( ( InternalEList.Unsettable< ? > ) logControl ).isSet();
     }
 
     /**
@@ -1037,39 +1050,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
         return referredByLNode != null && ( ( InternalEList.Unsettable< ? > ) referredByLNode ).isSet();
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public FeatureMap getControlWithTriggerOpt() {
-        if( controlWithTriggerOpt == null ) {
-            controlWithTriggerOpt = new BasicFeatureMap( this, SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT );
-        }
-        return controlWithTriggerOpt;
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public void unsetControlWithTriggerOpt() {
-        if( controlWithTriggerOpt != null ) ( ( InternalEList.Unsettable< ? > ) controlWithTriggerOpt ).unset();
-    }
-
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public boolean isSetControlWithTriggerOpt() {
-        return controlWithTriggerOpt != null && ( ( InternalEList.Unsettable< ? > ) controlWithTriggerOpt ).isSet();
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
@@ -1250,8 +1230,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
             return ( ( InternalEList< ? > ) getReferredByIEDName() ).basicRemove( otherEnd, msgs );
         case SclPackage.ANY_LN__REFERRED_BY_LNODE:
             return ( ( InternalEList< ? > ) getReferredByLNode() ).basicRemove( otherEnd, msgs );
-        case SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT:
-            return ( ( InternalEList< ? > ) getControlWithTriggerOpt() ).basicRemove( otherEnd, msgs );
         }
         return super.eInverseRemove( otherEnd, featureID, msgs );
     }
@@ -1294,9 +1272,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
             return getReferredByIEDName();
         case SclPackage.ANY_LN__REFERRED_BY_LNODE:
             return getReferredByLNode();
-        case SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT:
-            if( coreType ) return getControlWithTriggerOpt();
-            return ( ( FeatureMap.Internal ) getControlWithTriggerOpt() ).getWrapper();
         }
         return super.eGet( featureID, resolve, coreType );
     }
@@ -1365,9 +1340,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
             getReferredByLNode().clear();
             getReferredByLNode().addAll( ( Collection< ? extends LNode > ) newValue );
             return;
-        case SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT:
-            ( ( FeatureMap.Internal ) getControlWithTriggerOpt() ).set( newValue );
-            return;
         }
         super.eSet( featureID, newValue );
     }
@@ -1425,9 +1397,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
         case SclPackage.ANY_LN__REFERRED_BY_LNODE:
             unsetReferredByLNode();
             return;
-        case SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT:
-            unsetControlWithTriggerOpt();
-            return;
         }
         super.eUnset( featureID );
     }
@@ -1470,8 +1439,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
             return isSetReferredByIEDName();
         case SclPackage.ANY_LN__REFERRED_BY_LNODE:
             return isSetReferredByLNode();
-        case SclPackage.ANY_LN__CONTROL_WITH_TRIGGER_OPT:
-            return isSetControlWithTriggerOpt();
         }
         return super.eIsSet( featureID );
     }
@@ -1517,8 +1484,6 @@ public abstract class AnyLNImpl extends UnNamingImpl implements AnyLN {
             result.append( lnType );
         else
             result.append( "<unset>" );
-        result.append( ", ControlWithTriggerOpt: " );
-        result.append( controlWithTriggerOpt );
         result.append( ')' );
         return result.toString();
     }
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java
index 5962bc3..854cb38 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/SclPackageImpl.java
@@ -4542,16 +4542,6 @@ public class SclPackageImpl extends EPackageImpl implements SclPackage {
         return ( EReference ) getAnyLN().getEStructuralFeatures().get( 14 );
     }
 
-    /**
-     * <!-- begin-user-doc -->
-     * <!-- end-user-doc -->
-     * @generated
-     */
-    @Override
-    public EAttribute getAnyLN_ControlWithTriggerOpt() {
-        return ( EAttribute ) getAnyLN().getEStructuralFeatures().get( 15 );
-    }
-
     /**
      * <!-- begin-user-doc -->
      * <!-- end-user-doc -->
diff --git a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore
index 6bd1b09..b9569c9 100644
--- a/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore
+++ b/fr.centralesupelec.edf.riseclipse.iec61850.scl/src/fr/centralesupelec/edf/riseclipse/iec61850/scl/impl/scl.ecore
@@ -622,19 +622,11 @@
         eType="#//DOI" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//DOI/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReportControl" ordered="false"
-        upperBound="-1" eType="#//ReportControl" volatile="true" unsettable="true"
-        containment="true" resolveProxies="false" eOpposite="#//ReportControl/ParentAnyLN">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithTriggerOpt"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//ReportControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//ReportControl/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="LogControl" ordered="false"
-        upperBound="-1" eType="#//LogControl" volatile="true" unsettable="true" containment="true"
-        resolveProxies="false" eOpposite="#//LogControl/ParentAnyLN">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="group" value="#ControlWithTriggerOpt"/>
-      </eAnnotations>
-    </eStructuralFeatures>
+        upperBound="-1" eType="#//LogControl" unsettable="true" containment="true"
+        resolveProxies="false" eOpposite="#//LogControl/ParentAnyLN"/>
     <eStructuralFeatures xsi:type="ecore:EReference" name="DataSet" ordered="false"
         upperBound="-1" eType="#//DataSet" unsettable="true" containment="true" resolveProxies="false"
         eOpposite="#//DataSet/ParentAnyLN"/>
@@ -653,13 +645,6 @@
     <eStructuralFeatures xsi:type="ecore:EReference" name="ReferredByLNode" ordered="false"
         upperBound="-1" eType="#//LNode" transient="true" unsettable="true" resolveProxies="false"
         eOpposite="#//LNode/RefersToAnyLN"/>
-    <eStructuralFeatures xsi:type="ecore:EAttribute" name="ControlWithTriggerOpt"
-        ordered="false" upperBound="-1" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EFeatureMapEntry"
-        transient="true" unsettable="true">
-      <eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
-        <details key="kind" value="group"/>
-      </eAnnotations>
-    </eStructuralFeatures>
   </eClassifiers>
   <eClassifiers xsi:type="ecore:EClass" name="Association" eSuperTypes="#//BaseElement #//AgLNRef">
     <eStructuralFeatures xsi:type="ecore:EAttribute" name="associationID" eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"
-- 
GitLab