You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by sc...@apache.org on 2009/11/01 16:45:09 UTC
svn commit: r831689 - in /commons/proper/lang/trunk/src:
java/org/apache/commons/lang/Validate.java
test/org/apache/commons/lang/ValidateTest.java
Author: scolebourne
Date: Sun Nov 1 15:45:09 2009
New Revision: 831689
URL: http://svn.apache.org/viewvc?rev=831689&view=rev
Log:
LANG-546 - Validate.validIndex()
Modified:
commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java
commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java
Modified: commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java?rev=831689&r1=831688&r2=831689&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java (original)
+++ commons/proper/lang/trunk/src/java/org/apache/commons/lang/Validate.java Sun Nov 1 15:45:09 2009
@@ -580,4 +580,138 @@
}
}
+ // validIndex array
+ //---------------------------------------------------------------------------------
+
+ /**
+ * <p>Validate an argument, throwing <code>IllegalArgumentException</code> if the
+ * index for the argument array is invalid or if the array is <code>null</code>.</p>
+ *
+ * <pre>
+ * Validate.validIndex(myArray, 2, "The array index is invalid: ");
+ * </pre>
+ *
+ * <p>If the array is null then the message in the exception is 'The validated object is null'.</p>
+ *
+ * @param array the array to check, not null
+ * @param message the exception message if the array index is invalid
+ * @throws IllegalArgumentException if the array index is invalid or null
+ */
+ public static void validIndex(Object[] array, int index, String message) {
+ Validate.notNull(array);
+ if (index < 0 || index >= array.length) {
+ throw new IllegalArgumentException(message + index);
+ }
+ }
+
+ /**
+ * <p>Validate an argument, throwing <code>IllegalArgumentException</code> if the
+ * index for the argument array is invalid or if the array is <code>null</code>.</p>
+ *
+ * <pre>
+ * Validate.validIndex(myArray, 2);
+ * </pre>
+ *
+ * <p>If the array index is invalid the message in the exception is
+ * 'The validated array index is invalid: ' followed by the index.</p>
+ *
+ * <p>If the array is null then the message in the exception is 'The validated object is null'.</p>
+ *
+ * @param array the array to check, not null
+ * @throws IllegalArgumentException if the array index is invalid or null
+ */
+ public static void validIndex(Object[] array, int index) {
+ validIndex(array, index, "The validated array index is invalid: ");
+ }
+
+ // validIndex collection
+ //---------------------------------------------------------------------------------
+
+ /**
+ * <p>Validate an argument, throwing <code>IllegalArgumentException</code> if the
+ * index for the argument collection is invalid or if the collection is <code>null</code>.</p>
+ *
+ * <pre>
+ * Validate.validIndex(myCollection, 2, "The collection index is invalid: ");
+ * </pre>
+ *
+ * <p>If the collection is null then the message in the exception is 'The validated object is null'.</p>
+ *
+ * @param coll the collection to check, not null
+ * @param message the exception message if the collection index is invalid
+ * @throws IllegalArgumentException if the collection index is invalid or null
+ */
+ public static void validIndex(Collection<?> coll, int index, String message) {
+ Validate.notNull(coll);
+ if (index < 0 || index >= coll.size()) {
+ throw new IllegalArgumentException(message + index);
+ }
+ }
+
+ /**
+ * <p>Validate an argument, throwing <code>IllegalArgumentException</code> if the
+ * index for the argument collection is invalid or if the collection is <code>null</code>.</p>
+ *
+ * <pre>
+ * Validate.validIndex(myCollection, 2);
+ * </pre>
+ *
+ * <p>If the collection index is invalid the message in the exception is
+ * 'The validated collection index is invalid: ' followed by the index.</p>
+ *
+ * <p>If the collection is null then the message in the exception is 'The validated object is null'.</p>
+ *
+ * @param coll the collection to check, not null
+ * @throws IllegalArgumentException if the collection index is invalid or null
+ */
+ public static void validIndex(Collection<?> coll, int index) {
+ validIndex(coll, index, "The validated collection index is invalid: ");
+ }
+
+ // validIndex string
+ //---------------------------------------------------------------------------------
+
+ /**
+ * <p>Validate an argument, throwing <code>IllegalArgumentException</code> if the
+ * index for the argument character sequence (including String and StringBuffer)
+ * is invalid or if the string is <code>null</code>.</p>
+ *
+ * <pre>
+ * Validate.validIndex(myStr, 2, "The string index is invalid: ");
+ * </pre>
+ *
+ * <p>If the string is null then the message in the exception is 'The validated object is null'.</p>
+ *
+ * @param str the string to check, not null
+ * @param message the exception message if the string index is invalid
+ * @throws IllegalArgumentException if the string index is invalid or null
+ */
+ public static void validIndex(CharSequence str, int index, String message) {
+ Validate.notNull(str);
+ if (index < 0 || index >= str.length()) {
+ throw new IllegalArgumentException(message + index);
+ }
+ }
+
+ /**
+ * <p>Validate an argument, throwing <code>IllegalArgumentException</code> if the
+ * index for the argument character sequence (including String and StringBuffer)
+ * is invalid or if the string is <code>null</code>.</p>
+ *
+ * <pre>
+ * Validate.validIndex(myStr, 2);
+ * </pre>
+ *
+ * <p>If the string index is invalid the message in the exception is
+ * 'The validated string index is invalid: ' followed by the index.</p>
+ *
+ * <p>If the string is null then the message in the exception is 'The validated object is null'.</p>
+ *
+ * @param str the string to check, not null
+ * @throws IllegalArgumentException if the string index is invalid or null
+ */
+ public static void validIndex(CharSequence str, int index) {
+ validIndex(str, index, "The validated string index is invalid: ");
+ }
+
}
Modified: commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java
URL: http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java?rev=831689&r1=831688&r2=831689&view=diff
==============================================================================
--- commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java (original)
+++ commons/proper/lang/trunk/src/test/org/apache/commons/lang/ValidateTest.java Sun Nov 1 15:45:09 2009
@@ -597,5 +597,120 @@
assertEquals(true, Modifier.isPublic(Validate.class.getModifiers()));
assertEquals(false, Modifier.isFinal(Validate.class.getModifiers()));
}
-
+
+ //-----------------------------------------------------------------------
+ public void testValidIndex_withMessage_array() {
+ Object[] array = new Object[2];
+ Validate.validIndex(array, 0, "Broken: ");
+ Validate.validIndex(array, 1, "Broken: ");
+ try {
+ Validate.validIndex(array, -1, "Broken: ");
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("Broken: -1", ex.getMessage());
+ }
+ try {
+ Validate.validIndex(array, 2, "Broken: ");
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("Broken: 2", ex.getMessage());
+ }
+ }
+
+ public void testValidIndex_array() {
+ Object[] array = new Object[2];
+ Validate.validIndex(array, 0);
+ Validate.validIndex(array, 1);
+ try {
+ Validate.validIndex(array, -1);
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("The validated array index is invalid: -1", ex.getMessage());
+ }
+ try {
+ Validate.validIndex(array, 2);
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("The validated array index is invalid: 2", ex.getMessage());
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ public void testValidIndex_withMessage_collection() {
+ Collection<String> coll = new ArrayList<String>();
+ coll.add(null);
+ coll.add(null);
+ Validate.validIndex(coll, 0, "Broken: ");
+ Validate.validIndex(coll, 1, "Broken: ");
+ try {
+ Validate.validIndex(coll, -1, "Broken: ");
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("Broken: -1", ex.getMessage());
+ }
+ try {
+ Validate.validIndex(coll, 2, "Broken: ");
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("Broken: 2", ex.getMessage());
+ }
+ }
+
+ public void testValidIndex_collection() {
+ Collection<String> coll = new ArrayList<String>();
+ coll.add(null);
+ coll.add(null);
+ Validate.validIndex(coll, 0);
+ Validate.validIndex(coll, 1);
+ try {
+ Validate.validIndex(coll, -1);
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("The validated collection index is invalid: -1", ex.getMessage());
+ }
+ try {
+ Validate.validIndex(coll, 2);
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("The validated collection index is invalid: 2", ex.getMessage());
+ }
+ }
+
+ //-----------------------------------------------------------------------
+ public void testValidIndex_withMessage_charSequence() {
+ CharSequence str = "Hi";
+ Validate.validIndex(str, 0, "Broken: ");
+ Validate.validIndex(str, 1, "Broken: ");
+ try {
+ Validate.validIndex(str, -1, "Broken: ");
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("Broken: -1", ex.getMessage());
+ }
+ try {
+ Validate.validIndex(str, 2, "Broken: ");
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("Broken: 2", ex.getMessage());
+ }
+ }
+
+ public void testValidIndex_charSequence() {
+ CharSequence str = "Hi";
+ Validate.validIndex(str, 0);
+ Validate.validIndex(str, 1);
+ try {
+ Validate.validIndex(str, -1);
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("The validated string index is invalid: -1", ex.getMessage());
+ }
+ try {
+ Validate.validIndex(str, 2);
+ fail("Expecting IllegalArgumentException");
+ } catch (IllegalArgumentException ex) {
+ assertEquals("The validated string index is invalid: 2", ex.getMessage());
+ }
+ }
+
}