[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