[Yanel-commits] rev 45482 - public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet

michi at wyona.com michi at wyona.com
Fri Nov 13 15:45:32 CET 2009


Author: michi
Date: 2009-11-13 15:45:31 +0100 (Fri, 13 Nov 2009)
New Revision: 45482

Modified:
   public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java
Log:
meta info re revisions and workflow moved into separate method

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-11-13 14:30:46 UTC (rev 45481)
+++ public/yanel/trunk/src/webapp/src/java/org/wyona/yanel/servlet/YanelServlet.java	2009-11-13 14:45:31 UTC (rev 45482)
@@ -239,7 +239,7 @@
             response.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED);
         }
       } catch (ServletException e) {
-          log.error(e.getMessage(), e);
+          log.error(e, e);
           throw new ServletException(e.getMessage(), e);
       } catch (IOException e) {
           log.error(e.getMessage(), e);
@@ -484,8 +484,6 @@
                 }
 
 
-
-
                 if (ResourceAttributeHelper.hasAttributeImplemented(res, "Modifiable", "2")) {
                     lastModified = ((ModifiableV2) res).getLastModified();
                     Element lastModifiedElement = (Element) resourceElement.appendChild(doc.createElement("last-modified"));
@@ -494,61 +492,8 @@
                     Element noLastModifiedElement = (Element) resourceElement.appendChild(doc.createElement("no-last-modified"));
                 }
 
+                appendRevisionsAndWorkflow(doc, resourceElement, res, request);
 
-                // 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[] revisionsInfo = ((VersionableV2)res).getRevisions();
-                            Element revisionsElement = (Element) resourceElement.appendChild(doc.createElement("revisions"));
-
-                            WorkflowableV1 workflowableResource = null;
-                            Workflow workflow = null;
-                            String liveRevisionName = null;
-                            if (ResourceAttributeHelper.hasAttributeImplemented(res, "Workflowable", "1")) {
-                                workflowableResource = (WorkflowableV1)res;
-                                workflow = WorkflowHelper.getWorkflow(res);
-                                liveRevisionName = WorkflowHelper.getLiveRevision(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(revisionsInfo[i].getName()));
-                                    Element revisionDateElement = (Element) revisionElement.appendChild(doc.createElement("date"));
-                                    revisionDateElement.appendChild(doc.createTextNode(DateUtil.format(revisionsInfo[i].getDate())));
-                                    Element revisionUserElement = (Element) revisionElement.appendChild(doc.createElement("user"));
-                                    revisionUserElement.appendChild(doc.createTextNode(revisionsInfo[i].getUser()));
-                                    Element revisionCommentElement = (Element) revisionElement.appendChild(doc.createElement("comment"));
-                                    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();
-                                        }
-                                        if (liveRevisionName != null && revisionsInfo[i].getName().equals(liveRevisionName)) {
-                                            revisionWorkflowElement.appendChild(doc.createTextNode(wfState + " (LIVE)"));
-                                        } else {
-                                            revisionWorkflowElement.appendChild(doc.createTextNode(wfState));
-                                        }
-                                    }
-                                }
-                            } else {
-                                Element noRevisionsYetElement = (Element) resourceElement.appendChild(doc.createElement("no-revisions-yet"));
-                            }
-                        }
-                    } 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"));
@@ -2374,4 +2319,58 @@
             throw new Exception("The received data is either not well-formed or some other exception occured: " + e.getMessage());
         }
     }
+
+    /**
+     *
+     */
+    private void appendRevisionsAndWorkflow(Document doc, Element resourceElement, Resource res, HttpServletRequest request) throws Exception {
+                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[] revisionsInfo = ((VersionableV2)res).getRevisions();
+                            Element revisionsElement = (Element) resourceElement.appendChild(doc.createElement("revisions"));
+
+                            WorkflowableV1 workflowableResource = null;
+                            Workflow workflow = null;
+                            String liveRevisionName = null;
+                            if (ResourceAttributeHelper.hasAttributeImplemented(res, "Workflowable", "1")) {
+                                workflowableResource = (WorkflowableV1)res;
+                                workflow = WorkflowHelper.getWorkflow(res);
+                                liveRevisionName = WorkflowHelper.getLiveRevision(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(revisionsInfo[i].getName()));
+                                    Element revisionDateElement = (Element) revisionElement.appendChild(doc.createElement("date"));
+                                    revisionDateElement.appendChild(doc.createTextNode(DateUtil.format(revisionsInfo[i].getDate())));
+                                    Element revisionUserElement = (Element) revisionElement.appendChild(doc.createElement("user"));
+                                    revisionUserElement.appendChild(doc.createTextNode(revisionsInfo[i].getUser()));
+                                    Element revisionCommentElement = (Element) revisionElement.appendChild(doc.createElement("comment"));
+                                    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();
+                                        }
+                                        if (liveRevisionName != null && revisionsInfo[i].getName().equals(liveRevisionName)) {
+                                            revisionWorkflowElement.appendChild(doc.createTextNode(wfState + " (LIVE)"));
+                                        } else {
+                                            revisionWorkflowElement.appendChild(doc.createTextNode(wfState));
+                                        }
+                                    }
+                                }
+                            } else {
+                                Element noRevisionsYetElement = (Element) resourceElement.appendChild(doc.createElement("no-revisions-yet"));
+                            }
+                        }
+                    } else {
+                        Element notVersionableElement = (Element) resourceElement.appendChild(doc.createElement("not-versionable"));
+                    }
+    }
 }



More information about the Yanel-commits mailing list