protected ModelContents createAddCommandsForRelatedObjects() {
    if (this.additionalObjs.size() != 0) {
      final ContainerEditingDomain containerEdDomain = (ContainerEditingDomain) this.domain;

      // final ModelContents modelContents = containerEdDomain.getClipboardModelContents(true);
      final ModelContents modelContents = containerEdDomain.createClipboardModelContents();

      // Make sure other commands don't set the actual clipboard contents, otherwise the
      // container editing domain will clear out the clipboard model contents.
      doCreateAdditionalCommands(modelContents);
      containerEdDomain.setClipboardMapping(new SelfKnowledgableCopyHelper());
      return modelContents;
    }
    return null;
  }
  @Override
  public void execute() {
    // clear out all existing objects (including the ModelContents if one) ...
    this.domain.setClipboard(null);

    // execute the remove commands for the deleted/referenced objects
    super.execute();

    // set the clipboard model contents
    if (this.clipboardModelContents != null && this.domain instanceof ContainerEditingDomain) {
      final ContainerEditingDomain containerEdDomain = (ContainerEditingDomain) this.domain;
      final ModelContents existingContents = containerEdDomain.getClipboardModelContents(false);
      if (existingContents == null) {
        containerEdDomain.setClipboardModelContents(this.clipboardModelContents);
      } else if (existingContents != this.clipboardModelContents) {
        final String msg =
            ModelerCore.Util.getString(
                "CutWithRelatedToClipboardCommand.Unexpected_existing_model_contents_on_clipboard"); //$NON-NLS-1$
        ModelerCore.Util.log(IStatus.WARNING, msg);
        containerEdDomain.setClipboardModelContents(this.clipboardModelContents);
      }
    }
  }