scolebourne 2004/12/19 14:35:39
Modified: lang/src/test/org/apache/commons/lang ClassUtilsTest.java
lang/src/java/org/apache/commons/lang ClassUtils.java
Log:
Remove Class and Package comparators - too specific set of use cases
Revision Changes Path
1.14 +8 -97
jakarta-commons/lang/src/test/org/apache/commons/lang/ClassUtilsTest.java
Index: ClassUtilsTest.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/lang/src/test/org/apache/commons/lang/ClassUtilsTest.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- ClassUtilsTest.java 30 Jun 2004 18:33:58 -0000 1.13
+++ ClassUtilsTest.java 19 Dec 2004 22:35:38 -0000 1.14
@@ -19,7 +19,6 @@
import java.lang.reflect.Modifier;
import java.net.URLClassLoader;
import java.util.ArrayList;
-import java.util.Comparator;
import java.util.List;
import java.util.Map;
@@ -389,102 +388,14 @@
// This used to return the exact same array, but no longer does.
assertNotSame("unmodified", noPrimitives,
ClassUtils.primitivesToWrappers(noPrimitives));
}
-
- public void testClassComparator() {
- Comparator comparator = ClassUtils.CLASS_NAME_COMPARATOR;
- Class smallClass = java.lang.Boolean.class;
- Class bigClass = java.util.Set.class;
-
- assertTrue(comparator.compare(smallClass, smallClass) == 0);
- assertTrue(comparator.compare(bigClass, smallClass) > 0);
- assertTrue(comparator.compare(smallClass, bigClass) < 0);
-
- assertTrue(comparator.compare(smallClass, null) > 0);
- assertTrue(comparator.compare(null, smallClass) < 0);
-
- assertComparatorContract(comparator, smallClass, smallClass);
- assertComparatorContract(comparator, bigClass, bigClass);
- assertComparatorContract(comparator, smallClass, bigClass);
- }
-
- public void testPackageComparator() {
- Comparator comparator = ClassUtils.PACKAGE_NAME_COMPARATOR;
- Package smallPackage = java.lang.Boolean.class.getPackage();
- Package bigPackage = java.util.Set.class.getPackage();
-
- assertTrue(comparator.compare(smallPackage, smallPackage) == 0);
- assertTrue(comparator.compare(bigPackage, smallPackage) > 0);
- assertTrue(comparator.compare(smallPackage, bigPackage) < 0);
-
- assertTrue(comparator.compare(smallPackage, null) > 0);
- assertTrue(comparator.compare(null, smallPackage) < 0);
-
- assertComparatorContract(comparator, smallPackage, smallPackage);
- assertComparatorContract(comparator, bigPackage, bigPackage);
- assertComparatorContract(comparator, smallPackage, bigPackage);
- }
-
- public void testPackageNameComparatorWithDifferentClassLoaders() throws
SecurityException, IllegalArgumentException, ClassNotFoundException {
- Comparator comparator = ClassUtils.PACKAGE_NAME_COMPARATOR;
- Package p1 = java.lang.Boolean.class.getPackage();
- Package p2 = java.util.Set.class.getPackage();
- ClassLoader classLoader = newSystemClassLoader();
- Object p1Other = this.getPackage(classLoader, "java.lang.Boolean");
- Object p2Other = this.getPackage(classLoader, "java.util.Set");
- // all here
- assertComparatorContract(comparator, p1, p1);
- assertComparatorContract(comparator, p2, p2);
- assertComparatorContract(comparator, p1, p2);
- // all other
- assertComparatorContract(comparator, p1Other, p1Other);
- assertComparatorContract(comparator, p2Other, p2Other);
- assertComparatorContract(comparator, p1Other, p2Other);
- // p1 and p1Other
- assertComparatorContract(comparator, p1, p1Other);
- assertComparatorContract(comparator, p2, p2);
- assertComparatorContract(comparator, p1Other, p2);
- // p2 and p2Other
- assertComparatorContract(comparator, p1, p1);
- assertComparatorContract(comparator, p2, p2Other);
- assertComparatorContract(comparator, p1, p2Other);
- }
-
- Object getPackage(ClassLoader classLoader, String className) throws
ClassNotFoundException, SecurityException,
- IllegalArgumentException {
- // Sanity check:
- assertNotNull(Package.getPackage("java.lang"));
-
Package.getPackage("java.lang").equals(Package.getPackage("java.lang"));
- // set up:
- assertNotNull(classLoader);
- Class otherClass = classLoader.loadClass(className);
- assertNotNull(otherClass);
- Object otherPackage = otherClass.getPackage();
- assertNotNull(otherPackage);
- return otherPackage;
- }
-
- /**
- * The ordering imposed by a Comparator c on a set of elements S is said
to
- * be consistent with equals if and only if (compare((Object)e1,
- * (Object)e2)==0) has the same boolean value as e1.equals((Object)e2)
for
- * every e1 and e2 in S.
- *
- * http://java.sun.com/j2se/1.3/docs/api/java/util/Comparator.html
- */
- public void assertComparatorContract(Comparator comparator, Object e1,
Object e2) {
- assertEquals(comparator.compare(e1, e2) == 0, e1.equals(e2));
- }
public static ClassLoader newSystemClassLoader() throws
SecurityException, IllegalArgumentException {
- ClassLoader scl = ClassLoader.getSystemClassLoader();
- if (!(scl instanceof URLClassLoader)) {
- fail("Need a better test set up.");
- }
- URLClassLoader urlScl = (URLClassLoader)scl;
- return URLClassLoader.newInstance(urlScl.getURLs(), null);
+ ClassLoader scl = ClassLoader.getSystemClassLoader();
+ if (!(scl instanceof URLClassLoader)) {
+ fail("Need a better test set up.");
+ }
+ URLClassLoader urlScl = (URLClassLoader)scl;
+ return URLClassLoader.newInstance(urlScl.getURLs(), null);
}
-
-// public static List getAssignableFrom(List classes, Class superclass) {
-// public static boolean isAssignable(Class[] classArray, Class[]
toClassArray) {
-// public static boolean isAssignable(Class cls, Class toClass) {
+
}
1.34 +1 -68
jakarta-commons/lang/src/java/org/apache/commons/lang/ClassUtils.java
Index: ClassUtils.java
===================================================================
RCS file:
/home/cvs/jakarta-commons/lang/src/java/org/apache/commons/lang/ClassUtils.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- ClassUtils.java 21 Oct 2004 01:18:33 -0000 1.33
+++ ClassUtils.java 19 Dec 2004 22:35:38 -0000 1.34
@@ -16,7 +16,6 @@
package org.apache.commons.lang;
import java.util.ArrayList;
-import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -497,71 +496,5 @@
}
return (cls.getName().indexOf(INNER_CLASS_SEPARATOR_CHAR) >= 0);
}
-
- //-----------------------------------------------------------------------
- /**
- * Compares two <code>Class</code>s by name.
- */
- private static class ClassNameComparator implements Comparator {
- /**
- * Compares two <code>Class</code>s by name.
- * @param o1 The receiver of the comparison call to [EMAIL
PROTECTED] String#compareTo(String)}.
- * @param o2 The argument of the comparison call to [EMAIL
PROTECTED] String#compareTo(String)}.
- * @return The return value from [EMAIL PROTECTED]
String#compareTo(String)}
- *
- * @throws ClassCastException
- * If <code>o1</code> or <code>o2</code> are not
<code>Class</code>
- * instances.
- */
- public int compare(Object o1, Object o2) {
- Class class1 = (Class) o1;
- Class class2 = (Class) o2;
- if (class1 == null) {
- return class2 == null ? 0 : -1;
- }
- if (class2 == null) {
- return 1;
- }
- return class1.getName().compareTo(class2.getName());
- }
- }
-
- /**
- * Compares two <code>Class</code>s by name.
- */
- public static final Comparator CLASS_NAME_COMPARATOR = new
ClassNameComparator();
- /**
- * Compares two <code>Package</code>s by name.
- */
- private static class PackageNameComparator implements Comparator {
-
- /**
- * Compares two <code>Package</code>s by name.
- *
- * @param o1 The receiver of the comparison call to [EMAIL
PROTECTED] String#compareTo(String)}.
- * @param o2 The argument of the comparison call to [EMAIL
PROTECTED] String#compareTo(String)}.
- * @return The return value from [EMAIL PROTECTED]
String#compareTo(String)}
- * @throws ClassCastException
- * If <code>o1</code> or <code>o2</code> are not
<code>Package</code>
- * instances.
- */
- public int compare(Object o1, Object o2) {
- Package package1 = (Package) o1;
- Package package2 = (Package) o2;
- if (package1 == null) {
- return package2 == null ? 0 : -1;
- }
- if (package2 == null) {
- return 1;
- }
- return package1.getName().compareTo(package2.getName());
- }
- }
-
- /**
- * Compares two <code>Package</code>s by name.
- */
- public static final Comparator PACKAGE_NAME_COMPARATOR = new
PackageNameComparator();
-
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]