/**
  * 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);
   }
   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(QVTRelationPackage.Literals.KEY__PART);
   }
   return childrenFeatures;
 }
 /**
  * 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(ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY);
     childrenFeatures.add(ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE);
   }
   return childrenFeatures;
 }
  /**
   * 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);

      addIdentifiesPropertyDescriptor(object);
      addOppositePartPropertyDescriptor(object);
    }
    return itemPropertyDescriptors;
  }
  /**
   * 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(
            QVTRelationPackage.Literals.KEY__PART, EcoreFactory.eINSTANCE.createEAttribute()));

    newChildDescriptors.add(
        createChildParameter(
            QVTRelationPackage.Literals.KEY__PART, EcoreFactory.eINSTANCE.createEReference()));
  }
  /**
   * 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(Key.class)) {
      case QVTRelationPackage.KEY__PART:
        fireNotifyChanged(
            new ViewerNotification(notification, notification.getNotifier(), true, false));
        return;
    }
    super.notifyChanged(notification);
  }
  /**
   * 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(DictLiteralPart.class)) {
      case ImperativeOCLPackage.DICT_LITERAL_PART__KEY:
      case ImperativeOCLPackage.DICT_LITERAL_PART__VALUE:
        fireNotifyChanged(
            new ViewerNotification(notification, notification.getNotifier(), true, false));
        return;
    }
    super.notifyChanged(notification);
  }
  /**
   * 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(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createAltExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createAssertExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createAssignExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createBlockExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createBreakExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createCatchExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createComputeExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createContinueExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createDictLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createForExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createImperativeIterateExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createInstantiationExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createListLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createLogExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createOrderedTupleLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createRaiseExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createReturnExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createSwitchExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createTryExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createUnlinkExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createUnpackExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createVariableInitExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            ImperativeOCLFactory.eINSTANCE.createWhileExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createAssociationClassCallExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createBooleanLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createCollectionLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createEnumLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createIfExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createIntegerLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createUnlimitedNaturalLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createInvalidLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createIterateExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createIteratorExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createLetExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createMessageExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createNullLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createOperationCallExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createPropertyCallExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createRealLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createStateExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createStringLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createTupleLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createTypeExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createUnspecifiedValueExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__KEY,
            EcoreFactory.eINSTANCE.createVariableExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createAltExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createAssertExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createAssignExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createBlockExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createBreakExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createCatchExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createComputeExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createContinueExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createDictLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createForExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createImperativeIterateExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createInstantiationExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createListLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createLogExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createOrderedTupleLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createRaiseExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createReturnExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createSwitchExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createTryExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createUnlinkExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createUnpackExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createVariableInitExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            ImperativeOCLFactory.eINSTANCE.createWhileExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createAssociationClassCallExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createBooleanLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createCollectionLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createEnumLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createIfExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createIntegerLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createUnlimitedNaturalLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createInvalidLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createIterateExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createIteratorExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createLetExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createMessageExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createNullLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createOperationCallExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createPropertyCallExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createRealLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createStateExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createStringLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createTupleLiteralExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createTypeExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createUnspecifiedValueExp()));

    newChildDescriptors.add(
        createChildParameter(
            ImperativeOCLPackage.Literals.DICT_LITERAL_PART__VALUE,
            EcoreFactory.eINSTANCE.createVariableExp()));
  }