gt: 			if (newSupportedCRSs != null)
context: /**
   * <copyright>
   * </copyright>
   *
   * $Id$
   */
  package net.opengis.wcs10.impl;
  
  import net.opengis.wcs10.CoverageOfferingType;
  import net.opengis.wcs10.DomainSetType;
  import net.opengis.wcs10.RangeSetType1;
  import net.opengis.wcs10.SupportedCRSsType;
  import net.opengis.wcs10.SupportedFormatsType;
  import net.opengis.wcs10.SupportedInterpolationsType;
  import net.opengis.wcs10.Wcs10Package;
  
  import org.eclipse.emf.common.notify.Notification;
  import org.eclipse.emf.common.notify.NotificationChain;
  
  import org.eclipse.emf.ecore.EClass;
  import org.eclipse.emf.ecore.InternalEObject;
  
  import org.eclipse.emf.ecore.impl.ENotificationImpl;
  
  /**
   * <!-- begin-user-doc -->
   * An implementation of the model object '<em><b>Coverage Offering Type</b></em>'.
   * <!-- end-user-doc -->
   * <p>
   * The following features are implemented:
   * <ul>
   *   <li>{@link net.opengis.wcs10.impl.CoverageOfferingTypeImpl#getDomainSet <em>Domain Set</em>}</li>
   *   <li>{@link net.opengis.wcs10.impl.CoverageOfferingTypeImpl#getRangeSet <em>Range Set</em>}</li>
   *   <li>{@link net.opengis.wcs10.impl.CoverageOfferingTypeImpl#getSupportedCRSs <em>Supported CR Ss</em>}</li>
   *   <li>{@link net.opengis.wcs10.impl.CoverageOfferingTypeImpl#getSupportedFormats <em>Supported Formats</em>}</li>
   *   <li>{@link net.opengis.wcs10.impl.CoverageOfferingTypeImpl#getSupportedInterpolations <em>Supported Interpolations</em>}</li>
   * </ul>
   * </p>
   *
   * @generated
   */
  public class CoverageOfferingTypeImpl extends CoverageOfferingBriefTypeImpl implements CoverageOfferingType {
      /**
  	 * The cached value of the '{@link #getDomainSet() <em>Domain Set</em>}' containment reference.
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @see #getDomainSet()
  	 * @generated
  	 * @ordered
  	 */
      protected DomainSetType domainSet;
  
      /**
  	 * The cached value of the '{@link #getRangeSet() <em>Range Set</em>}' containment reference.
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @see #getRangeSet()
  	 * @generated
  	 * @ordered
  	 */
      protected RangeSetType1 rangeSet;
  
      /**
  	 * The cached value of the '{@link #getSupportedCRSs() <em>Supported CR Ss</em>}' containment reference.
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @see #getSupportedCRSs()
  	 * @generated
  	 * @ordered
  	 */
      protected SupportedCRSsType supportedCRSs;
  
      /**
  	 * The cached value of the '{@link #getSupportedFormats() <em>Supported Formats</em>}' containment reference.
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @see #getSupportedFormats()
  	 * @generated
  	 * @ordered
  	 */
      protected SupportedFormatsType supportedFormats;
  
      /**
  	 * The cached value of the '{@link #getSupportedInterpolations() <em>Supported Interpolations</em>}' containment reference.
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @see #getSupportedInterpolations()
  	 * @generated
  	 * @ordered
  	 */
      protected SupportedInterpolationsType supportedInterpolations;
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      protected CoverageOfferingTypeImpl() {
  		super();
  	}
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      @Override
      protected EClass eStaticClass() {
  		return Wcs10Package.Literals.COVERAGE_OFFERING_TYPE;
  	}
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      @Override
      public DomainSetType getDomainSet() {
  		return domainSet;
  	}
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      public NotificationChain basicSetDomainSet(DomainSetType newDomainSet, NotificationChain msgs) {
  		DomainSetType oldDomainSet = domainSet;
  		domainSet = newDomainSet;
  		if (eNotificationRequired()) {
  			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Wcs10Package.COVERAGE_OFFERING_TYPE__DOMAIN_SET, oldDomainSet, newDomainSet);
  			if (msgs == null) msgs = notification; else msgs.add(notification);
  		}
  		return msgs;
  	}
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      @Override
      public void setDomainSet(DomainSetType newDomainSet) {
  		if (newDomainSet != domainSet) {
  			NotificationChain msgs = null;
  			if (domainSet != null)
  				msgs = ((InternalEObject)domainSet).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - Wcs10Package.COVERAGE_OFFERING_TYPE__DOMAIN_SET, null, msgs);
  			if (newDomainSet != null)
  				msgs = ((InternalEObject)newDomainSet).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - Wcs10Package.COVERAGE_OFFERING_TYPE__DOMAIN_SET, null, msgs);
  			msgs = basicSetDomainSet(newDomainSet, msgs);
  			if (msgs != null) msgs.dispatch();
  		}
  		else if (eNotificationRequired())
  			eNotify(new ENotificationImpl(this, Notification.SET, Wcs10Package.COVERAGE_OFFERING_TYPE__DOMAIN_SET, newDomainSet, newDomainSet));
  	}
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      @Override
      public RangeSetType1 getRangeSet() {
  		return rangeSet;
  	}
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      public NotificationChain basicSetRangeSet(RangeSetType1 newRangeSet, NotificationChain msgs) {
  		RangeSetType1 oldRangeSet = rangeSet;
  		rangeSet = newRangeSet;
  		if (eNotificationRequired()) {
  			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Wcs10Package.COVERAGE_OFFERING_TYPE__RANGE_SET, oldRangeSet, newRangeSet);
  			if (msgs == null) msgs = notification; else msgs.add(notification);
  		}
  		return msgs;
  	}
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      @Override
      public void setRangeSet(RangeSetType1 newRangeSet) {
  		if (newRangeSet != rangeSet) {
  			NotificationChain msgs = null;
  			if (rangeSet != null)
  				msgs = ((InternalEObject)rangeSet).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - Wcs10Package.COVERAGE_OFFERING_TYPE__RANGE_SET, null, msgs);
  			if (newRangeSet != null)
  				msgs = ((InternalEObject)newRangeSet).eInverseAdd(this, EOPPOSITE_FEATURE_BASE - Wcs10Package.COVERAGE_OFFERING_TYPE__RANGE_SET, null, msgs);
  			msgs = basicSetRangeSet(newRangeSet, msgs);
  			if (msgs != null) msgs.dispatch();
  		}
  		else if (eNotificationRequired())
  			eNotify(new ENotificationImpl(this, Notification.SET, Wcs10Package.COVERAGE_OFFERING_TYPE__RANGE_SET, newRangeSet, newRangeSet));
  	}
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      @Override
      public SupportedCRSsType getSupportedCRSs() {
  		return supportedCRSs;
  	}
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      public NotificationChain basicSetSupportedCRSs(SupportedCRSsType newSupportedCRSs, NotificationChain msgs) {
  		SupportedCRSsType oldSupportedCRSs = supportedCRSs;
  		supportedCRSs = newSupportedCRSs;
  		if (eNotificationRequired()) {
  			ENotificationImpl notification = new ENotificationImpl(this, Notification.SET, Wcs10Package.COVERAGE_OFFERING_TYPE__SUPPORTED_CR_SS, oldSupportedCRSs, newSupportedCRSs);
  			if (msgs == null) msgs = notification; else msgs.add(notification);
  		}
  		return msgs;
  	}
  
      /**
  	 * <!-- begin-user-doc -->
       * <!-- end-user-doc -->
  	 * @generated
  	 */
      @Override
      public void setSupportedCRSs(SupportedCRSsType newSupportedCRSs) {
  		if (newSupportedCRSs != supportedCRSs) {
  			NotificationChain msgs = null;
  			if (supportedCRSs != null)
  				msgs = ((InternalEObject)supportedCRSs).eInverseRemove(this, EOPPOSITE_FEATURE_BASE - Wcs10Package.COVERAGE_OFFERING_TYPE__SUPPORTED_CR_SS, null, msgs);
  