diff --git a/src/java/org/apache/commons/lang/Validate.java b/src/java/org/apache/commons/lang/Validate.java index da6662486..62ed3b482 100644 --- a/src/java/org/apache/commons/lang/Validate.java +++ b/src/java/org/apache/commons/lang/Validate.java @@ -35,7 +35,7 @@ * @author Gary Gregory * @author Norm Deane * @since 2.0 - * @version $Id: Validate.java,v 1.12 2004/06/01 21:25:35 scolebourne Exp $ + * @version $Id: Validate.java,v 1.13 2004/10/08 21:44:41 scolebourne Exp $ */ public class Validate { // Validate has no dependencies on other classes in Commons Lang at present @@ -492,52 +492,54 @@ public static void noNullElements(Collection collection) { } } } - + /** *
Validate an argument, throwing IllegalArgumentException
* if the argument collection is null
or has elements that
- * are not of type clazz
.
clazz
or a subclass.
*
* - * Validate.allElementsOfClass(collection, String.class, "Collection has invalid elements"); + * Validate.allElementsOfType(collection, String.class, "Collection has invalid elements"); ** - * @param collection the collection to check - * @param clazz the
Class
which the collection's elements are expected to be
+ * @param collection the collection to check, not null
+ * @param clazz the Class
which the collection's elements are expected to be, not null
* @param message the exception message if the Collection
has elements not of type clazz
* @since 2.1
*/
- public static void allElementsOfClass(Collection collection, Class clazz, String message) {
+ public static void allElementsOfType(Collection collection, Class clazz, String message) {
Validate.notNull(collection);
+ Validate.notNull(clazz);
for (Iterator it = collection.iterator(); it.hasNext(); ) {
- if ((it.next().getClass().equals(clazz)) == false) {
+ if (clazz.isInstance(it.next()) == false) {
throw new IllegalArgumentException(message);
}
}
- }
-
+ }
+
/**
* Validate an argument, throwing IllegalArgumentException
* if the argument collection is null
or has elements that are not of
- * type clazz
.
clazz
or a subclass.
*
* - * Validate.allElementsOfClass(collection, String.class); + * Validate.allElementsOfType(collection, String.class); ** *
The message in the exception is 'The validated collection contains an element not of type clazz at index: '.
* - * @param collection the collection to check - * @param clazz theClass
which the collection's elements are expected to be
+ * @param collection the collection to check, not null
+ * @param clazz the Class
which the collection's elements are expected to be, not null
* @since 2.1
*/
- public static void allElementsOfClass(Collection collection, Class clazz) {
+ public static void allElementsOfType(Collection collection, Class clazz) {
Validate.notNull(collection);
+ Validate.notNull(clazz);
int i = 0;
for (Iterator it = collection.iterator(); it.hasNext(); i++) {
- if ((it.next().getClass().equals(clazz)) == false) {
+ if (clazz.isInstance(it.next()) == false) {
throw new IllegalArgumentException("The validated collection contains an element not of type "
- + (clazz == null ? "null" : clazz.getName()) + " at index: " + i);
+ + clazz.getName() + " at index: " + i);
}
}
}
diff --git a/src/test/org/apache/commons/lang/ValidateTest.java b/src/test/org/apache/commons/lang/ValidateTest.java
index b5a66a245..1f70e42c0 100644
--- a/src/test/org/apache/commons/lang/ValidateTest.java
+++ b/src/test/org/apache/commons/lang/ValidateTest.java
@@ -30,7 +30,7 @@
*
* @author Stephen Colebourne
* @author Norm Deane
- * @version $Id: ValidateTest.java,v 1.5 2004/02/18 23:06:19 ggregory Exp $
+ * @version $Id: ValidateTest.java,v 1.6 2004/10/08 21:44:41 scolebourne Exp $
*/
public class ValidateTest extends TestCase {
@@ -358,23 +358,41 @@ public void testNoNullElementsCollection2() {
}
//-----------------------------------------------------------------------
- public void testAllElementsOfClass() {
+ public void testAllElementsOfType() {
List coll = new ArrayList();
coll.add("a");
coll.add("b");
- Validate.allElementsOfClass(coll, String.class, "MSG");
+ Validate.allElementsOfType(coll, String.class, "MSG");
try {
- Validate.allElementsOfClass(coll, Integer.class, "MSG");
+ Validate.allElementsOfType(coll, Integer.class, "MSG");
fail("Expecting IllegalArgumentException");
} catch (IllegalArgumentException ex) {
assertEquals("MSG", ex.getMessage());
}
coll.set(1, Boolean.FALSE);
try {
- Validate.allElementsOfClass(coll, String.class);
+ Validate.allElementsOfType(coll, String.class);
fail("Expecting IllegalArgumentException");
} catch (IllegalArgumentException ex) {
assertEquals("The validated collection contains an element not of type java.lang.String at index: 1", ex.getMessage());
}
+
+ coll = new ArrayList();
+ coll.add(new Integer(5));
+ coll.add(new Double(2.0d));
+ Validate.allElementsOfType(coll, Number.class, "MSG");
+ try {
+ Validate.allElementsOfType(coll, Integer.class, "MSG");
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("MSG", ex.getMessage());
+ }
+ try {
+ Validate.allElementsOfType(coll, Double.class, "MSG");
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("MSG", ex.getMessage());
+ }
}
+
}