gt:             if (msgs != null) {
context: /**
   * Copyright (c) 2010-2016, openHAB.org and others.
   *
   * All rights reserved. This program and the accompanying materials
   * are made available under the terms of the Eclipse Public License v1.0
   * which accompanies this distribution, and is available at
   * http://www.eclipse.org/legal/epl-v10.html
   */
  /**
   */
  package org.openhab.binding.tinkerforge.internal.model.impl;
  
  import java.lang.reflect.InvocationTargetException;
  import java.math.BigDecimal;
  import java.util.concurrent.atomic.AtomicBoolean;
  
  import org.eclipse.emf.common.notify.Notification;
  import org.eclipse.emf.common.notify.NotificationChain;
  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.impl.MinimalEObjectImpl;
  import org.eclipse.emf.ecore.util.EcoreUtil;
  import org.openhab.binding.tinkerforge.internal.LoggerConstants;
  import org.openhab.binding.tinkerforge.internal.TinkerforgeErrorHandler;
  import org.openhab.binding.tinkerforge.internal.model.CallbackListener;
  import org.openhab.binding.tinkerforge.internal.model.MBaseDevice;
  import org.openhab.binding.tinkerforge.internal.model.MBrickd;
  import org.openhab.binding.tinkerforge.internal.model.MBrickletHumidity;
  import org.openhab.binding.tinkerforge.internal.model.MDevice;
  import org.openhab.binding.tinkerforge.internal.model.MTFConfigConsumer;
  import org.openhab.binding.tinkerforge.internal.model.ModelPackage;
  import org.openhab.binding.tinkerforge.internal.model.TFBaseConfiguration;
  import org.openhab.binding.tinkerforge.internal.tools.Tools;
  import org.openhab.binding.tinkerforge.internal.types.DecimalValue;
  import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;
  
  import com.tinkerforge.BrickletHumidity;
  import com.tinkerforge.IPConnection;
  import com.tinkerforge.NotConnectedException;
  import com.tinkerforge.TimeoutException;
  
  /**
   * <!-- begin-user-doc -->
   * An implementation of the model object '<em><b>MBricklet Humidity</b></em>'.
   *
   * @author Theo Weiss
   * @since 1.3.0
   *        <!-- end-user-doc -->
   *        <p>
   *        The following features are implemented:
   *        <ul>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getSensorValue
   *        <em>Sensor Value</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getLogger <em>Logger</em>
   *        }</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getUid <em>Uid</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#isPoll <em>Poll</em>}
   *        </li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getEnabledA
   *        <em>Enabled A</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getTinkerforgeDevice
   *        <em>Tinkerforge Device</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getIpConnection
   *        <em>Ip Connection</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getConnectedUid
   *        <em>Connected Uid</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getPosition
   *        <em>Position</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getDeviceIdentifier
   *        <em>Device Identifier</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getName <em>Name</em>}
   *        </li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getBrickd <em>Brickd</em>
   *        }</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getTfConfig
   *        <em>Tf Config</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getCallbackPeriod
   *        <em>Callback Period</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getDeviceType
   *        <em>Device Type</em>}</li>
   *        <li>{@link org.openhab.binding.tinkerforge.internal.model.impl.MBrickletHumidityImpl#getThreshold
   *        <em>Threshold</em>}</li>
   *        </ul>
   *        </p>
   *
   * @generated
   */
  public class MBrickletHumidityImpl extends MinimalEObjectImpl.Container implements MBrickletHumidity {
      /**
       * The cached value of the '{@link #getSensorValue() <em>Sensor Value</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getSensorValue()
       * @generated
       * @ordered
       */
      protected DecimalValue sensorValue;
  
      /**
       * The default value of the '{@link #getLogger() <em>Logger</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getLogger()
       * @generated
       * @ordered
       */
      protected static final Logger LOGGER_EDEFAULT = null;
  
      /**
       * The cached value of the '{@link #getLogger() <em>Logger</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getLogger()
       * @generated
       * @ordered
       */
      protected Logger logger = LOGGER_EDEFAULT;
  
      /**
       * The default value of the '{@link #getUid() <em>Uid</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getUid()
       * @generated
       * @ordered
       */
      protected static final String UID_EDEFAULT = null;
  
      /**
       * The cached value of the '{@link #getUid() <em>Uid</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getUid()
       * @generated
       * @ordered
       */
      protected String uid = UID_EDEFAULT;
  
      /**
       * The default value of the '{@link #isPoll() <em>Poll</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #isPoll()
       * @generated
       * @ordered
       */
      protected static final boolean POLL_EDEFAULT = true;
  
      /**
       * The cached value of the '{@link #isPoll() <em>Poll</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #isPoll()
       * @generated
       * @ordered
       */
      protected boolean poll = POLL_EDEFAULT;
  
      /**
       * The default value of the '{@link #getEnabledA() <em>Enabled A</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getEnabledA()
       * @generated
       * @ordered
       */
      protected static final AtomicBoolean ENABLED_A_EDEFAULT = null;
  
      /**
       * The cached value of the '{@link #getEnabledA() <em>Enabled A</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getEnabledA()
       * @generated
       * @ordered
       */
      protected AtomicBoolean enabledA = ENABLED_A_EDEFAULT;
  
      /**
       * The cached value of the '{@link #getTinkerforgeDevice() <em>Tinkerforge Device</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getTinkerforgeDevice()
       * @generated
       * @ordered
       */
      protected BrickletHumidity tinkerforgeDevice;
  
      /**
       * The default value of the '{@link #getIpConnection() <em>Ip Connection</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getIpConnection()
       * @generated
       * @ordered
       */
      protected static final IPConnection IP_CONNECTION_EDEFAULT = null;
  
      /**
       * The cached value of the '{@link #getIpConnection() <em>Ip Connection</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getIpConnection()
       * @generated
       * @ordered
       */
      protected IPConnection ipConnection = IP_CONNECTION_EDEFAULT;
  
      /**
       * The default value of the '{@link #getConnectedUid() <em>Connected Uid</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getConnectedUid()
       * @generated
       * @ordered
       */
      protected static final String CONNECTED_UID_EDEFAULT = null;
  
      /**
       * The cached value of the '{@link #getConnectedUid() <em>Connected Uid</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getConnectedUid()
       * @generated
       * @ordered
       */
      protected String connectedUid = CONNECTED_UID_EDEFAULT;
  
      /**
       * The default value of the '{@link #getPosition() <em>Position</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getPosition()
       * @generated
       * @ordered
       */
      protected static final char POSITION_EDEFAULT = '\u0000';
  
      /**
       * The cached value of the '{@link #getPosition() <em>Position</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getPosition()
       * @generated
       * @ordered
       */
      protected char position = POSITION_EDEFAULT;
  
      /**
       * The default value of the '{@link #getDeviceIdentifier() <em>Device Identifier</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getDeviceIdentifier()
       * @generated
       * @ordered
       */
      protected static final int DEVICE_IDENTIFIER_EDEFAULT = 0;
  
      /**
       * The cached value of the '{@link #getDeviceIdentifier() <em>Device Identifier</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getDeviceIdentifier()
       * @generated
       * @ordered
       */
      protected int deviceIdentifier = DEVICE_IDENTIFIER_EDEFAULT;
  
      /**
       * The default value of the '{@link #getName() <em>Name</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getName()
       * @generated
       * @ordered
       */
      protected static final String NAME_EDEFAULT = null;
  
      /**
       * The cached value of the '{@link #getName() <em>Name</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getName()
       * @generated
       * @ordered
       */
      protected String name = NAME_EDEFAULT;
  
      /**
       * The cached value of the '{@link #getTfConfig() <em>Tf Config</em>}' containment reference.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getTfConfig()
       * @generated
       * @ordered
       */
      protected TFBaseConfiguration tfConfig;
  
      /**
       * The default value of the '{@link #getCallbackPeriod() <em>Callback Period</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getCallbackPeriod()
       * @generated
       * @ordered
       */
      protected static final long CALLBACK_PERIOD_EDEFAULT = 1000L;
  
      /**
       * The cached value of the '{@link #getCallbackPeriod() <em>Callback Period</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getCallbackPeriod()
       * @generated
       * @ordered
       */
      protected long callbackPeriod = CALLBACK_PERIOD_EDEFAULT;
  
      /**
       * The default value of the '{@link #getDeviceType() <em>Device Type</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getDeviceType()
       * @generated
       * @ordered
       */
      protected static final String DEVICE_TYPE_EDEFAULT = "bricklet_humidity";
  
      /**
       * The cached value of the '{@link #getDeviceType() <em>Device Type</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getDeviceType()
       * @generated
       * @ordered
       */
      protected String deviceType = DEVICE_TYPE_EDEFAULT;
  
      /**
       * The default value of the '{@link #getThreshold() <em>Threshold</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getThreshold()
       * @generated
       * @ordered
       */
      protected static final BigDecimal THRESHOLD_EDEFAULT = new BigDecimal("0.5");
  
      /**
       * The cached value of the '{@link #getThreshold() <em>Threshold</em>}' attribute.
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @see #getThreshold()
       * @generated
       * @ordered
       */
      protected BigDecimal threshold = THRESHOLD_EDEFAULT;
  
      private HumidityListener listener;
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      protected MBrickletHumidityImpl() {
          super();
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      protected EClass eStaticClass() {
          return ModelPackage.Literals.MBRICKLET_HUMIDITY;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public DecimalValue getSensorValue() {
          return sensorValue;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setSensorValue(DecimalValue newSensorValue) {
          DecimalValue oldSensorValue = sensorValue;
          sensorValue = newSensorValue;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__SENSOR_VALUE,
                      oldSensorValue, sensorValue));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public long getCallbackPeriod() {
          return callbackPeriod;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setCallbackPeriod(long newCallbackPeriod) {
          long oldCallbackPeriod = callbackPeriod;
          callbackPeriod = newCallbackPeriod;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__CALLBACK_PERIOD,
                      oldCallbackPeriod, callbackPeriod));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public BrickletHumidity getTinkerforgeDevice() {
          return tinkerforgeDevice;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setTinkerforgeDevice(BrickletHumidity newTinkerforgeDevice) {
          BrickletHumidity oldTinkerforgeDevice = tinkerforgeDevice;
          tinkerforgeDevice = newTinkerforgeDevice;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__TINKERFORGE_DEVICE,
                      oldTinkerforgeDevice, tinkerforgeDevice));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public Logger getLogger() {
          return logger;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setLogger(Logger newLogger) {
          Logger oldLogger = logger;
          logger = newLogger;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__LOGGER, oldLogger,
                      logger));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public IPConnection getIpConnection() {
          return ipConnection;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setIpConnection(IPConnection newIpConnection) {
          IPConnection oldIpConnection = ipConnection;
          ipConnection = newIpConnection;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__IP_CONNECTION,
                      oldIpConnection, ipConnection));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public String getUid() {
          return uid;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setUid(String newUid) {
          String oldUid = uid;
          uid = newUid;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__UID, oldUid, uid));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public boolean isPoll() {
          return poll;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setPoll(boolean newPoll) {
          boolean oldPoll = poll;
          poll = newPoll;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__POLL, oldPoll,
                      poll));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public AtomicBoolean getEnabledA() {
          return enabledA;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setEnabledA(AtomicBoolean newEnabledA) {
          AtomicBoolean oldEnabledA = enabledA;
          enabledA = newEnabledA;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__ENABLED_A,
                      oldEnabledA, enabledA));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public String getConnectedUid() {
          return connectedUid;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setConnectedUid(String newConnectedUid) {
          String oldConnectedUid = connectedUid;
          connectedUid = newConnectedUid;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__CONNECTED_UID,
                      oldConnectedUid, connectedUid));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public char getPosition() {
          return position;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setPosition(char newPosition) {
          char oldPosition = position;
          position = newPosition;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__POSITION,
                      oldPosition, position));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public int getDeviceIdentifier() {
          return deviceIdentifier;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setDeviceIdentifier(int newDeviceIdentifier) {
          int oldDeviceIdentifier = deviceIdentifier;
          deviceIdentifier = newDeviceIdentifier;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__DEVICE_IDENTIFIER,
                      oldDeviceIdentifier, deviceIdentifier));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public String getName() {
          return name;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setName(String newName) {
          String oldName = name;
          name = newName;
          if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__NAME, oldName,
                      name));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public MBrickd getBrickd() {
          if (eContainerFeatureID() != ModelPackage.MBRICKLET_HUMIDITY__BRICKD) {
              return null;
          }
          return (MBrickd) eContainer();
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      public NotificationChain basicSetBrickd(MBrickd newBrickd, NotificationChain msgs) {
          msgs = eBasicSetContainer((InternalEObject) newBrickd, ModelPackage.MBRICKLET_HUMIDITY__BRICKD, msgs);
          return msgs;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setBrickd(MBrickd newBrickd) {
          if (newBrickd != eInternalContainer()
                  || (eContainerFeatureID() != ModelPackage.MBRICKLET_HUMIDITY__BRICKD && newBrickd != null)) {
              if (EcoreUtil.isAncestor(this, newBrickd)) {
                  throw new IllegalArgumentException("Recursive containment not allowed for " + toString());
              }
              NotificationChain msgs = null;
              if (eInternalContainer() != null) {
                  msgs = eBasicRemoveFromContainer(msgs);
              }
              if (newBrickd != null) {
                  msgs = ((InternalEObject) newBrickd).eInverseAdd(this, ModelPackage.MBRICKD__MDEVICES, MBrickd.class,
                          msgs);
              }
              msgs = basicSetBrickd(newBrickd, msgs);
              if (msgs != null) {
                  msgs.dispatch();
              }
          } else if (eNotificationRequired()) {
              eNotify(new ENotificationImpl(this, Notification.SET, ModelPackage.MBRICKLET_HUMIDITY__BRICKD, newBrickd,
                      newBrickd));
          }
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public TFBaseConfiguration getTfConfig() {
          return tfConfig;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      public NotificationChain basicSetTfConfig(TFBaseConfiguration newTfConfig, NotificationChain msgs) {
          TFBaseConfiguration oldTfConfig = tfConfig;
          tfConfig = newTfConfig;
          if (eNotificationRequired()) {
              ENotificationImpl notification = new ENotificationImpl(this, Notification.SET,
                      ModelPackage.MBRICKLET_HUMIDITY__TF_CONFIG, oldTfConfig, newTfConfig);
              if (msgs == null) {
                  msgs = notification;
              } else {
                  msgs.add(notification);
              }
          }
          return msgs;
      }
  
      /**
       * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
       * 
       * @generated
       */
      @Override
      public void setTfConfig(TFBaseConfiguration newTfConfig) {
          if (newTfConfig != tfConfig) {
              NotificationChain msgs = null;
              if (tfConfig != null) {
                  msgs = ((InternalEObject) tfConfig).eInverseRemove(this,
                          EOPPOSITE_FEATURE_BASE - ModelPackage.MBRICKLET_HUMIDITY__TF_CONFIG, null, msgs);
              }
              if (newTfConfig != null) {
                  msgs = ((InternalEObject) newTfConfig).eInverseAdd(this,
                          EOPPOSITE_FEATURE_BASE - ModelPackage.MBRICKLET_HUMIDITY__TF_CONFIG, null, msgs);
              }
              msgs = basicSetTfConfig(newTfConfig, msgs);
  