@Override public boolean isModified() throws WorkflowException, MappingException, RepositoryException, RemoteException { final HippoSession session = (HippoSession) context.getUserSession(); final Node node = document.getNode(session); return session.pendingChanges(node, "nt:base", true).hasNext(); }
public void renameAuthor(String newName) throws WorkflowException, RepositoryException { final Session session = getWorkflowContext().getUserSession(); final Node node = session.getNode("/files/myauthor"); AuthorDocument author = new AuthorDocument(node); getArticle().setAuthorId(author.authorId); }
public String createNamespace(String prefix, String uri) throws WorkflowException, MappingException, RepositoryException, RemoteException { Document root = new Document(getWorkflowContext().getUserSession().getRootNode()); RepositoryWorkflow repositoryWorkflow = (RepositoryWorkflow)getWorkflowContext().getWorkflow("internal", root); repositoryWorkflow.createNamespace(prefix, uri); FolderWorkflow folderWorkflow = (FolderWorkflow) getWorkflowContext().getWorkflow("internal"); Map<String, String> replacements = new TreeMap<>(); replacements.put("name", prefix); replacements.put("uri", uri); final String namespacePath = folderWorkflow.add("new-namespace", "namespace", replacements); final Node namespace = getWorkflowContext().getUserSession().getNode(namespacePath); for (Node node : new NodeIterable(namespace.getNodes())) { if (node.isNodeType("hipposysedit:templatetype")) { final EditmodelWorkflow editModelWorkflow = (EditmodelWorkflow) getWorkflowContext(). getWorkflow("editing", new Document(node)); editModelWorkflow.edit(); editModelWorkflow.save(); editModelWorkflow.commit(); } } return namespacePath; }
@Override public Object doExecute() throws RepositoryException { DocumentHandle dm = getDocumentHandle(); DocumentVariant draft = dm.getDocuments().get(HippoStdNodeType.DRAFT); DocumentVariant unpublished = dm.getDocuments().get(HippoStdNodeType.UNPUBLISHED); if (draft != null && unpublished != null) { Node draftNode = draft.getNode(getWorkflowContext().getInternalWorkflowSession()); if (getWorkflowContext().getUserIdentity().equals(draft.getHolder())) { // use user session bound draftNode which might contain outstanding changes draftNode = draft.getNode(getWorkflowContext().getUserSession()); } return !equals(draftNode, unpublished.getNode(getWorkflowContext().getInternalWorkflowSession())); } return null; }