]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java
Improve logging
[gpl/argeo-slc.git] / org.argeo.slc.core / src / main / java / org / argeo / slc / core / test / tree / TreeTestResult.java
index a012c4451b065a3e26926f710d4712cd5dc04068..781c6eee2a1cc29124f4cf4eee44d82d29133633 100644 (file)
@@ -2,13 +2,13 @@ package org.argeo.slc.core.test.tree;
 \r
 import java.util.Date;\r
 import java.util.List;\r
+import java.util.Map;\r
 import java.util.SortedMap;\r
 import java.util.TreeMap;\r
 import java.util.Vector;\r
 \r
 import org.apache.commons.logging.Log;\r
 import org.apache.commons.logging.LogFactory;\r
-\r
 import org.argeo.slc.core.SlcException;\r
 import org.argeo.slc.core.structure.StructureAware;\r
 import org.argeo.slc.core.structure.StructureElement;\r
@@ -24,7 +24,8 @@ import org.argeo.slc.core.test.TestRunAware;
  * Complex implementation of a test result compatible with a tree based\r
  * structure.\r
  */\r
-public class TreeTestResult implements TestResult, StructureAware<TreeSPath> {\r
+public class TreeTestResult implements TestResult, StructureAware<TreeSPath>,\r
+               Comparable<TreeTestResult> {\r
        private Log log = LogFactory.getLog(TreeTestResult.class);\r
 \r
        private List<TestResultListener<TreeTestResult>> listeners = new Vector<TestResultListener<TreeTestResult>>();\r
@@ -41,6 +42,8 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath> {
        private SortedMap<TreeSPath, PartSubList> resultParts = new TreeMap<TreeSPath, PartSubList>();\r
        private SortedMap<TreeSPath, StructureElement> elements = new TreeMap<TreeSPath, StructureElement>();\r
 \r
+       private Map<String, String> attributes = new TreeMap<String, String>();\r
+\r
        /** Sets the list of listeners. */\r
        public void setListeners(List<TestResultListener<TreeTestResult>> listeners) {\r
                this.listeners = listeners;\r
@@ -86,7 +89,7 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath> {
                        }\r
                }\r
 \r
-               currentPath = (TreeSPath) path;\r
+               currentPath = path;\r
        }\r
 \r
        /** Gets the current path. */\r
@@ -107,7 +110,7 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath> {
        public void close() {\r
                if (isClosed) {\r
                        throw new SlcException("Test Result #" + getUuid()\r
-                                       + " alredy closed.");\r
+                                       + " already closed.");\r
                }\r
                closeDate = new Date();\r
 \r
@@ -119,7 +122,8 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath> {
                }\r
                isClosed = true;\r
 \r
-               log.info("Test Result #" + getUuid() + " closed.");\r
+               if (log.isTraceEnabled())\r
+                       log.trace("Test Result " + getUuid() + " closed.");\r
        }\r
 \r
        public Date getCloseDate() {\r
@@ -153,6 +157,11 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath> {
 \r
        public SortedMap<TreeSPath, StructureElement> getRelatedElements(\r
                        TreeSPath path) {\r
+               if (path == null)\r
+                       throw new SlcException(\r
+                                       "Cannot retrieve element for a null path in result #"\r
+                                                       + uuid);\r
+\r
                SortedMap<TreeSPath, StructureElement> relatedElements = new TreeMap<TreeSPath, StructureElement>();\r
                List<TreeSPath> hierarchy = path.getHierarchyAsList();\r
                for (TreeSPath currPath : elements.keySet()) {\r
@@ -167,4 +176,24 @@ public class TreeTestResult implements TestResult, StructureAware<TreeSPath> {
                return currentTestRun;\r
        }\r
 \r
+       public int compareTo(TreeTestResult ttr2) {\r
+               TreeTestResult ttr1 = this;\r
+               if (ttr1.getCloseDate() != null && ttr2.getCloseDate() != null) {\r
+                       return -ttr1.getCloseDate().compareTo(ttr2.getCloseDate());\r
+               } else if (ttr1.getCloseDate() != null && ttr2.getCloseDate() == null) {\r
+                       return 1;\r
+               } else if (ttr1.getCloseDate() == null && ttr2.getCloseDate() != null) {\r
+                       return -1;\r
+               } else {\r
+                       return ttr1.getUuid().compareTo(ttr2.getUuid());\r
+               }\r
+       }\r
+\r
+       public Map<String, String> getAttributes() {\r
+               return attributes;\r
+       }\r
+\r
+       public void setAttributes(Map<String, String> attributes) {\r
+               this.attributes = attributes;\r
+       }\r
 }\r