From 818ee786140fadf992851d38aefdc23c44aa319e Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Fri, 05 Jun 2009 12:30:01 +0000
Subject: [PATCH] Improve the comparison code of the class BaseDNDescriptor.

---
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/BaseDNDescriptor.java |   56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 55 insertions(+), 1 deletions(-)

diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/BaseDNDescriptor.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/BaseDNDescriptor.java
index 31d64a7..1e9ada0 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/BaseDNDescriptor.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/BaseDNDescriptor.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Copyright 2008 Sun Microsystems, Inc.
+ *      Copyright 2008-2009 Sun Microsystems, Inc.
  */
 
 package org.opends.guitools.controlpanel.datamodel;
@@ -141,6 +141,28 @@
     {
       BaseDNDescriptor desc = (BaseDNDescriptor)o;
       returnValue = desc.getDn().compareTo(getDn());
+      if (returnValue == 0)
+      {
+        returnValue = getType().compareTo(desc.getType());
+      }
+      if (returnValue == 0)
+      {
+        getBackend().getBackendID().compareTo(
+            desc.getBackend().getBackendID());
+      }
+      if (returnValue == 0)
+      {
+        returnValue = compare(getEntries(), desc.getEntries());
+      }
+      if (returnValue == 0)
+      {
+        returnValue = compare(getAgeOfOldestMissingChange(),
+            desc.getAgeOfOldestMissingChange());
+      }
+      if (returnValue == 0)
+      {
+        returnValue = compare(getMissingChanges(), desc.getMissingChanges());
+      }
     }
     return returnValue;
   }
@@ -281,4 +303,36 @@
           getDn() +
         getBackend().getBackendID() + getMissingChanges()).hashCode();
   }
+
+  private int compare(int i1, int i2)
+  {
+    if (i1 == i2)
+    {
+      return 0;
+    }
+    else if (i1 > i2)
+    {
+      return 1;
+    }
+    else
+    {
+      return -1;
+    }
+  }
+
+  private int compare(long i1, long i2)
+  {
+    if (i1 == i2)
+    {
+      return 0;
+    }
+    else if (i1 > i2)
+    {
+      return 1;
+    }
+    else
+    {
+      return -1;
+    }
+  }
 }

--
Gitblit v1.10.0