Author: julien_viet
Date: 2010-11-10 16:22:25 -0500 (Wed, 10 Nov 2010)
New Revision: 5028
Modified:
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/QualifiedName.java
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestQualifiedName.java
Log:
make QualifiedName implement Comparable
Modified:
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/QualifiedName.java
===================================================================
---
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/QualifiedName.java 2010-11-10
21:20:38 UTC (rev 5027)
+++
portal/branches/navcontroller/component/web/controller/src/main/java/org/exoplatform/web/controller/QualifiedName.java 2010-11-10
21:22:25 UTC (rev 5028)
@@ -31,7 +31,7 @@
* @author <a href="mailto:julien.viet@exoplatform.com">Julien
Viet</a>
* @version $Revision$
*/
-public class QualifiedName
+public class QualifiedName implements Comparable<QualifiedName>
{
/**
@@ -179,6 +179,30 @@
return false;
}
+ public int compareTo(QualifiedName o)
+ {
+ if (o == null)
+ {
+ throw new NullPointerException("No null argument accepted");
+ }
+ else if (o == this)
+ {
+ return 0;
+ }
+ else
+ {
+ int qualifierComparison = qualifier.compareTo(o.qualifier);
+ if (qualifierComparison == 0)
+ {
+ return name.compareTo(o.name);
+ }
+ else
+ {
+ return qualifierComparison;
+ }
+ }
+ }
+
@Override
public String toString()
{
Modified:
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestQualifiedName.java
===================================================================
---
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestQualifiedName.java 2010-11-10
21:20:38 UTC (rev 5027)
+++
portal/branches/navcontroller/component/web/controller/src/test/java/org/exoplatform/web/controller/router/TestQualifiedName.java 2010-11-10
21:22:25 UTC (rev 5028)
@@ -29,7 +29,7 @@
public class TestQualifiedName extends TestCase
{
- public void testQualifiedName()
+ public void testSame()
{
QualifiedName qd1 = QualifiedName.create("a", "bc");
assertEquals("a", qd1.getQualifier());
@@ -52,8 +52,32 @@
assertEquals(qd1.hashCode(), qd2.hashCode());
}
- public void testEmptyQualifier()
+ public void testSameQualifierComparison()
{
+ QualifiedName qd1 = QualifiedName.create("a", "b");
+ QualifiedName qd2 = QualifiedName.create("a", "c");
+ assertEquals(Math.signum(qd1.compareTo(qd2)),
Math.signum("b".compareTo("c")));
+ assertEquals(Math.signum(qd2.compareTo(qd1)),
Math.signum("c".compareTo("b")));
+ }
+
+ public void testEmptyQualifierComparison()
+ {
+ QualifiedName qd1 = QualifiedName.create("a");
+ QualifiedName qd2 = QualifiedName.create("b");
+ assertEquals(Math.signum(qd1.compareTo(qd2)),
Math.signum("a".compareTo("b")));
+ assertEquals(Math.signum(qd2.compareTo(qd1)),
Math.signum("b".compareTo("a")));
+ }
+
+ public void testDifferentQualifierSameNameComparison()
+ {
+ QualifiedName qd1 = QualifiedName.create("a", "c");
+ QualifiedName qd2 = QualifiedName.create("b", "c");
+ assertEquals(Math.signum(qd1.compareTo(qd2)),
Math.signum("a".compareTo("b")));
+ assertEquals(Math.signum(qd2.compareTo(qd1)),
Math.signum("b".compareTo("a")));
+ }
+
+ public void testSameWithEmptyQualifier()
+ {
QualifiedName qd1 = QualifiedName.create("abc");
assertEquals("", qd1.getQualifier());
assertEquals("abc", qd1.getName());
Show replies by date