/**
   * {@inheritDoc}
   *
   * @see
   *     org.eclipse.sirius.diagram.tools.internal.actions.repair.AbstractDiagramElementState#restoreElementState(org.eclipse.sirius.diagram.DDiagramElement)
   */
  @Override
  public void restoreElementState(D element) {
    super.restoreElementState(element);

    if (!arrangeConstraints.isEmpty()) {
      element.getArrangeConstraints().addAll(arrangeConstraints);
    }
  }
  /**
   * {@inheritDoc}
   *
   * @see
   *     org.eclipse.sirius.diagram.tools.internal.actions.repair.AbstractDiagramElementState#storeElementState(EObject,
   *     DiagramElementMapping, org.eclipse.sirius.diagram.DDiagramElement)
   */
  @Override
  public void storeElementState(EObject target, DiagramElementMapping mapping, D element) {
    super.storeElementState(target, mapping, element);

    Iterable<ArrangeConstraint> existingArrangeConstraints =
        Iterables.filter(element.getArrangeConstraints(), ArrangeConstraint.class);
    if (!Iterables.isEmpty(existingArrangeConstraints)) {
      Iterables.addAll(arrangeConstraints, existingArrangeConstraints);
    }
  }