[Yanel-commits] rev 42875 -
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet
michi at wyona.com
michi at wyona.com
Mon May 18 09:43:29 CEST 2009
Author: michi
Date: 2009-05-18 09:43:29 +0200 (Mon, 18 May 2009)
New Revision: 42875
Modified:
public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
also output workflow info if resource actually has a workflow
Modified: public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
===================================================================
--- public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java 2009-05-18 07:31:40 UTC (rev 42874)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java 2009-05-18 07:43:29 UTC (rev 42875)
@@ -53,7 +53,9 @@
import org.wyona.yanel.core.transformation.I18nTransformer2;
import org.wyona.yanel.core.util.DateUtil;
import org.wyona.yanel.core.util.HttpServletRequestHelper;
+import org.wyona.yanel.core.workflow.Workflow;
import org.wyona.yanel.core.workflow.WorkflowException;
+import org.wyona.yanel.core.workflow.WorkflowHelper;
import org.wyona.yanel.core.map.Map;
import org.wyona.yanel.core.map.Realm;
import org.wyona.yanel.core.util.ResourceAttributeHelper;
@@ -490,24 +492,44 @@
} else {
Element noLastModifiedElement = (Element) resourceElement.appendChild(doc.createElement("no-last-modified"));
}
+
+
+ // START Versionable (and Workflowable)
if (ResourceAttributeHelper.hasAttributeImplemented(res, "Versionable", "2")) {
// retrieve the revisions, but only in the meta usecase (for performance reasons):
if (request.getParameter(RESOURCE_META_ID_PARAM_NAME) != null) {
- RevisionInformation[] revisions = ((VersionableV2)res).getRevisions();
+ RevisionInformation[] revisionsInfo = ((VersionableV2)res).getRevisions();
Element revisionsElement = (Element) resourceElement.appendChild(doc.createElement("revisions"));
- if (revisions != null && revisions.length > 0) {
- for (int i = revisions.length - 1; i >= 0; i--) {
+
+ WorkflowableV1 workflowableResource = null;
+ Workflow workflow = null;
+ if (ResourceAttributeHelper.hasAttributeImplemented(res, "Workflowable", "1")) {
+ workflowableResource = (WorkflowableV1)res;
+ workflow = WorkflowHelper.getWorkflow(res);
+ }
+
+ if (revisionsInfo != null && revisionsInfo.length > 0) {
+ for (int i = revisionsInfo.length - 1; i >= 0; i--) {
Element revisionElement = (Element) revisionsElement.appendChild(doc.createElement("revision"));
Element revisionNameElement = (Element) revisionElement.appendChild(doc.createElement("name"));
- revisionNameElement.appendChild(doc.createTextNode(revisions[i].getName()));
+ revisionNameElement.appendChild(doc.createTextNode(revisionsInfo[i].getName()));
Element revisionDateElement = (Element) revisionElement.appendChild(doc.createElement("date"));
- revisionDateElement.appendChild(doc.createTextNode(DateUtil.format(revisions[i].getDate())));
+ revisionDateElement.appendChild(doc.createTextNode(DateUtil.format(revisionsInfo[i].getDate())));
Element revisionUserElement = (Element) revisionElement.appendChild(doc.createElement("user"));
- revisionUserElement.appendChild(doc.createTextNode(revisions[i].getUser()));
+ revisionUserElement.appendChild(doc.createTextNode(revisionsInfo[i].getUser()));
Element revisionCommentElement = (Element) revisionElement.appendChild(doc.createElement("comment"));
- revisionCommentElement.appendChild(doc.createTextNode(revisions[i].getComment()));
+ revisionCommentElement.appendChild(doc.createTextNode(revisionsInfo[i].getComment()));
+
+ // Add workflow info
+ if (workflowableResource != null && workflow != null) {
+ Element revisionWorkflowElement = (Element) revisionElement.appendChild(doc.createElement("workflow-state"));
+ String wfState = workflowableResource.getWorkflowState(revisionsInfo[i].getName());
+ if (wfState == null) {
+ wfState = workflow.getInitialState();
+ }
+ revisionWorkflowElement.appendChild(doc.createTextNode(wfState));
+ }
}
-
} else {
Element noRevisionsYetElement = (Element) resourceElement.appendChild(doc.createElement("no-revisions-yet"));
}
@@ -515,7 +537,9 @@
} else {
Element notVersionableElement = (Element) resourceElement.appendChild(doc.createElement("not-versionable"));
}
-
+ // END Versionable (and Workflowable)
+
+
if (ResourceAttributeHelper.hasAttributeImplemented(res, "Translatable", "1")) {
TranslatableV1 translatable = ((TranslatableV1) res);
Element translationsElement = (Element) resourceElement.appendChild(doc.createElement("translations"));
More information about the Yanel-commits
mailing list