/**
  * 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(LQNPackage.Literals.ACTIVITY_LOOP_LIST_TYPE__ACTIVITY);
   }
   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(LQNPackage.Literals.SOLVER_PARAMS_TYPE__RESULT_GENERAL);
     childrenFeatures.add(LQNPackage.Literals.SOLVER_PARAMS_TYPE__PRAGMA);
   }
   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(
            LQNPackage.Literals.ACTIVITY_LOOP_LIST_TYPE__ACTIVITY,
            LQNFactory.eINSTANCE.createActivityLoopType()));
  }
  /**
   * 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(
            Component_diagramPackage.Literals.ARCHITECTURE__COMPONENT,
            Component_diagramFactory.eINSTANCE.createHardwareComponent()));

    newChildDescriptors.add(
        createChildParameter(
            Component_diagramPackage.Literals.ARCHITECTURE__COMPONENT,
            Component_diagramFactory.eINSTANCE.createSoftwareComponent()));

    newChildDescriptors.add(
        createChildParameter(
            Component_diagramPackage.Literals.ARCHITECTURE__COMPONENT,
            Component_diagramFactory.eINSTANCE.createElectronicDevice()));

    newChildDescriptors.add(
        createChildParameter(
            Component_diagramPackage.Literals.ARCHITECTURE__COMPONENT,
            Component_diagramFactory.eINSTANCE.createMechanicalDevice()));

    newChildDescriptors.add(
        createChildParameter(
            Component_diagramPackage.Literals.ARCHITECTURE__COMPONENT,
            Component_diagramFactory.eINSTANCE.createActuator()));

    newChildDescriptors.add(
        createChildParameter(
            Component_diagramPackage.Literals.ARCHITECTURE__COMPONENT,
            Component_diagramFactory.eINSTANCE.createSensor()));

    newChildDescriptors.add(
        createChildParameter(
            Component_diagramPackage.Literals.ARCHITECTURE__CONNECTORS,
            Component_diagramFactory.eINSTANCE.createConnector()));

    newChildDescriptors.add(
        createChildParameter(
            Component_diagramPackage.Literals.ARCHITECTURE__PORTS,
            Component_diagramFactory.eINSTANCE.createPortInstance()));

    newChildDescriptors.add(
        createChildParameter(
            Component_diagramPackage.Literals.ARCHITECTURE__INSTANCES,
            Component_diagramFactory.eINSTANCE.createComponentInstance()));

    newChildDescriptors.add(
        createChildParameter(
            Component_diagramPackage.Literals.ARCHITECTURE__PORT_TYPE,
            Component_diagramFactory.eINSTANCE.createPortType()));
  }
 /**
  * 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(Component_diagramPackage.Literals.ARCHITECTURE__COMPONENT);
     childrenFeatures.add(Component_diagramPackage.Literals.ARCHITECTURE__CONNECTORS);
     childrenFeatures.add(Component_diagramPackage.Literals.ARCHITECTURE__PORTS);
     childrenFeatures.add(Component_diagramPackage.Literals.ARCHITECTURE__INSTANCES);
     childrenFeatures.add(Component_diagramPackage.Literals.ARCHITECTURE__PORT_TYPE);
   }
   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);

      addCommentPropertyDescriptor(object);
      addConvValPropertyDescriptor(object);
      addItLimitPropertyDescriptor(object);
      addPrintIntPropertyDescriptor(object);
      addUnderrelaxCoeffPropertyDescriptor(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(
            LQNPackage.Literals.SOLVER_PARAMS_TYPE__RESULT_GENERAL,
            LQNFactory.eINSTANCE.createResultGeneralType()));

    newChildDescriptors.add(
        createChildParameter(
            LQNPackage.Literals.SOLVER_PARAMS_TYPE__PRAGMA,
            LQNFactory.eINSTANCE.createPragmaType()));
  }
  /**
   * 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(ActivityLoopListType.class)) {
      case LQNPackage.ACTIVITY_LOOP_LIST_TYPE__END:
        fireNotifyChanged(
            new ViewerNotification(notification, notification.getNotifier(), false, true));
        return;
      case LQNPackage.ACTIVITY_LOOP_LIST_TYPE__ACTIVITY:
        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(Architecture.class)) {
      case Component_diagramPackage.ARCHITECTURE__COMPONENT:
      case Component_diagramPackage.ARCHITECTURE__CONNECTORS:
      case Component_diagramPackage.ARCHITECTURE__PORTS:
      case Component_diagramPackage.ARCHITECTURE__INSTANCES:
      case Component_diagramPackage.ARCHITECTURE__PORT_TYPE:
        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(SolverParamsType.class)) {
      case LQNPackage.SOLVER_PARAMS_TYPE__COMMENT:
      case LQNPackage.SOLVER_PARAMS_TYPE__CONV_VAL:
      case LQNPackage.SOLVER_PARAMS_TYPE__IT_LIMIT:
      case LQNPackage.SOLVER_PARAMS_TYPE__PRINT_INT:
      case LQNPackage.SOLVER_PARAMS_TYPE__UNDERRELAX_COEFF:
        fireNotifyChanged(
            new ViewerNotification(notification, notification.getNotifier(), false, true));
        return;
      case LQNPackage.SOLVER_PARAMS_TYPE__RESULT_GENERAL:
      case LQNPackage.SOLVER_PARAMS_TYPE__PRAGMA:
        fireNotifyChanged(
            new ViewerNotification(notification, notification.getNotifier(), true, false));
        return;
    }
    super.notifyChanged(notification);
  }