/**
   * Saves the managed method library.
   *
   * @throw <code>LibraryServiceException</code> if an error occurs while performing the operation
   */
  public void saveMethodLibrary() throws LibraryServiceException {
    if (debug) {
      DebugTrace.print(this, "saveMethodLibrary"); // $NON-NLS-1$
    }

    try {
      if (library != null) {
        skipEventProcessing = true;

        ILibraryResourceSet resourceSet = ((ILibraryResourceSet) editingDomain.getResourceSet());
        resourceSet.save(saveOptions);

        ((BasicCommandStack) editingDomain.getCommandStack()).saveIsDone();

        skipEventProcessing = false;

        firePropertyChange(library, PROP_DIRTY);
      }
    } catch (Exception e) {
      throw new LibraryServiceException(e);
    } finally {
      skipEventProcessing = false;
    }
  }