/**
   * This returns the property descriptors for the adapted class.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   *
   * @generated
   */
  @Override
  public List<IItemPropertyDescriptor> getPropertyDescriptors(Object object) {
    if (itemPropertyDescriptors == null) {
      super.getPropertyDescriptors(object);

      addAmpEgPropertyDescriptor(object);
      addBpmSyncPropertyDescriptor(object);
      addCutoffPropertyDescriptor(object);
      addEgIntensityPropertyDescriptor(object);
      addEgTimePropertyDescriptor(object);
      addFilterTypePropertyDescriptor(object);
      addFxSelectPropertyDescriptor(object);
      addFxSendPropertyDescriptor(object);
      addModDepthPropertyDescriptor(object);
      addModDestPropertyDescriptor(object);
      addModSpeedPropertyDescriptor(object);
      addModTypePropertyDescriptor(object);
      addPanPropertyDescriptor(object);
      addReservedBitAfterModDepthPropertyDescriptor(object);
      addResonancePropertyDescriptor(object);
      addRollPropertyDescriptor(object);
      addPitchPropertyDescriptor(object);
      addReversePropertyDescriptor(object);
      addSampleLabelPropertyDescriptor(object);
      addSamplePointerPropertyDescriptor(object);
      addStartPointPropertyDescriptor(object);
      addReservedBitsAfterReversePropertyDescriptor(object);
      addReservedBytePropertyDescriptor(object);
      addSliceNumberPropertyDescriptor(object);
    }
    return itemPropertyDescriptors;
  }
 /**
  * This specifies how to implement {@link #getChildren} and is used to deduce an appropriate
  * feature for an {@link org.eclipse.emf.edit.command.AddCommand}, {@link
  * org.eclipse.emf.edit.command.RemoveCommand} or {@link org.eclipse.emf.edit.command.MoveCommand}
  * in {@link #createCommand}.
  * <!-- begin-user-doc -->
  * <!-- end-user-doc -->
  *
  * @generated
  */
 @Override
 public Collection<? extends EStructuralFeature> getChildrenFeatures(Object object) {
   if (childrenFeatures == null) {
     super.getChildrenFeatures(object);
     childrenFeatures.add(EsxPackage.Literals.PART_WITH_SEQUENCE_DATA__SEQUENCE_DATA);
   }
   return childrenFeatures;
 }
  /**
   * This adds {@link org.eclipse.emf.edit.command.CommandParameter}s describing the children that
   * can be created under this object.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   *
   * @generated
   */
  @Override
  protected void collectNewChildDescriptors(Collection<Object> newChildDescriptors, Object object) {
    super.collectNewChildDescriptors(newChildDescriptors, object);

    newChildDescriptors.add(
        createChildParameter(
            EsxPackage.Literals.PART_WITH_SEQUENCE_DATA__SEQUENCE_DATA,
            EsxFactory.eINSTANCE.createSequenceData()));
  }
  /**
   * This handles model notifications by calling {@link #updateChildren} to update any cached
   * children and by creating a viewer notification, which it passes to {@link #fireNotifyChanged}.
   * <!-- begin-user-doc -->
   * <!-- end-user-doc -->
   *
   * @generated
   */
  @Override
  public void notifyChanged(Notification notification) {
    updateChildren(notification);

    switch (notification.getFeatureID(PartDrum.class)) {
      case EsxPackage.PART_DRUM__AMP_EG:
      case EsxPackage.PART_DRUM__BPM_SYNC:
      case EsxPackage.PART_DRUM__CUTOFF:
      case EsxPackage.PART_DRUM__EG_INTENSITY:
      case EsxPackage.PART_DRUM__EG_TIME:
      case EsxPackage.PART_DRUM__FILTER_TYPE:
      case EsxPackage.PART_DRUM__FX_SELECT:
      case EsxPackage.PART_DRUM__FX_SEND:
      case EsxPackage.PART_DRUM__MOD_DEPTH:
      case EsxPackage.PART_DRUM__MOD_DEST:
      case EsxPackage.PART_DRUM__MOD_SPEED:
      case EsxPackage.PART_DRUM__MOD_TYPE:
      case EsxPackage.PART_DRUM__PAN:
      case EsxPackage.PART_DRUM__RESERVED_BIT_AFTER_MOD_DEPTH:
      case EsxPackage.PART_DRUM__RESONANCE:
      case EsxPackage.PART_DRUM__ROLL:
      case EsxPackage.PART_DRUM__PITCH:
      case EsxPackage.PART_DRUM__REVERSE:
      case EsxPackage.PART_DRUM__SAMPLE_LABEL:
      case EsxPackage.PART_DRUM__SAMPLE_POINTER:
      case EsxPackage.PART_DRUM__START_POINT:
      case EsxPackage.PART_DRUM__RESERVED_BITS_AFTER_REVERSE:
      case EsxPackage.PART_DRUM__RESERVED_BYTE:
      case EsxPackage.PART_DRUM__SLICE_NUMBER:
        fireNotifyChanged(
            new ViewerNotification(notification, notification.getNotifier(), false, true));
        return;
      case EsxPackage.PART_DRUM__SEQUENCE_DATA:
        fireNotifyChanged(
            new ViewerNotification(notification, notification.getNotifier(), true, false));
        return;
    }
    super.notifyChanged(notification);
  }