package nota.oxygen.common; import ro.sync.ecss.extensions.api.ArgumentDescriptor; import ro.sync.ecss.extensions.api.ArgumentsMap; import ro.sync.ecss.extensions.api.AuthorOperationException; import ro.sync.ecss.extensions.api.node.AuthorElement; public class RenameParentElementOperation extends BaseAuthorOperation { private static String ARG_NEW_NAME = "new name"; private String newName; @Override public ArgumentDescriptor[] getArguments() { return new ArgumentDescriptor[] { new ArgumentDescriptor(ARG_NEW_NAME, ArgumentDescriptor.TYPE_STRING, "New name for the parent") }; } @Override protected void parseArguments(ArgumentsMap args) throws IllegalArgumentException { newName = (String)args.getArgumentValue(ARG_NEW_NAME); } @Override public String getDescription() { return "Renames the parent element"; } @Override protected void doOperation() throws AuthorOperationException { try { AuthorElement elementToRename = getCurrentElement(); getAuthorAccess().getDocumentController().renameElement(elementToRename, newName); } catch (Exception e) { throw new AuthorOperationException( String.format("An unexpected %s occured while renaming element: %s", e.getClass().getName(), e.getMessage()), e); } } }