Introduce close tree test result request
authorMathieu Baudier <mbaudier@argeo.org>
Sun, 4 May 2008 16:20:38 +0000 (16:20 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sun, 4 May 2008 16:20:38 +0000 (16:20 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1103 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc.server/src/main/java/org/argeo/slc/web/mvc/result/ResultListController.java
org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/CloseTreeTestResultRequestEp.java [new file with mode: 0644]

index 16de958406f2ad747e873289caba7bc4ad5dcbc9..a83653105cccb686cbafa1ee7bb1ebcf691ab3d3 100644 (file)
@@ -1,6 +1,8 @@
 package org.argeo.slc.web.mvc.result;\r
 \r
-import java.util.List;\r
+import java.util.Comparator;\r
+import java.util.SortedSet;\r
+import java.util.TreeSet;\r
 \r
 import javax.servlet.http.HttpServletRequest;\r
 import javax.servlet.http.HttpServletResponse;\r
@@ -24,7 +26,25 @@ public class ResultListController extends ParameterizableViewController {
 \r
                ModelAndView modelAndView = new ModelAndView();\r
 \r
-               List<TreeTestResult> results = testResultDao.listTestResults();\r
+               Comparator<TreeTestResult> comparator = new Comparator<TreeTestResult>() {\r
+\r
+                       public int compare(TreeTestResult arg0, TreeTestResult arg1) {\r
+                               if (arg0.getCloseDate() != null && arg1.getCloseDate() != null) {\r
+                                       return -arg0.getCloseDate().compareTo(arg1.getCloseDate());\r
+                               } else if (arg0.getCloseDate() != null\r
+                                               && arg1.getCloseDate() == null) {\r
+                                       return 1;\r
+                               } else if (arg0.getCloseDate() == null\r
+                                               && arg1.getCloseDate() != null) {\r
+                                       return -1;\r
+                               } else {\r
+                                       return arg0.getUuid().compareTo(arg1.getUuid());\r
+                               }\r
+                       }\r
+               };\r
+               SortedSet<TreeTestResult> results = new TreeSet<TreeTestResult>(\r
+                               comparator);\r
+               results.addAll(testResultDao.listTestResults());\r
                modelAndView.addObject("results", results);\r
                modelAndView.setViewName(getViewName());\r
                return modelAndView;\r
diff --git a/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/CloseTreeTestResultRequestEp.java b/org.argeo.slc.server/src/main/java/org/argeo/slc/ws/test/tree/CloseTreeTestResultRequestEp.java
new file mode 100644 (file)
index 0000000..bf9bb4e
--- /dev/null
@@ -0,0 +1,33 @@
+package org.argeo.slc.ws.test.tree;
+
+import org.springframework.ws.server.endpoint.AbstractMarshallingPayloadEndpoint;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.argeo.slc.dao.test.tree.TreeTestResultDao;
+import org.argeo.slc.msg.test.tree.CloseTreeTestResultRequest;
+
+public class CloseTreeTestResultRequestEp extends
+               AbstractMarshallingPayloadEndpoint {
+
+       private Log log = LogFactory.getLog(getClass());
+
+       private final TreeTestResultDao treeTestResultDao;
+
+       public CloseTreeTestResultRequestEp(TreeTestResultDao treeTestResultDao) {
+               this.treeTestResultDao = treeTestResultDao;
+       }
+
+       @Override
+       protected Object invokeInternal(Object requestObject) throws Exception {
+               CloseTreeTestResultRequest msg = (CloseTreeTestResultRequest) requestObject;
+               treeTestResultDao.close(msg.getResultUuid(), msg.getCloseDate());
+
+               if (log.isDebugEnabled())
+                       log.debug("Close result with id " + msg.getResultUuid()
+                                       + " at date " + msg.getCloseDate());
+               return null;
+       }
+
+}