[Yanel-commits] rev 24493 - public/yanel/trunk/src/core/java/org/wyona/yanel/core/workflow

josias at wyona.com josias at wyona.com
Tue May 15 13:42:33 CEST 2007


Author: josias
Date: 2007-05-15 13:42:32 +0200 (Tue, 15 May 2007)
New Revision: 24493

Modified:
   public/yanel/trunk/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelper.java
Log:
don't throw an exception if no workflow schema is defined

Modified: public/yanel/trunk/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelper.java
===================================================================
--- public/yanel/trunk/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelper.java	2007-05-15 10:51:20 UTC (rev 24492)
+++ public/yanel/trunk/src/core/java/org/wyona/yanel/core/workflow/WorkflowHelper.java	2007-05-15 11:42:32 UTC (rev 24493)
@@ -157,47 +157,50 @@
                 sb.append("<versions>");
                 for (int i = revisions.length - 1; i >= 0; i--) {
                     
-                    Workflow workflow = getWorkflow(resource);
-                    String state = workflowable.getWorkflowState(revisions[i].getName());
-                    if (state == null) {
-                        state = workflow.getInitialState();
-                    }
-                    Date workflowDate = workflowable.getWorkflowDate(revisions[i].getName());
-                    String date = "";
-                    if (workflowDate != null) {
-                        date = DateUtil.format(workflowDate);
-                    }
-                    
-                    Transition[] transitions = workflow.getLeavingTransitions(state);
-
                     sb.append("<version url=\"?yanel.resource.revision=" + revisions[i].getName() + "\">");
                     sb.append("<comment>" + revisions[i].getComment() + "</comment>");
                     sb.append("<date>" + revisions[i].getDate() + "</date>");
                     sb.append("<user>" + revisions[i].getUser() + "</user>");
                     sb.append("<revision>" + revisions[i].getName() + "</revision>");
+                    
+                    Workflow workflow = getWorkflow(resource);
+                    if (workflow != null) {
+                        // TODO: handle workflow==null !!!
+                        String state = workflowable.getWorkflowState(revisions[i].getName());
+                        if (state == null) {
+                            state = workflow.getInitialState();
+                        }
+                        Date workflowDate = workflowable.getWorkflowDate(revisions[i].getName());
+                        String date = "";
+                        if (workflowDate != null) {
+                            date = DateUtil.format(workflowDate);
+                        }
+                        
+                        Transition[] transitions = workflow.getLeavingTransitions(state);
     
-                    sb.append("<workflow>");
-
-                    if (revisions[i].getName().equals(liveRevision)) {
-                        state += "-LIVE"; // TODO: this is a hack
-                    }
-                    sb.append("<state date=\"" + date + "\">" + state + "</state>");
-                    
-                    sb.append("<transitions>");
-transitions:        for (int j = 0; j < transitions.length; j++) {
-                        Condition[] conditions = transitions[j].getConditions();
-                        for (int k = 0; k < conditions.length; k++) {
-                            if (!conditions[k].isComplied(workflowable, workflow, revisions[i].getName())) {
-                                continue transitions; // jump to next transition
+                        sb.append("<workflow>");
+    
+                        if (revisions[i].getName().equals(liveRevision)) {
+                            state += "-LIVE"; // TODO: this is a hack
+                        }
+                        sb.append("<state date=\"" + date + "\">" + state + "</state>");
+                        
+                        sb.append("<transitions>");
+transitions:            for (int j = 0; j < transitions.length; j++) {
+                            Condition[] conditions = transitions[j].getConditions();
+                            for (int k = 0; k < conditions.length; k++) {
+                                if (!conditions[k].isComplied(workflowable, workflow, revisions[i].getName())) {
+                                    continue transitions; // jump to next transition
+                                }
                             }
+                            sb.append("<transition id=\""+transitions[j].getID()+"\" to=\""+transitions[j].getDestinationState()+"\" url=\"?yanel.resource.workflow.transition="+transitions[j].getID()+"&amp;yanel.resource.revision=" + revisions[i].getName() + "\" method=\"POST\">");
+                            sb.append("<description>"+transitions[j].getID()+"</description>");
+                            sb.append("</transition>");
                         }
-                        sb.append("<transition id=\""+transitions[j].getID()+"\" to=\""+transitions[j].getDestinationState()+"\" url=\"?yanel.resource.workflow.transition="+transitions[j].getID()+"&amp;yanel.resource.revision=" + revisions[i].getName() + "\" method=\"POST\">");
-                        sb.append("<description>"+transitions[j].getID()+"</description>");
-                        sb.append("</transition>");
+                        sb.append("</transitions>");
+                        sb.append("<history/>");
+                        sb.append("</workflow>");
                     }
-                    sb.append("</transitions>");
-                    sb.append("<history/>");
-                    sb.append("</workflow>");
                     
                     sb.append("</version>");
                 }




More information about the Yanel-commits mailing list