@Override
  public void undo() {
    table.store(foreignKey);
    context.store(table);

    diagmram.store(connection);
    context.getFacet(DiagramFacet.class).store(diagmram);
  }
  @Override
  public void execute() {
    connection.breachEncapsulationOfBendpoints().remove(bendpointIndex);

    DiagramFacet facet = context.getFacet(DiagramFacet.class);
    SimpleJmDiagram diagram = (SimpleJmDiagram) facet.getDiagrams().get(diagramIndex);
    diagram.store(connection);
    facet.store(diagram);
  }
  @Override
  public void execute() {
    foreignKey = (SimpleJmForeignKeyConstraint) context.resolve(connection.getCoreModelRef());

    DiagramFacet facet = context.getFacet(DiagramFacet.class);
    diagmram = (SimpleJmDiagram) facet.getDiagrams().get(TODO.DIAGRAM_INDEX);
    diagmram.deleteConnection(connection.toReference());
    facet.store(diagmram);

    table = (SimpleJmTable) foreignKey.findDeclaringTable(context.getTables());
    table.deleteConstraint(foreignKey.toReference());
    context.store(table);
  }