X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=runtime%2Forg.argeo.slc.support.simple%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fcore%2Ftest%2Ftree%2FTreeTestResult.java;h=7a90133d6418a01434be38fe3ef7a3cafcd128d2;hb=8536d871354d83c032dfd85f763c7fdf965c02b7;hp=9ab13e9dc24e8282866e8d826d87bfdf52e481d7;hpb=d47f40b5d798eb0f3814ddd166749f13ca96a258;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java index 9ab13e9dc..7a90133d6 100644 --- a/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java +++ b/runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/core/test/tree/TreeTestResult.java @@ -1,5 +1,6 @@ package org.argeo.slc.core.test.tree; +import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -29,7 +30,9 @@ import org.argeo.slc.test.TestRunAware; * structure. */ public class TreeTestResult implements TestResult, StructureAware, - Comparable, AttachmentsEnabled { + Comparable, AttachmentsEnabled, Serializable { + private static final long serialVersionUID = 1L; + private Log log = LogFactory.getLog(TreeTestResult.class); private List> listeners = new Vector>(); @@ -198,16 +201,44 @@ public class TreeTestResult implements TestResult, StructureAware, public int compareTo(TreeTestResult ttr2) { TreeTestResult ttr1 = this; if (ttr1.getCloseDate() != null && ttr2.getCloseDate() != null) { - return -ttr1.getCloseDate().compareTo(ttr2.getCloseDate()); + if (ttr1.getCloseDate().equals(ttr2.getCloseDate())) + return compareUuid(ttr1, ttr2); + else + return -ttr1.getCloseDate().compareTo(ttr2.getCloseDate()); } else if (ttr1.getCloseDate() != null && ttr2.getCloseDate() == null) { return 1; } else if (ttr1.getCloseDate() == null && ttr2.getCloseDate() != null) { return -1; } else { + return compareUuid(ttr1, ttr2); + } + } + + protected int compareUuid(TestResult ttr1, TestResult ttr2) { + if (ttr1.getUuid() == null || ttr2.getUuid() == null) + throw new SlcException( + "Cannot compare tree test result with null uuid"); + else { + if (ttr1.getUuid().equals(ttr2.getUuid())) + return 0; return ttr1.getUuid().compareTo(ttr2.getUuid()); } } + public boolean equals(Object obj) { + if (obj instanceof TestResult) + return compareUuid(this, ((TestResult) obj)) == 0; + else + return false; + } + + public int hashCode() { + if (uuid != null) + return uuid.hashCode(); + else + return super.hashCode(); + } + public Map getAttributes() { return attributes; }