A massive organize imports and formatting of the sources using default Eclipse code...
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / core / compiler / CharOperation.java
index ae0ed10..75fe787 100644 (file)
@@ -26,28 +26,37 @@ public final class CharOperation {
         * Constant for an empty char array with two dimensions.
         */
        public static final char[][] NO_CHAR_CHAR = new char[0][];
-       
+
        /**
-        * Answers a new array with appending the suffix character at the end of the array.
-        * <br>
+        * Answers a new array with appending the suffix character at the end of the
+        * array. <br>
         * <br>
         * For example:<br>
         * <ol>
-        * <li><pre>
-        *    array = { 'a', 'b' }
-        *    suffix = 'c'
-        *    => result = { 'a', 'b' , 'c' }
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'a', 'b' }
+        *     suffix = 'c'
+        *     =&gt; result = { 'a', 'b' , 'c' }
+        * </pre>
+        * 
+        * </li>
+        * <li>
+        * 
+        * <pre>
+        *     array = null
+        *     suffix = 'c'
+        *     =&gt; result = { 'c' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    array = null
-        *    suffix = 'c'
-        *    => result = { 'c' }
-        * </pre></li>
         * </ol>
         * 
-        * @param array the array that is concanated with the suffix character
-        * @param suffix the suffix character
+        * @param array
+        *            the array that is concanated with the suffix character
+        * @param suffix
+        *            the suffix character
         * @return the new array
         */
        public static final char[] append(char[] array, char suffix) {
@@ -58,88 +67,117 @@ public final class CharOperation {
                array[length] = suffix;
                return array;
        }
+
        /**
-        * Append the given subarray to append to the target array starting at the given index in the target array.
-        * The start of the subarray is inclusive, the end is exclusive.
-        * Answers a new target array if it needs to grow, otherwise answers the same target array.
-        * <br>
+        * Append the given subarray to append to the target array starting at the
+        * given index in the target array. The start of the subarray is inclusive,
+        * the end is exclusive. Answers a new target array if it needs to grow,
+        * otherwise answers the same target array. <br>
         * For example:<br>
         * <ol>
-        * <li><pre>
-        *    target = { 'a', 'b', -1 }
-        *    index = 0
-        *    array = { 'c', 'd' }
-        *    start = 0
-        *    end = 1
-        *    => result = { 'a', 'b' , 'c' }
-        * </pre>
-        * </li>
-        * <li><pre>
-        *    target = { 'a', 'b' }
-        *    index = 0
-        *    array = { 'c', 'd' }
-        *    start = 0
-        *    end = 1
-        *    => result = new { 'a', 'b' , 'c', -1 }
-        * </pre></li>
-        * <li><pre>
-        *    target = { 'a', 'b', 'c' }
-        *    index = 1
-        *    array = { 'c', 'd', 'e', 'f' }
-        *    start = 1
-        *    end = 4
-        *    => result = new { 'a', 'd' , 'e', 'f', -1, -1 }
-        * </pre></li>
+        * <li>
+        * 
+        * <pre>
+        *     target = { 'a', 'b', -1 }
+        *     index = 0
+        *     array = { 'c', 'd' }
+        *     start = 0
+        *     end = 1
+        *     =&gt; result = { 'a', 'b' , 'c' }
+        * </pre>
+        * 
+        * </li>
+        * <li>
+        * 
+        * <pre>
+        *     target = { 'a', 'b' }
+        *     index = 0
+        *     array = { 'c', 'd' }
+        *     start = 0
+        *     end = 1
+        *     =&gt; result = new { 'a', 'b' , 'c', -1 }
+        * </pre>
+        * 
+        * </li>
+        * <li>
+        * 
+        * <pre>
+        *     target = { 'a', 'b', 'c' }
+        *     index = 1
+        *     array = { 'c', 'd', 'e', 'f' }
+        *     start = 1
+        *     end = 4
+        *     =&gt; result = new { 'a', 'd' , 'e', 'f', -1, -1 }
+        * </pre>
+        * 
+        * </li>
         * </ol>
         */
-       public static final char[] append(char[] target, int index, char[] array, int start, int end) {
+       public static final char[] append(char[] target, int index, char[] array,
+                       int start, int end) {
                int targetLength = target.length;
-               int subLength = end-start;
-               int newTargetLength = subLength+index;
+               int subLength = end - start;
+               int newTargetLength = subLength + index;
                if (newTargetLength > targetLength) {
-                       System.arraycopy(target, 0, target = new char[newTargetLength*2], 0, index);
+                       System.arraycopy(target, 0, target = new char[newTargetLength * 2],
+                                       0, index);
                }
                System.arraycopy(array, start, target, index, subLength);
                return target;
        }
 
        /**
-        * Answers the concatenation of the two arrays. It answers null if the two arrays are null.
-        * If the first array is null, then the second array is returned.
-        * If the second array is null, then the first array is returned.
+        * Answers the concatenation of the two arrays. It answers null if the two
+        * arrays are null. If the first array is null, then the second array is
+        * returned. If the second array is null, then the first array is returned.
         * <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    first = null
-        *    second = null
-        *    => result = null
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = null
+        *     =&gt; result = null
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { { ' a' } }
-        *    second = null
-        *    => result = { { ' a' } }
+        * <li>
+        * 
+        * <pre>
+        *     first = { { ' a' } }
+        *     second = null
+        *     =&gt; result = { { ' a' } }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = null
-        *    second = { { ' a' } }
-        *    => result = { { ' a' } }
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = { { ' a' } }
+        *     =&gt; result = { { ' a' } }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { { ' b' } }
-        *    second = { { ' a' } }
-        *    => result = { { ' b' }, { ' a' } }
+        * <li>
+        * 
+        * <pre>
+        *     first = { { ' b' } }
+        *     second = { { ' a' } }
+        *     =&gt; result = { { ' b' }, { ' a' } }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param first the first array to concatenate
-        * @param second the second array to concatenate
-        * @return the concatenation of the two arrays, or null if the two arrays are null.
+        * @param first
+        *            the first array to concatenate
+        * @param second
+        *            the second array to concatenate
+        * @return the concatenation of the two arrays, or null if the two arrays
+        *         are null.
         */
        public static final char[][] arrayConcat(char[][] first, char[][] second) {
                if (first == null)
@@ -156,36 +194,47 @@ public final class CharOperation {
        }
 
        /**
-        * Answers a new array adding the second array at the end of first array.
-        * It answers null if the first and second are null.
-        * If the first array is null, then a new array char[][] is created with second.
-        * If the second array is null, then the first array is returned.
-        * <br>
+        * Answers a new array adding the second array at the end of first array. It
+        * answers null if the first and second are null. If the first array is
+        * null, then a new array char[][] is created with second. If the second
+        * array is null, then the first array is returned. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    first = null
-        *    second = { 'a' }
-        *    => result = { { ' a' } }
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = { 'a' }
+        *     =&gt; result = { { ' a' } }
         * </pre>
-        * <li><pre>
-        *    first = { { ' a' } }
-        *    second = null
-        *    => result = { { ' a' } }
+        * 
+        * <li>
+        * 
+        * <pre>
+        *     first = { { ' a' } }
+        *     second = null
+        *     =&gt; result = { { ' a' } }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { { ' a' } }
-        *    second = { ' b' }
-        *    => result = { { ' a' } , { ' b' } }
+        * <li>
+        * 
+        * <pre>
+        *     first = { { ' a' } }
+        *     second = { ' b' }
+        *     =&gt; result = { { ' a' } , { ' b' } }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param first the first array to concatenate
-        * @param second the array to add at the end of the first array
-        * @return a new array adding the second array at the end of first array, or null if the two arrays are null.
+        * @param first
+        *            the first array to concatenate
+        * @param second
+        *            the array to add at the end of the first array
+        * @return a new array adding the second array at the end of first array, or
+        *         null if the two arrays are null.
         */
        public static final char[][] arrayConcat(char[][] first, char[] second) {
                if (second == null)
@@ -201,36 +250,48 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the concatenation of the two arrays. It answers null if the two arrays are null.
-        * If the first array is null, then the second array is returned.
-        * If the second array is null, then the first array is returned.
+        * Answers the concatenation of the two arrays. It answers null if the two
+        * arrays are null. If the first array is null, then the second array is
+        * returned. If the second array is null, then the first array is returned.
         * <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    first = null
-        *    second = { 'a' }
-        *    => result = { ' a' }
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = { 'a' }
+        *     =&gt; result = { ' a' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { ' a' }
-        *    second = null
-        *    => result = { ' a' }
+        * <li>
+        * 
+        * <pre>
+        *     first = { ' a' }
+        *     second = null
+        *     =&gt; result = { ' a' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { ' a' }
-        *    second = { ' b' }
-        *    => result = { ' a' , ' b' }
+        * <li>
+        * 
+        * <pre>
+        *     first = { ' a' }
+        *     second = { ' b' }
+        *     =&gt; result = { ' a' , ' b' }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param first the first array to concatenate
-        * @param second the second array to concatenate
-        * @return the concatenation of the two arrays, or null if the two arrays are null.
+        * @param first
+        *            the first array to concatenate
+        * @param second
+        *            the second array to concatenate
+        * @return the concatenation of the two arrays, or null if the two arrays
+        *         are null.
         */
        public static final char[] concat(char[] first, char[] second) {
                if (first == null)
@@ -247,61 +308,77 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the concatenation of the three arrays. It answers null if the three arrays are null.
-        * If first is null, it answers the concatenation of second and third.
-        * If second is null, it answers the concatenation of first and third.
-        * If third is null, it answers the concatenation of first and second.
-        * <br>
+        * Answers the concatenation of the three arrays. It answers null if the
+        * three arrays are null. If first is null, it answers the concatenation of
+        * second and third. If second is null, it answers the concatenation of
+        * first and third. If third is null, it answers the concatenation of first
+        * and second. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    first = null
-        *    second = { 'a' }
-        *    third = { 'b' }
-        *    => result = { ' a', 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = { 'a' }
+        *     third = { 'b' }
+        *     =&gt; result = { ' a', 'b' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { 'a' }
-        *    second = null
-        *    third = { 'b' }
-        *    => result = { ' a', 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     first = { 'a' }
+        *     second = null
+        *     third = { 'b' }
+        *     =&gt; result = { ' a', 'b' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { 'a' }
-        *    second = { 'b' }
-        *    third = null
-        *    => result = { ' a', 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     first = { 'a' }
+        *     second = { 'b' }
+        *     third = null
+        *     =&gt; result = { ' a', 'b' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = null
-        *    second = null
-        *    third = null
-        *    => result = null
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = null
+        *     third = null
+        *     =&gt; result = null
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { 'a' }
-        *    second = { 'b' }
-        *    third = { 'c' }
-        *    => result = { 'a', 'b', 'c' }
+        * <li>
+        * 
+        * <pre>
+        *     first = { 'a' }
+        *     second = { 'b' }
+        *     third = { 'c' }
+        *     =&gt; result = { 'a', 'b', 'c' }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param first the first array to concatenate
-        * @param second the second array to concatenate
-        * @param third the third array to concatenate
+        * @param first
+        *            the first array to concatenate
+        * @param second
+        *            the second array to concatenate
+        * @param third
+        *            the third array to concatenate
         * 
-        * @return the concatenation of the three arrays, or null if the three arrays are null.
+        * @return the concatenation of the three arrays, or null if the three
+        *         arrays are null.
         */
-       public static final char[] concat(
-               char[] first,
-               char[] second,
-               char[] third) {
+       public static final char[] concat(char[] first, char[] second, char[] third) {
                if (first == null)
                        return concat(second, third);
                if (second == null)
@@ -320,47 +397,57 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the concatenation of the two arrays inserting the separator character between the two arrays.
-        * It answers null if the two arrays are null.
-        * If the first array is null, then the second array is returned.
-        * If the second array is null, then the first array is returned.
-        * <br>
+        * Answers the concatenation of the two arrays inserting the separator
+        * character between the two arrays. It answers null if the two arrays are
+        * null. If the first array is null, then the second array is returned. If
+        * the second array is null, then the first array is returned. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    first = null
-        *    second = { 'a' }
-        *    separator = '/'
-        *    => result = { ' a' }
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = { 'a' }
+        *     separator = '/'
+        *     =&gt; result = { ' a' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { ' a' }
-        *    second = null
-        *    separator = '/'
-        *    => result = { ' a' }
+        * <li>
+        * 
+        * <pre>
+        *     first = { ' a' }
+        *     second = null
+        *     separator = '/'
+        *     =&gt; result = { ' a' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { ' a' }
-        *    second = { ' b' }
-        *    separator = '/'
-        *    => result = { ' a' , '/', 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     first = { ' a' }
+        *     second = { ' b' }
+        *     separator = '/'
+        *     =&gt; result = { ' a' , '/', 'b' }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param first the first array to concatenate
-        * @param second the second array to concatenate
-        * @param separator the character to insert
-        * @return the concatenation of the two arrays inserting the separator character 
-        * between the two arrays , or null if the two arrays are null.
+        * @param first
+        *            the first array to concatenate
+        * @param second
+        *            the second array to concatenate
+        * @param separator
+        *            the character to insert
+        * @return the concatenation of the two arrays inserting the separator
+        *         character between the two arrays , or null if the two arrays are
+        *         null.
         */
-       public static final char[] concat(
-               char[] first,
-               char[] second,
-               char separator) {
+       public static final char[] concat(char[] first, char[] second,
+                       char separator) {
                if (first == null)
                        return second;
                if (second == null)
@@ -381,51 +468,59 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the concatenation of the three arrays inserting the sep1 character between the 
-        * two arrays and sep2 between the last two.
-        * It answers null if the three arrays are null.
-        * If the first array is null, then it answers the concatenation of second and third inserting
-        * the sep2 character between them.
-        * If the second array is null, then the first array is returned.
-        * <br>
+        * Answers the concatenation of the three arrays inserting the sep1
+        * character between the two arrays and sep2 between the last two. It
+        * answers null if the three arrays are null. If the first array is null,
+        * then it answers the concatenation of second and third inserting the sep2
+        * character between them. If the second array is null, then the first array
+        * is returned. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    first = null
-        *    second = { 'a' }
-        *    separator = '/'
-        *    => result = { ' a' }
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = { 'a' }
+        *     separator = '/'
+        *     =&gt; result = { ' a' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { ' a' }
-        *    second = null
-        *    separator = '/'
-        *    => result = { ' a' }
+        * <li>
+        * 
+        * <pre>
+        *     first = { ' a' }
+        *     second = null
+        *     separator = '/'
+        *     =&gt; result = { ' a' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { ' a' }
-        *    second = { ' b' }
-        *    separator = '/'
-        *    => result = { ' a' , '/', 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     first = { ' a' }
+        *     second = { ' b' }
+        *     separator = '/'
+        *     =&gt; result = { ' a' , '/', 'b' }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param first the first array to concatenate
-        * @param second the second array to concatenate
-        * @param separator the character to insert
-        * @return the concatenation of the two arrays inserting the separator character 
-        * between the two arrays , or null if the two arrays are null.
+        * @param first
+        *            the first array to concatenate
+        * @param second
+        *            the second array to concatenate
+        * @param separator
+        *            the character to insert
+        * @return the concatenation of the two arrays inserting the separator
+        *         character between the two arrays , or null if the two arrays are
+        *         null.
         */
-       public static final char[] concat(
-               char[] first,
-               char sep1,
-               char[] second,
-               char sep2,
-               char[] third) {
+       public static final char[] concat(char[] first, char sep1, char[] second,
+                       char sep2, char[] third) {
                if (first == null)
                        return concat(second, third, sep2);
                if (second == null)
@@ -446,31 +541,41 @@ public final class CharOperation {
        }
 
        /**
-        * Answers a new array with prepending the prefix character and appending the suffix 
-        * character at the end of the array. If array is null, it answers a new array containing the 
-        * prefix and the suffix characters.
-        * <br>
+        * Answers a new array with prepending the prefix character and appending
+        * the suffix character at the end of the array. If array is null, it
+        * answers a new array containing the prefix and the suffix characters. <br>
         * <br>
         * For example:<br>
         * <ol>
-        * <li><pre>
-        *    prefix = 'a'
-        *    array = { 'b' }
-        *    suffix = 'c'
-        *    => result = { 'a', 'b' , 'c' }
-        * </pre>
-        * </li>
-        * <li><pre>
-        *    prefix = 'a'
-        *    array = null
-        *    suffix = 'c'
-        *    => result = { 'a', 'c' }
-        * </pre></li>
+        * <li>
+        * 
+        * <pre>
+        *     prefix = 'a'
+        *     array = { 'b' }
+        *     suffix = 'c'
+        *     =&gt; result = { 'a', 'b' , 'c' }
+        * </pre>
+        * 
+        * </li>
+        * <li>
+        * 
+        * <pre>
+        *     prefix = 'a'
+        *     array = null
+        *     suffix = 'c'
+        *     =&gt; result = { 'a', 'c' }
+        * </pre>
+        * 
+        * </li>
         * </ol>
         * 
-        * @param prefix the prefix character
-        * @param array the array that is concanated with the prefix and suffix characters
-        * @param suffix the suffix character
+        * @param prefix
+        *            the prefix character
+        * @param array
+        *            the array that is concanated with the prefix and suffix
+        *            characters
+        * @param suffix
+        *            the suffix character
         * @return the new array
         */
        public static final char[] concat(char prefix, char[] array, char suffix) {
@@ -484,45 +589,57 @@ public final class CharOperation {
                result[length + 1] = suffix;
                return result;
        }
-       
+
        /**
-        * Answers the concatenation of the given array parts using the given separator between each
-        * part and appending the given name at the end.
-        * <br>
+        * Answers the concatenation of the given array parts using the given
+        * separator between each part and appending the given name at the end. <br>
         * <br>
         * For example:<br>
         * <ol>
-        * <li><pre>
-        *    name = { 'c' }
-        *    array = { { 'a' }, { 'b' } }
-        *    separator = '.'
-        *    => result = { 'a', '.', 'b' , '.', 'c' }
-        * </pre>
-        * </li>
-        * <li><pre>
-        *    name = null
-        *    array = { { 'a' }, { 'b' } }
-        *    separator = '.'
-        *    => result = { 'a', '.', 'b' }
-        * </pre></li>
-        * <li><pre>
-        *    name = { ' c' }
-        *    array = null
-        *    separator = '.'
-        *    => result = { 'c' }
-        * </pre></li>
+        * <li>
+        * 
+        * <pre>
+        *     name = { 'c' }
+        *     array = { { 'a' }, { 'b' } }
+        *     separator = '.'
+        *     =&gt; result = { 'a', '.', 'b' , '.', 'c' }
+        * </pre>
+        * 
+        * </li>
+        * <li>
+        * 
+        * <pre>
+        *     name = null
+        *     array = { { 'a' }, { 'b' } }
+        *     separator = '.'
+        *     =&gt; result = { 'a', '.', 'b' }
+        * </pre>
+        * 
+        * </li>
+        * <li>
+        * 
+        * <pre>
+        *     name = { ' c' }
+        *     array = null
+        *     separator = '.'
+        *     =&gt; result = { 'c' }
+        * </pre>
+        * 
+        * </li>
         * </ol>
         * 
-        * @param name the given name
-        * @param array the given array
-        * @param separator the given separator
-        * @return the concatenation of the given array parts using the given separator between each
-        * part and appending the given name at the end
+        * @param name
+        *            the given name
+        * @param array
+        *            the given array
+        * @param separator
+        *            the given separator
+        * @return the concatenation of the given array parts using the given
+        *         separator between each part and appending the given name at the
+        *         end
         */
-       public static final char[] concatWith(
-               char[] name,
-               char[][] array,
-               char separator) {
+       public static final char[] concatWith(char[] name, char[][] array,
+                       char separator) {
                int nameLength = name == null ? 0 : name.length;
                if (nameLength == 0)
                        return concatWith(array, separator);
@@ -551,43 +668,55 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the concatenation of the given array parts using the given separator between each
-        * part and appending the given name at the end.
-        * <br>
+        * Answers the concatenation of the given array parts using the given
+        * separator between each part and appending the given name at the end. <br>
         * <br>
         * For example:<br>
         * <ol>
-        * <li><pre>
-        *    name = { 'c' }
-        *    array = { { 'a' }, { 'b' } }
-        *    separator = '.'
-        *    => result = { 'a', '.', 'b' , '.', 'c' }
-        * </pre>
-        * </li>
-        * <li><pre>
-        *    name = null
-        *    array = { { 'a' }, { 'b' } }
-        *    separator = '.'
-        *    => result = { 'a', '.', 'b' }
-        * </pre></li>
-        * <li><pre>
-        *    name = { ' c' }
-        *    array = null
-        *    separator = '.'
-        *    => result = { 'c' }
-        * </pre></li>
+        * <li>
+        * 
+        * <pre>
+        *     name = { 'c' }
+        *     array = { { 'a' }, { 'b' } }
+        *     separator = '.'
+        *     =&gt; result = { 'a', '.', 'b' , '.', 'c' }
+        * </pre>
+        * 
+        * </li>
+        * <li>
+        * 
+        * <pre>
+        *     name = null
+        *     array = { { 'a' }, { 'b' } }
+        *     separator = '.'
+        *     =&gt; result = { 'a', '.', 'b' }
+        * </pre>
+        * 
+        * </li>
+        * <li>
+        * 
+        * <pre>
+        *     name = { ' c' }
+        *     array = null
+        *     separator = '.'
+        *     =&gt; result = { 'c' }
+        * </pre>
+        * 
+        * </li>
         * </ol>
         * 
-        * @param array the given array
-        * @param name the given name
-        * @param separator the given separator
-        * @return the concatenation of the given array parts using the given separator between each
-        * part and appending the given name at the end
+        * @param array
+        *            the given array
+        * @param name
+        *            the given name
+        * @param separator
+        *            the given separator
+        * @return the concatenation of the given array parts using the given
+        *         separator between each part and appending the given name at the
+        *         end
         */
-       public static final char[] concatWith(
-               char[][] array,
-               char[] name,
-               char separator) {
+       public static final char[] concatWith(char[][] array, char[] name,
+                       char separator) {
                int nameLength = name == null ? 0 : name.length;
                if (nameLength == 0)
                        return concatWith(array, separator);
@@ -616,27 +745,37 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the concatenation of the given array parts using the given separator between each part.
-        * <br>
+        * Answers the concatenation of the given array parts using the given
+        * separator between each part. <br>
         * <br>
         * For example:<br>
         * <ol>
-        * <li><pre>
-        *    array = { { 'a' }, { 'b' } }
-        *    separator = '.'
-        *    => result = { 'a', '.', 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     array = { { 'a' }, { 'b' } }
+        *     separator = '.'
+        *     =&gt; result = { 'a', '.', 'b' }
+        * </pre>
+        * 
+        * </li>
+        * <li>
+        * 
+        * <pre>
+        *     array = null
+        *     separator = '.'
+        *     =&gt; result = { }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    array = null
-        *    separator = '.'
-        *    => result = { }
-        * </pre></li>
         * </ol>
         * 
-        * @param array the given array
-        * @param separator the given separator
-        * @return the concatenation of the given array parts using the given separator between each part
+        * @param array
+        *            the given array
+        * @param separator
+        *            the given separator
+        * @return the concatenation of the given array parts using the given
+        *         separator between each part
         */
        public static final char[] concatWith(char[][] array, char separator) {
                int length = array == null ? 0 : array.length;
@@ -658,45 +797,52 @@ public final class CharOperation {
                while (--index >= 0) {
                        length = array[index].length;
                        if (length > 0) {
-                               System.arraycopy(
-                                       array[index],
-                                       0,
-                                       result,
-                                       (size -= length),
-                                       length);
+                               System.arraycopy(array[index], 0, result, (size -= length),
+                                               length);
                                if (--size >= 0)
                                        result[size] = separator;
                        }
                }
                return result;
        }
-       
+
        /**
-        * Answers true if the array contains an occurrence of character, false otherwise.
+        * Answers true if the array contains an occurrence of character, false
+        * otherwise.
         * 
         * <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    character = 'c'
-        *    array = { { ' a' }, { ' b' } }
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     character = 'c'
+        *     array = { { ' a' }, { ' b' } }
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    character = 'a'
-        *    array = { { ' a' }, { ' b' } }
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     character = 'a'
+        *     array = { { ' a' }, { ' b' } }
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param character the character to search
-        * @param array the array in which the search is done
-        * @exception NullPointerException if array is null.
+        * @param character
+        *            the character to search
+        * @param array
+        *            the array in which the search is done
+        * @exception NullPointerException
+        *                if array is null.
         * 
-        * @return true if the array contains an occurrence of character, false otherwise.
+        * @return true if the array contains an occurrence of character, false
+        *         otherwise.
         */
        public static final boolean contains(char character, char[][] array) {
                for (int i = array.length; --i >= 0;) {
@@ -709,31 +855,42 @@ public final class CharOperation {
        }
 
        /**
-        * Answers true if the array contains an occurrence of character, false otherwise.
+        * Answers true if the array contains an occurrence of character, false
+        * otherwise.
         * 
         * <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    character = 'c'
-        *    array = { ' b'  }
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     character = 'c'
+        *     array = { ' b'  }
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    character = 'a'
-        *    array = { ' a' , ' b' }
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     character = 'a'
+        *     array = { ' a' , ' b' }
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param character the character to search
-        * @param array the array in which the search is done
-        * @exception NullPointerException if array is null.
+        * @param character
+        *            the character to search
+        * @param array
+        *            the array in which the search is done
+        * @exception NullPointerException
+        *                if array is null.
         * 
-        * @return true if the array contains an occurrence of character, false otherwise.
+        * @return true if the array contains an occurrence of character, false
+        *         otherwise.
         */
        public static final boolean contains(char character, char[] array) {
                for (int i = array.length; --i >= 0;)
@@ -741,11 +898,12 @@ public final class CharOperation {
                                return true;
                return false;
        }
-       
+
        /**
         * Answers a deep copy of the toCopy array.
         * 
-        * @param toCopy the array to copy
+        * @param toCopy
+        *            the array to copy
         * @return a deep copy of the toCopy array.
         */
        public static final char[][] deepCopy(char[][] toCopy) {
@@ -762,31 +920,39 @@ public final class CharOperation {
        }
 
        /**
-        * Return true if array ends with the sequence of characters contained in toBeFound, 
-        * otherwise false.
-        * <br>
+        * Return true if array ends with the sequence of characters contained in
+        * toBeFound, otherwise false. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    array = { 'a', 'b', 'c', 'd' }
-        *    toBeFound = { 'b', 'c' }
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'a', 'b', 'c', 'd' }
+        *     toBeFound = { 'b', 'c' }
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    array = { 'a', 'b', 'c' }
-        *    toBeFound = { 'b', 'c' }
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'a', 'b', 'c' }
+        *     toBeFound = { 'b', 'c' }
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param array the array to check
-        * @param toBeFound the array to find
-        * @exception NullPointerException if array is null or toBeFound is null
-        * @return true if array ends with the sequence of characters contained in toBeFound, 
-        * otherwise false.
+        * @param array
+        *            the array to check
+        * @param toBeFound
+        *            the array to find
+        * @exception NullPointerException
+        *                if array is null or toBeFound is null
+        * @return true if array ends with the sequence of characters contained in
+        *         toBeFound, otherwise false.
         */
        public static final boolean endsWith(char[] array, char[] toBeFound) {
                int i = toBeFound.length;
@@ -801,40 +967,55 @@ public final class CharOperation {
        }
 
        /**
-        * Answers true if the two arrays are identical character by character, otherwise false.
-        * The equality is case sensitive.
-        * <br>
+        * Answers true if the two arrays are identical character by character,
+        * otherwise false. The equality is case sensitive. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    first = null
-        *    second = null
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = null
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { { } }
-        *    second = null
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     first = { { } }
+        *     second = null
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { { 'a' } }
-        *    second = { { 'a' } }
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     first = { { 'a' } }
+        *     second = { { 'a' } }
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { { 'A' } }
-        *    second = { { 'a' } }
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     first = { { 'A' } }
+        *     second = { { 'a' } }
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
         * </ol>
-        * @param first the first array
-        * @param second the second array
-        * @return true if the two arrays are identical character by character, otherwise false
+        * 
+        * @param first
+        *            the first array
+        * @param second
+        *            the second array
+        * @return true if the two arrays are identical character by character,
+        *         otherwise false
         */
        public static final boolean equals(char[][] first, char[][] second) {
                if (first == second)
@@ -851,54 +1032,66 @@ public final class CharOperation {
        }
 
        /**
-        * If isCaseSensite is true, answers true if the two arrays are identical character
-        * by character, otherwise false.
-        * If it is false, answers true if the two arrays are identical character by 
-        * character without checking the case, otherwise false.
-        * <br>
+        * If isCaseSensite is true, answers true if the two arrays are identical
+        * character by character, otherwise false. If it is false, answers true if
+        * the two arrays are identical character by character without checking the
+        * case, otherwise false. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    first = null
-        *    second = null
-        *    isCaseSensitive = true
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = null
+        *     isCaseSensitive = true
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { { } }
-        *    second = null
-        *    isCaseSensitive = true
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     first = { { } }
+        *     second = null
+        *     isCaseSensitive = true
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { { 'A' } }
-        *    second = { { 'a' } }
-        *    isCaseSensitive = true
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     first = { { 'A' } }
+        *     second = { { 'a' } }
+        *     isCaseSensitive = true
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { { 'A' } }
-        *    second = { { 'a' } }
-        *    isCaseSensitive = false
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     first = { { 'A' } }
+        *     second = { { 'a' } }
+        *     isCaseSensitive = false
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param first the first array
-        * @param second the second array
-        * @param isCaseSensitive check whether or not the equality should be case sensitive
-        * @return true if the two arrays are identical character by character according to the value
-        * of isCaseSensitive, otherwise false
+        * @param first
+        *            the first array
+        * @param second
+        *            the second array
+        * @param isCaseSensitive
+        *            check whether or not the equality should be case sensitive
+        * @return true if the two arrays are identical character by character
+        *         according to the value of isCaseSensitive, otherwise false
         */
-       public static final boolean equals(
-               char[][] first,
-               char[][] second,
-               boolean isCaseSensitive) {
+       public static final boolean equals(char[][] first, char[][] second,
+                       boolean isCaseSensitive) {
 
                if (isCaseSensitive) {
                        return equals(first, second);
@@ -917,40 +1110,55 @@ public final class CharOperation {
        }
 
        /**
-        * Answers true if the two arrays are identical character by character, otherwise false.
-        * The equality is case sensitive.
-        * <br>
+        * Answers true if the two arrays are identical character by character,
+        * otherwise false. The equality is case sensitive. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    first = null
-        *    second = null
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = null
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { }
-        *    second = null
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     first = { }
+        *     second = null
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { 'a' }
-        *    second = { 'a' }
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     first = { 'a' }
+        *     second = { 'a' }
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { 'a' }
-        *    second = { 'A' }
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     first = { 'a' }
+        *     second = { 'A' }
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
         * </ol>
-        * @param first the first array
-        * @param second the second array
-        * @return true if the two arrays are identical character by character, otherwise false
+        * 
+        * @param first
+        *            the first array
+        * @param second
+        *            the second array
+        * @return true if the two arrays are identical character by character,
+        *         otherwise false
         */
        public static final boolean equals(char[] first, char[] second) {
                if (first == second)
@@ -967,54 +1175,66 @@ public final class CharOperation {
        }
 
        /**
-        * If isCaseSensite is true, answers true if the two arrays are identical character
-        * by character, otherwise false.
-        * If it is false, answers true if the two arrays are identical character by 
-        * character without checking the case, otherwise false.
-        * <br>
+        * If isCaseSensite is true, answers true if the two arrays are identical
+        * character by character, otherwise false. If it is false, answers true if
+        * the two arrays are identical character by character without checking the
+        * case, otherwise false. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    first = null
-        *    second = null
-        *    isCaseSensitive = true
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     first = null
+        *     second = null
+        *     isCaseSensitive = true
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { }
-        *    second = null
-        *    isCaseSensitive = true
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     first = { }
+        *     second = null
+        *     isCaseSensitive = true
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { 'A' }
-        *    second = { 'a' }
-        *    isCaseSensitive = true
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     first = { 'A' }
+        *     second = { 'a' }
+        *     isCaseSensitive = true
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    first = { 'A' }
-        *    second = { 'a' }
-        *    isCaseSensitive = false
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     first = { 'A' }
+        *     second = { 'a' }
+        *     isCaseSensitive = false
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param first the first array
-        * @param second the second array
-        * @param isCaseSensitive check whether or not the equality should be case sensitive
-        * @return true if the two arrays are identical character by character according to the value
-        * of isCaseSensitive, otherwise false
+        * @param first
+        *            the first array
+        * @param second
+        *            the second array
+        * @param isCaseSensitive
+        *            check whether or not the equality should be case sensitive
+        * @return true if the two arrays are identical character by character
+        *         according to the value of isCaseSensitive, otherwise false
         */
-       public static final boolean equals(
-               char[] first,
-               char[] second,
-               boolean isCaseSensitive) {
+       public static final boolean equals(char[] first, char[] second,
+                       boolean isCaseSensitive) {
 
                if (isCaseSensitive) {
                        return equals(first, second);
@@ -1027,83 +1247,98 @@ public final class CharOperation {
                        return false;
 
                for (int i = first.length; --i >= 0;)
-                       if (Character.toLowerCase(first[i])
-                               != Character.toLowerCase(second[i]))
+                       if (Character.toLowerCase(first[i]) != Character
+                                       .toLowerCase(second[i]))
                                return false;
                return true;
        }
+
        /**
-        * If isCaseSensite is true, the equality is case sensitive, otherwise it is case insensitive.
+        * If isCaseSensite is true, the equality is case sensitive, otherwise it is
+        * case insensitive.
         * 
-        * Answers true if the name contains the fragment at the starting index startIndex, otherwise false.
-        * <br>
+        * Answers true if the name contains the fragment at the starting index
+        * startIndex, otherwise false. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    fragment = { 'b', 'c' , 'd' }
-        *    name = { 'a', 'b', 'c' , 'd' }
-        *    startIndex = 1
-        *    isCaseSensitive = true
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     fragment = { 'b', 'c' , 'd' }
+        *     name = { 'a', 'b', 'c' , 'd' }
+        *     startIndex = 1
+        *     isCaseSensitive = true
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    fragment = { 'b', 'c' , 'd' }
-        *    name = { 'a', 'b', 'C' , 'd' }
-        *    startIndex = 1
-        *    isCaseSensitive = true
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     fragment = { 'b', 'c' , 'd' }
+        *     name = { 'a', 'b', 'C' , 'd' }
+        *     startIndex = 1
+        *     isCaseSensitive = true
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    fragment = { 'b', 'c' , 'd' }
-        *    name = { 'a', 'b', 'C' , 'd' }
-        *    startIndex = 0
-        *    isCaseSensitive = false
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     fragment = { 'b', 'c' , 'd' }
+        *     name = { 'a', 'b', 'C' , 'd' }
+        *     startIndex = 0
+        *     isCaseSensitive = false
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    fragment = { 'b', 'c' , 'd' }
-        *    name = { 'a', 'b'}
-        *    startIndex = 0
-        *    isCaseSensitive = true
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     fragment = { 'b', 'c' , 'd' }
+        *     name = { 'a', 'b'}
+        *     startIndex = 0
+        *     isCaseSensitive = true
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param fragment the fragment to check
-        * @param second the array to check
-        * @param startIndex the starting index
-        * @param isCaseSensitive check whether or not the equality should be case sensitive
-        * @return true if the name contains the fragment at the starting index startIndex according to the 
-        * value of isCaseSensitive, otherwise false.
-        * @exception NullPointerException if fragment or name is null.
+        * @param fragment
+        *            the fragment to check
+        * @param second
+        *            the array to check
+        * @param startIndex
+        *            the starting index
+        * @param isCaseSensitive
+        *            check whether or not the equality should be case sensitive
+        * @return true if the name contains the fragment at the starting index
+        *         startIndex according to the value of isCaseSensitive, otherwise
+        *         false.
+        * @exception NullPointerException
+        *                if fragment or name is null.
         */
-       public static final boolean fragmentEquals(
-               char[] fragment,
-               char[] name,
-               int startIndex,
-               boolean isCaseSensitive) {
+       public static final boolean fragmentEquals(char[] fragment, char[] name,
+                       int startIndex, boolean isCaseSensitive) {
 
                int max = fragment.length;
                if (name.length < max + startIndex)
                        return false;
                if (isCaseSensitive) {
-                       for (int i = max;
-                               --i >= 0;
-                               ) // assumes the prefix is not larger than the name
+                       for (int i = max; --i >= 0;)
+                               // assumes the prefix is not larger than the name
                                if (fragment[i] != name[i + startIndex])
                                        return false;
                        return true;
                }
-               for (int i = max;
-                       --i >= 0;
-                       ) // assumes the prefix is not larger than the name
-                       if (Character.toLowerCase(fragment[i])
-                               != Character.toLowerCase(name[i + startIndex]))
+               for (int i = max; --i >= 0;)
+                       // assumes the prefix is not larger than the name
+                       if (Character.toLowerCase(fragment[i]) != Character
+                                       .toLowerCase(name[i + startIndex]))
                                return false;
                return true;
        }
@@ -1111,9 +1346,11 @@ public final class CharOperation {
        /**
         * Answers a hashcode for the array
         * 
-        * @param array the array for which a hashcode is required
+        * @param array
+        *            the array for which a hashcode is required
         * @return the hashcode
-        * @exception NullPointerException if array is null
+        * @exception NullPointerException
+        *                if array is null
         */
        public static final int hashCode(char[] array) {
                int hash = 0;
@@ -1130,66 +1367,83 @@ public final class CharOperation {
                }
                return hash & 0x7FFFFFFF;
        }
+
        /**
-        * Answers true if c is a whitespace according to the JLS (&#92;u000a, &#92;u000c, &#92;u000d, &#92;u0009), otherwise false.
-        * <br>
+        * Answers true if c is a whitespace according to the JLS (&#92;u000a,
+        * &#92;u000c, &#92;u000d, &#92;u0009), otherwise false. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    c = ' '
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     c = ' '
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    c = '&#92;u3000'
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     c = ' \u3000'
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param c the character to check
+        * @param c
+        *            the character to check
         * @return true if c is a whitespace according to the JLS, otherwise false.
         */
        public static boolean isWhitespace(char c) {
                switch (c) {
-                       case 10 : /* \ u000a: LINE FEED               */
-                       case 12 : /* \ u000c: FORM FEED               */
-                       case 13 : /* \ u000d: CARRIAGE RETURN         */
-                       case 32 : /* \ u0020: SPACE                   */
-                       case 9 : /* \ u0009: HORIZONTAL TABULATION   */
-                               return true;
-                       default :
-                               return false;
+               case 10: /* \ u000a: LINE FEED */
+               case 12: /* \ u000c: FORM FEED */
+               case 13: /* \ u000d: CARRIAGE RETURN */
+               case 32: /* \ u0020: SPACE */
+               case 9: /* \ u0009: HORIZONTAL TABULATION */
+                       return true;
+               default:
+                       return false;
                }
        }
-       
+
        /**
-        * Answers the first index in the array for which the corresponding character is
-        * equal to toBeFound. Answers -1 if no occurrence of this character is found.
-        * <br>
+        * Answers the first index in the array for which the corresponding
+        * character is equal to toBeFound. Answers -1 if no occurrence of this
+        * character is found. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    toBeFound = 'c'
-        *    array = { ' a', 'b', 'c', 'd' }
-        *    result => 2
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'c'
+        *     array = { ' a', 'b', 'c', 'd' }
+        *     result =&gt; 2
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = 'e'
-        *    array = { ' a', 'b', 'c', 'd' }
-        *    result => -1
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'e'
+        *     array = { ' a', 'b', 'c', 'd' }
+        *     result =&gt; -1
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param toBeFound the character to search
-        * @param array the array to be searched
-        * @return the first index in the array for which the corresponding character is
-        * equal to toBeFound, -1 otherwise
-        * @exception NullPointerException if array is null
+        * @param toBeFound
+        *            the character to search
+        * @param array
+        *            the array to be searched
+        * @return the first index in the array for which the corresponding
+        *         character is equal to toBeFound, -1 otherwise
+        * @exception NullPointerException
+        *                if array is null
         */
        public static final int indexOf(char toBeFound, char[] array) {
                for (int i = 0; i < array.length; i++)
@@ -1199,43 +1453,56 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the first index in the array for which the corresponding character is
-        * equal to toBeFound starting the search at index start.
-        * Answers -1 if no occurrence of this character is found.
-        * <br>
+        * Answers the first index in the array for which the corresponding
+        * character is equal to toBeFound starting the search at index start.
+        * Answers -1 if no occurrence of this character is found. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    toBeFound = 'c'
-        *    array = { ' a', 'b', 'c', 'd' }
-        *    start = 2
-        *    result => 2
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'c'
+        *     array = { ' a', 'b', 'c', 'd' }
+        *     start = 2
+        *     result =&gt; 2
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = 'c'
-        *    array = { ' a', 'b', 'c', 'd' }
-        *    start = 3
-        *    result => -1
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'c'
+        *     array = { ' a', 'b', 'c', 'd' }
+        *     start = 3
+        *     result =&gt; -1
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = 'e'
-        *    array = { ' a', 'b', 'c', 'd' }
-        *    start = 1
-        *    result => -1
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'e'
+        *     array = { ' a', 'b', 'c', 'd' }
+        *     start = 1
+        *     result =&gt; -1
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param toBeFound the character to search
-        * @param array the array to be searched
-        * @param start the starting index
-        * @return the first index in the array for which the corresponding character is
-        * equal to toBeFound, -1 otherwise
-        * @exception NullPointerException if array is null
-        * @exception ArrayIndexOutOfBoundsException if  start is lower than 0
+        * @param toBeFound
+        *            the character to search
+        * @param array
+        *            the array to be searched
+        * @param start
+        *            the starting index
+        * @return the first index in the array for which the corresponding
+        *         character is equal to toBeFound, -1 otherwise
+        * @exception NullPointerException
+        *                if array is null
+        * @exception ArrayIndexOutOfBoundsException
+        *                if start is lower than 0
         */
        public static final int indexOf(char toBeFound, char[] array, int start) {
                for (int i = start; i < array.length; i++)
@@ -1245,32 +1512,41 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the last index in the array for which the corresponding character is
-        * equal to toBeFound starting from the end of the array.
-        * Answers -1 if no occurrence of this character is found.
-        * <br>
+        * Answers the last index in the array for which the corresponding character
+        * is equal to toBeFound starting from the end of the array. Answers -1 if
+        * no occurrence of this character is found. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    toBeFound = 'c'
-        *    array = { ' a', 'b', 'c', 'd' , 'c', 'e' }
-        *    result => 4
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'c'
+        *     array = { ' a', 'b', 'c', 'd' , 'c', 'e' }
+        *     result =&gt; 4
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = 'e'
-        *    array = { ' a', 'b', 'c', 'd' }
-        *    result => -1
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'e'
+        *     array = { ' a', 'b', 'c', 'd' }
+        *     result =&gt; -1
         * </pre>
+        * 
         * </li>
         * </ol>
-        *
-        * @param toBeFound the character to search
-        * @param array the array to be searched
-        * @return the last index in the array for which the corresponding character is
-        * equal to toBeFound starting from the end of the array, -1 otherwise
-        * @exception NullPointerException if array is null
+        * 
+        * @param toBeFound
+        *            the character to search
+        * @param array
+        *            the array to be searched
+        * @return the last index in the array for which the corresponding character
+        *         is equal to toBeFound starting from the end of the array, -1
+        *         otherwise
+        * @exception NullPointerException
+        *                if array is null
         */
        public static final int lastIndexOf(char toBeFound, char[] array) {
                for (int i = array.length; --i >= 0;)
@@ -1280,48 +1556,60 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the last index in the array for which the corresponding character is
-        * equal to toBeFound stopping at the index startIndex.
-        * Answers -1 if no occurrence of this character is found.
-        * <br>
+        * Answers the last index in the array for which the corresponding character
+        * is equal to toBeFound stopping at the index startIndex. Answers -1 if no
+        * occurrence of this character is found. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    toBeFound = 'c'
-        *    array = { ' a', 'b', 'c', 'd' }
-        *    startIndex = 2
-        *    result => 2
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'c'
+        *     array = { ' a', 'b', 'c', 'd' }
+        *     startIndex = 2
+        *     result =&gt; 2
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = 'c'
-        *    array = { ' a', 'b', 'c', 'd', 'e' }
-        *    startIndex = 3
-        *    result => -1
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'c'
+        *     array = { ' a', 'b', 'c', 'd', 'e' }
+        *     startIndex = 3
+        *     result =&gt; -1
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = 'e'
-        *    array = { ' a', 'b', 'c', 'd' }
-        *    startIndex = 0
-        *    result => -1
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'e'
+        *     array = { ' a', 'b', 'c', 'd' }
+        *     startIndex = 0
+        *     result =&gt; -1
         * </pre>
+        * 
         * </li>
         * </ol>
-        *
-        * @param toBeFound the character to search
-        * @param array the array to be searched
-        * @param startIndex the stopping index
-        * @return the last index in the array for which the corresponding character is
-        * equal to toBeFound stopping at the index startIndex, -1 otherwise
-        * @exception NullPointerException if array is null
-        * @exception ArrayIndexOutOfBoundsException if startIndex is lower than 0
+        * 
+        * @param toBeFound
+        *            the character to search
+        * @param array
+        *            the array to be searched
+        * @param startIndex
+        *            the stopping index
+        * @return the last index in the array for which the corresponding character
+        *         is equal to toBeFound stopping at the index startIndex, -1
+        *         otherwise
+        * @exception NullPointerException
+        *                if array is null
+        * @exception ArrayIndexOutOfBoundsException
+        *                if startIndex is lower than 0
         */
-       public static final int lastIndexOf(
-               char toBeFound,
-               char[] array,
-               int startIndex) {
+       public static final int lastIndexOf(char toBeFound, char[] array,
+                       int startIndex) {
                for (int i = array.length; --i >= startIndex;)
                        if (toBeFound == array[i])
                                return i;
@@ -1329,72 +1617,88 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the last index in the array for which the corresponding character is
-        * equal to toBeFound starting from endIndex to startIndex.
-        * Answers -1 if no occurrence of this character is found.
-        * <br>
+        * Answers the last index in the array for which the corresponding character
+        * is equal to toBeFound starting from endIndex to startIndex. Answers -1 if
+        * no occurrence of this character is found. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    toBeFound = 'c'
-        *    array = { ' a', 'b', 'c', 'd' }
-        *    startIndex = 2
-        *    endIndex = 2
-        *    result => 2
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'c'
+        *     array = { ' a', 'b', 'c', 'd' }
+        *     startIndex = 2
+        *     endIndex = 2
+        *     result =&gt; 2
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = 'c'
-        *    array = { ' a', 'b', 'c', 'd', 'e' }
-        *    startIndex = 3
-        *    endIndex = 4
-        *    result => -1
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'c'
+        *     array = { ' a', 'b', 'c', 'd', 'e' }
+        *     startIndex = 3
+        *     endIndex = 4
+        *     result =&gt; -1
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = 'e'
-        *    array = { ' a', 'b', 'c', 'd' }
-        *    startIndex = 0
-        *    endIndex = 3
-        *    result => -1
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'e'
+        *     array = { ' a', 'b', 'c', 'd' }
+        *     startIndex = 0
+        *     endIndex = 3
+        *     result =&gt; -1
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param toBeFound the character to search
-        * @param array the array to be searched
-        * @param startIndex the stopping index
-        * @param endIndex the starting index
-        * @return the last index in the array for which the corresponding character is
-        * equal to toBeFound starting from endIndex to startIndex, -1 otherwise
-        * @exception NullPointerException if array is null
-        * @exception ArrayIndexOutOfBoundsException if endIndex is greater or equals to array length or starting is lower than 0
+        * @param toBeFound
+        *            the character to search
+        * @param array
+        *            the array to be searched
+        * @param startIndex
+        *            the stopping index
+        * @param endIndex
+        *            the starting index
+        * @return the last index in the array for which the corresponding character
+        *         is equal to toBeFound starting from endIndex to startIndex, -1
+        *         otherwise
+        * @exception NullPointerException
+        *                if array is null
+        * @exception ArrayIndexOutOfBoundsException
+        *                if endIndex is greater or equals to array length or
+        *                starting is lower than 0
         */
-       public static final int lastIndexOf(
-               char toBeFound,
-               char[] array,
-               int startIndex,
-               int endIndex) {
+       public static final int lastIndexOf(char toBeFound, char[] array,
+                       int startIndex, int endIndex) {
                for (int i = endIndex; --i >= startIndex;)
                        if (toBeFound == array[i])
                                return i;
                return -1;
        }
-       
+
        /**
-        * Answers the last portion of a name given a separator.
-        * <br>
+        * Answers the last portion of a name given a separator. <br>
         * <br>
         * For example,
+        * 
         * <pre>
-        *      lastSegment("java.lang.Object".toCharArray(),'.') --> Object
+        *      lastSegment(&quot;java.lang.Object&quot;.toCharArray(),'.') --&gt; Object
         * </pre>
         * 
-        * @param array the array
-        * @param separator the given separator
+        * @param array
+        *            the array
+        * @param separator
+        *            the given separator
         * @return the last portion of a name given a separator
-        * @exception NullPointerException if array is null
+        * @exception NullPointerException
+        *                if array is null
         */
        final static public char[] lastSegment(char[] array, char separator) {
                int pos = lastIndexOf(separator, array);
@@ -1404,117 +1708,130 @@ public final class CharOperation {
        }
 
        /**
-        * Answers true if the pattern matches the given name, false otherwise. This char[] pattern matching
-        * accepts wild-cards '*' and '?'.
-        *
-        * When not case sensitive, the pattern is assumed to already be lowercased, the
-        * name will be lowercased character per character as comparing.
-        * If name is null, the answer is false.
-        * If pattern is null, the answer is true if name is not null.
-        * <br>
+        * Answers true if the pattern matches the given name, false otherwise. This
+        * char[] pattern matching accepts wild-cards '*' and '?'.
+        * 
+        * When not case sensitive, the pattern is assumed to already be lowercased,
+        * the name will be lowercased character per character as comparing. If name
+        * is null, the answer is false. If pattern is null, the answer is true if
+        * name is not null. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    pattern = { '?', 'b', '*' }
-        *    name = { 'a', 'b', 'c' , 'd' }
-        *    isCaseSensitive = true
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     pattern = { '?', 'b', '*' }
+        *     name = { 'a', 'b', 'c' , 'd' }
+        *     isCaseSensitive = true
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    pattern = { '?', 'b', '?' }
-        *    name = { 'a', 'b', 'c' , 'd' }
-        *    isCaseSensitive = true
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     pattern = { '?', 'b', '?' }
+        *     name = { 'a', 'b', 'c' , 'd' }
+        *     isCaseSensitive = true
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    pattern = { 'b', '*' }
-        *    name = { 'a', 'b', 'c' , 'd' }
-        *    isCaseSensitive = true
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     pattern = { 'b', '*' }
+        *     name = { 'a', 'b', 'c' , 'd' }
+        *     isCaseSensitive = true
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param pattern the given pattern
-        * @param name the given name
-        * @param isCaseSensitive flag to know whether or not the matching should be case sensitive
+        * @param pattern
+        *            the given pattern
+        * @param name
+        *            the given name
+        * @param isCaseSensitive
+        *            flag to know whether or not the matching should be case
+        *            sensitive
         * @return true if the pattern matches the given name, false otherwise
         */
-       public static final boolean match(
-               char[] pattern,
-               char[] name,
-               boolean isCaseSensitive) {
+       public static final boolean match(char[] pattern, char[] name,
+                       boolean isCaseSensitive) {
 
                if (name == null)
                        return false; // null name cannot match
                if (pattern == null)
                        return true; // null pattern is equivalent to '*'
 
-               return match(
-                       pattern,
-                       0,
-                       pattern.length,
-                       name,
-                       0,
-                       name.length,
-                       isCaseSensitive);
+               return match(pattern, 0, pattern.length, name, 0, name.length,
+                               isCaseSensitive);
        }
 
        /**
-        * Answers true if the a sub-pattern matches the subpart of the given name, false otherwise.
-        * char[] pattern matching, accepting wild-cards '*' and '?'. Can match only subset of name/pattern.
-        * end positions are non-inclusive.
-        * The subpattern is defined by the patternStart and pattternEnd positions.
-        * When not case sensitive, the pattern is assumed to already be lowercased, the
-        * name will be lowercased character per character as comparing.
-        * <br>
+        * Answers true if the a sub-pattern matches the subpart of the given name,
+        * false otherwise. char[] pattern matching, accepting wild-cards '*' and
+        * '?'. Can match only subset of name/pattern. end positions are
+        * non-inclusive. The subpattern is defined by the patternStart and
+        * pattternEnd positions. When not case sensitive, the pattern is assumed to
+        * already be lowercased, the name will be lowercased character per
+        * character as comparing. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    pattern = { '?', 'b', '*' }
-        *    patternStart = 1
-        *    patternEnd = 3
-        *    name = { 'a', 'b', 'c' , 'd' }
-        *    nameStart = 1
-        *    nameEnd = 4
-        *    isCaseSensitive = true
-        *    result => true
-        * </pre>
-        * </li>
-        * <li><pre>
-        *    pattern = { '?', 'b', '*' }
-        *    patternStart = 1
-        *    patternEnd = 2
-        *    name = { 'a', 'b', 'c' , 'd' }
-        *    nameStart = 1
-        *    nameEnd = 2
-        *    isCaseSensitive = true
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     pattern = { '?', 'b', '*' }
+        *     patternStart = 1
+        *     patternEnd = 3
+        *     name = { 'a', 'b', 'c' , 'd' }
+        *     nameStart = 1
+        *     nameEnd = 4
+        *     isCaseSensitive = true
+        *     result =&gt; true
         * </pre>
+        * 
+        * </li>
+        * <li>
+        * 
+        * <pre>
+        *     pattern = { '?', 'b', '*' }
+        *     patternStart = 1
+        *     patternEnd = 2
+        *     name = { 'a', 'b', 'c' , 'd' }
+        *     nameStart = 1
+        *     nameEnd = 2
+        *     isCaseSensitive = true
+        *     result =&gt; false
+        * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param pattern the given pattern
-        * @param patternStart the given pattern start
-        * @param patternEnd the given pattern end
-        * @param name the given name
-        * @param nameStart the given name start
-        * @param nameEnd the given name end
-        * @param isCaseSensitive flag to know if the matching should be case sensitive
-        * @return true if the a sub-pattern matches the subpart of the given name, false otherwise
+        * @param pattern
+        *            the given pattern
+        * @param patternStart
+        *            the given pattern start
+        * @param patternEnd
+        *            the given pattern end
+        * @param name
+        *            the given name
+        * @param nameStart
+        *            the given name start
+        * @param nameEnd
+        *            the given name end
+        * @param isCaseSensitive
+        *            flag to know if the matching should be case sensitive
+        * @return true if the a sub-pattern matches the subpart of the given name,
+        *         false otherwise
         */
-       public static final boolean match(
-               char[] pattern,
-               int patternStart,
-               int patternEnd,
-               char[] name,
-               int nameStart,
-               int nameEnd,
-               boolean isCaseSensitive) {
+       public static final boolean match(char[] pattern, int patternStart,
+                       int patternEnd, char[] name, int nameStart, int nameEnd,
+                       boolean isCaseSensitive) {
 
                if (name == null)
                        return false; // null name cannot match
@@ -1531,14 +1848,12 @@ public final class CharOperation {
                /* check first segment */
                char patternChar = 0;
                while ((iPattern < patternEnd)
-                       && (patternChar = pattern[iPattern]) != '*') {
+                               && (patternChar = pattern[iPattern]) != '*') {
                        if (iName == nameEnd)
                                return false;
-                       if (patternChar
-                               != (isCaseSensitive
-                                       ? name[iName]
-                                       : Character.toLowerCase(name[iName]))
-                               && patternChar != '?') {
+                       if (patternChar != (isCaseSensitive ? name[iName] : Character
+                                       .toLowerCase(name[iName]))
+                                       && patternChar != '?') {
                                return false;
                        }
                        iName++;
@@ -1552,9 +1867,10 @@ public final class CharOperation {
                        segmentStart = 0; // force iName check
                }
                int prefixStart = iName;
-               checkSegment : while (iName < nameEnd) {
+               checkSegment: while (iName < nameEnd) {
                        if (iPattern == patternEnd) {
-                               iPattern = segmentStart; // mismatch - restart current segment
+                               iPattern = segmentStart; // mismatch - restart current
+                                                                                       // segment
                                iName = ++prefixStart;
                                continue checkSegment;
                        }
@@ -1568,10 +1884,11 @@ public final class CharOperation {
                                continue checkSegment;
                        }
                        /* check current name character */
-                       if ((isCaseSensitive ? name[iName] : Character.toLowerCase(name[iName]))
-                                               != patternChar
+                       if ((isCaseSensitive ? name[iName] : Character
+                                       .toLowerCase(name[iName])) != patternChar
                                        && patternChar != '?') {
-                               iPattern = segmentStart; // mismatch - restart current segment
+                               iPattern = segmentStart; // mismatch - restart current
+                                                                                       // segment
                                iName = ++prefixStart;
                                continue checkSegment;
                        }
@@ -1580,34 +1897,37 @@ public final class CharOperation {
                }
 
                return (segmentStart == patternEnd)
-                       || (iName == nameEnd && iPattern == patternEnd)
-                       || (iPattern == patternEnd - 1 && pattern[iPattern] == '*');
+                               || (iName == nameEnd && iPattern == patternEnd)
+                               || (iPattern == patternEnd - 1 && pattern[iPattern] == '*');
        }
 
        /**
-        * Answers true if the pattern matches the filepath using the pathSepatator, false otherwise.
-        * 
-        * Path char[] pattern matching, accepting wild-cards '**', '*' and '?' (using Ant directory tasks
-        * conventions, also see "http://jakarta.apache.org/ant/manual/dirtasks.html#defaultexcludes").
-        * Path pattern matching is enhancing regular pattern matching in supporting extra rule where '**' represent
-        * any folder combination.
-        * Special rules: 
-        * - foo\  is equivalent to foo\**   
-        * - *.php is equivalent to **\*.php
-        * When not case sensitive, the pattern is assumed to already be lowercased, the
-        * name will be lowercased character per character as comparing.
-        * 
-        * @param pattern the given pattern
-        * @param filepath the given path
-        * @param isCaseSensitive to find out whether or not the matching should be case sensitive
-        * @param pathSeparator the given path separator
-        * @return true if the pattern matches the filepath using the pathSepatator, false otherwise
+        * Answers true if the pattern matches the filepath using the pathSepatator,
+        * false otherwise.
+        * 
+        * Path char[] pattern matching, accepting wild-cards '**', '*' and '?'
+        * (using Ant directory tasks conventions, also see
+        * "http://jakarta.apache.org/ant/manual/dirtasks.html#defaultexcludes").
+        * Path pattern matching is enhancing regular pattern matching in supporting
+        * extra rule where '**' represent any folder combination. Special rules: -
+        * foo\ is equivalent to foo\** - *.php is equivalent to **\*.php When not
+        * case sensitive, the pattern is assumed to already be lowercased, the name
+        * will be lowercased character per character as comparing.
+        * 
+        * @param pattern
+        *            the given pattern
+        * @param filepath
+        *            the given path
+        * @param isCaseSensitive
+        *            to find out whether or not the matching should be case
+        *            sensitive
+        * @param pathSeparator
+        *            the given path separator
+        * @return true if the pattern matches the filepath using the pathSepatator,
+        *         false otherwise
         */
-       public static final boolean pathMatch(
-               char[] pattern,
-               char[] filepath,
-               boolean isCaseSensitive,
-               char pathSeparator) {
+       public static final boolean pathMatch(char[] pattern, char[] filepath,
+                       boolean isCaseSensitive, char pathSeparator) {
 
                if (filepath == null)
                        return false; // null name cannot match
@@ -1620,20 +1940,22 @@ public final class CharOperation {
                // offsets inside pattern
                int pSegmentStart, pLength = pattern.length;
 
-               if (freeLeadingDoubleStar = pattern[0] != pathSeparator){
+               if (freeLeadingDoubleStar = pattern[0] != pathSeparator) {
                        pSegmentStart = 0;
                } else {
                        pSegmentStart = 1;
                }
-               int pSegmentEnd = CharOperation.indexOf(pathSeparator, pattern, pSegmentStart+1);
-               if (pSegmentEnd < 0) pSegmentEnd = pLength;
+               int pSegmentEnd = CharOperation.indexOf(pathSeparator, pattern,
+                               pSegmentStart + 1);
+               if (pSegmentEnd < 0)
+                       pSegmentEnd = pLength;
 
                // special case: pattern foo\ is equivalent to foo\**
                boolean freeTrailingDoubleStar = pattern[pLength - 1] == pathSeparator;
 
                // offsets inside filepath
                int fSegmentStart, fLength = filepath.length;
-               if (filepath[0] != pathSeparator){
+               if (filepath[0] != pathSeparator) {
                        fSegmentStart = 0;
                } else {
                        fSegmentStart = 1;
@@ -1641,145 +1963,125 @@ public final class CharOperation {
                if (fSegmentStart != pSegmentStart) {
                        return false; // both must start with a separator or none.
                }
-               int fSegmentEnd = CharOperation.indexOf(pathSeparator, filepath, fSegmentStart+1);
-               if (fSegmentEnd < 0) fSegmentEnd = fLength;
+               int fSegmentEnd = CharOperation.indexOf(pathSeparator, filepath,
+                               fSegmentStart + 1);
+               if (fSegmentEnd < 0)
+                       fSegmentEnd = fLength;
 
                // first segments
                while (pSegmentStart < pLength
-                       && !freeLeadingDoubleStar
-                       && !(pSegmentEnd == pLength && freeTrailingDoubleStar
-                                       || (pSegmentEnd == pSegmentStart + 2
-                                                       && pattern[pSegmentStart] == '*'
-                                                       && pattern[pSegmentStart + 1] == '*'))) {
+                               && !freeLeadingDoubleStar
+                               && !(pSegmentEnd == pLength && freeTrailingDoubleStar || (pSegmentEnd == pSegmentStart + 2
+                                               && pattern[pSegmentStart] == '*' && pattern[pSegmentStart + 1] == '*'))) {
 
                        if (fSegmentStart >= fLength)
                                return false;
-                       if (!CharOperation
-                               .match(
-                                       pattern,
-                                       pSegmentStart,
-                                       pSegmentEnd,
-                                       filepath,
-                                       fSegmentStart,
-                                       fSegmentEnd,
-                                       isCaseSensitive)) {
+                       if (!CharOperation.match(pattern, pSegmentStart, pSegmentEnd,
+                                       filepath, fSegmentStart, fSegmentEnd, isCaseSensitive)) {
                                return false;
                        }
 
-                       // jump to next segment         
-                       pSegmentEnd =
-                               CharOperation.indexOf(
-                                       pathSeparator,
-                                       pattern,
+                       // jump to next segment
+                       pSegmentEnd = CharOperation.indexOf(pathSeparator, pattern,
                                        pSegmentStart = pSegmentEnd + 1);
                        // skip separator
                        if (pSegmentEnd < 0)
                                pSegmentEnd = pLength;
 
-                       fSegmentEnd =
-                               CharOperation.indexOf(
-                                       pathSeparator,
-                                       filepath,
+                       fSegmentEnd = CharOperation.indexOf(pathSeparator, filepath,
                                        fSegmentStart = fSegmentEnd + 1);
                        // skip separator
-                       if (fSegmentEnd < 0) fSegmentEnd = fLength;
+                       if (fSegmentEnd < 0)
+                               fSegmentEnd = fLength;
                }
 
                /* check sequence of doubleStar+segment */
                int pSegmentRestart;
                if ((pSegmentStart >= pLength && freeTrailingDoubleStar)
                                || (pSegmentEnd == pSegmentStart + 2
-                                       && pattern[pSegmentStart] == '*'
-                                       && pattern[pSegmentStart + 1] == '*')) {
-                       pSegmentEnd =
-                               CharOperation.indexOf(
-                                       pathSeparator,
-                                       pattern,
+                                               && pattern[pSegmentStart] == '*' && pattern[pSegmentStart + 1] == '*')) {
+                       pSegmentEnd = CharOperation.indexOf(pathSeparator, pattern,
                                        pSegmentStart = pSegmentEnd + 1);
                        // skip separator
-                       if (pSegmentEnd < 0) pSegmentEnd = pLength;
+                       if (pSegmentEnd < 0)
+                               pSegmentEnd = pLength;
                        pSegmentRestart = pSegmentStart;
                } else {
                        pSegmentRestart = 0; // force fSegmentStart check
                }
                int fSegmentRestart = fSegmentStart;
-               checkSegment : while (fSegmentStart < fLength) {
-                               
+               checkSegment: while (fSegmentStart < fLength) {
+
                        if (pSegmentStart >= pLength) {
-                               if (freeTrailingDoubleStar) return true;
+                               if (freeTrailingDoubleStar)
+                                       return true;
                                // mismatch - restart current path segment
-                               pSegmentEnd =
-                                       CharOperation.indexOf(pathSeparator, pattern, pSegmentStart = pSegmentRestart);
-                               if (pSegmentEnd < 0) pSegmentEnd = pLength;
+                               pSegmentEnd = CharOperation.indexOf(pathSeparator, pattern,
+                                               pSegmentStart = pSegmentRestart);
+                               if (pSegmentEnd < 0)
+                                       pSegmentEnd = pLength;
 
-                               fSegmentRestart = 
-                                       CharOperation.indexOf(pathSeparator, filepath, fSegmentRestart + 1);
+                               fSegmentRestart = CharOperation.indexOf(pathSeparator,
+                                               filepath, fSegmentRestart + 1);
                                // skip separator
                                if (fSegmentRestart < 0) {
                                        fSegmentRestart = fLength;
                                } else {
                                        fSegmentRestart++;
                                }
-                               fSegmentEnd =
-                                       CharOperation.indexOf(pathSeparator, filepath, fSegmentStart = fSegmentRestart);
-                               if (fSegmentEnd < 0) fSegmentEnd = fLength;
+                               fSegmentEnd = CharOperation.indexOf(pathSeparator, filepath,
+                                               fSegmentStart = fSegmentRestart);
+                               if (fSegmentEnd < 0)
+                                       fSegmentEnd = fLength;
                                continue checkSegment;
                        }
-                       
+
                        /* path segment is ending */
                        if (pSegmentEnd == pSegmentStart + 2
-                               && pattern[pSegmentStart] == '*'
-                               && pattern[pSegmentStart + 1] == '*') {
-                               pSegmentEnd =
-                                       CharOperation.indexOf(pathSeparator, pattern, pSegmentStart = pSegmentEnd + 1);
+                                       && pattern[pSegmentStart] == '*'
+                                       && pattern[pSegmentStart + 1] == '*') {
+                               pSegmentEnd = CharOperation.indexOf(pathSeparator, pattern,
+                                               pSegmentStart = pSegmentEnd + 1);
                                // skip separator
-                               if (pSegmentEnd < 0) pSegmentEnd = pLength;
+                               if (pSegmentEnd < 0)
+                                       pSegmentEnd = pLength;
                                pSegmentRestart = pSegmentStart;
                                fSegmentRestart = fSegmentStart;
-                               if (pSegmentStart >= pLength) return true;
+                               if (pSegmentStart >= pLength)
+                                       return true;
                                continue checkSegment;
                        }
                        /* chech current path segment */
-                       if (!CharOperation.match(
-                                                               pattern,
-                                                               pSegmentStart,
-                                                               pSegmentEnd,
-                                                               filepath,
-                                                               fSegmentStart,
-                                                               fSegmentEnd,
-                                                               isCaseSensitive)) {
+                       if (!CharOperation.match(pattern, pSegmentStart, pSegmentEnd,
+                                       filepath, fSegmentStart, fSegmentEnd, isCaseSensitive)) {
                                // mismatch - restart current path segment
-                               pSegmentEnd =
-                                       CharOperation.indexOf(pathSeparator, pattern, pSegmentStart = pSegmentRestart);
-                               if (pSegmentEnd < 0) pSegmentEnd = pLength;
+                               pSegmentEnd = CharOperation.indexOf(pathSeparator, pattern,
+                                               pSegmentStart = pSegmentRestart);
+                               if (pSegmentEnd < 0)
+                                       pSegmentEnd = pLength;
 
-                               fSegmentRestart = 
-                                       CharOperation.indexOf(pathSeparator, filepath, fSegmentRestart + 1);
+                               fSegmentRestart = CharOperation.indexOf(pathSeparator,
+                                               filepath, fSegmentRestart + 1);
                                // skip separator
                                if (fSegmentRestart < 0) {
                                        fSegmentRestart = fLength;
                                } else {
                                        fSegmentRestart++;
                                }
-                               fSegmentEnd =
-                                       CharOperation.indexOf(pathSeparator, filepath, fSegmentStart = fSegmentRestart);
-                               if (fSegmentEnd < 0) fSegmentEnd = fLength;
+                               fSegmentEnd = CharOperation.indexOf(pathSeparator, filepath,
+                                               fSegmentStart = fSegmentRestart);
+                               if (fSegmentEnd < 0)
+                                       fSegmentEnd = fLength;
                                continue checkSegment;
                        }
-                       // jump to next segment         
-                       pSegmentEnd =
-                               CharOperation.indexOf(
-                                       pathSeparator,
-                                       pattern,
+                       // jump to next segment
+                       pSegmentEnd = CharOperation.indexOf(pathSeparator, pattern,
                                        pSegmentStart = pSegmentEnd + 1);
                        // skip separator
                        if (pSegmentEnd < 0)
                                pSegmentEnd = pLength;
 
-                       fSegmentEnd =
-                               CharOperation.indexOf(
-                                       pathSeparator,
-                                       filepath,
+                       fSegmentEnd = CharOperation.indexOf(pathSeparator, filepath,
                                        fSegmentStart = fSegmentEnd + 1);
                        // skip separator
                        if (fSegmentEnd < 0)
@@ -1787,38 +2089,48 @@ public final class CharOperation {
                }
 
                return (pSegmentRestart >= pSegmentEnd)
-                       || (fSegmentStart >= fLength && pSegmentStart >= pLength)
-                       || (pSegmentStart == pLength - 2
-                               && pattern[pSegmentStart] == '*'
-                               && pattern[pSegmentStart + 1] == '*')
-                       || (pSegmentStart == pLength && freeTrailingDoubleStar);
+                               || (fSegmentStart >= fLength && pSegmentStart >= pLength)
+                               || (pSegmentStart == pLength - 2
+                                               && pattern[pSegmentStart] == '*' && pattern[pSegmentStart + 1] == '*')
+                               || (pSegmentStart == pLength && freeTrailingDoubleStar);
        }
 
        /**
-        * Answers the number of occurrences of the given character in the given array, 0 if any.
+        * Answers the number of occurrences of the given character in the given
+        * array, 0 if any.
         * 
         * <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    toBeFound = 'b'
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    result => 3
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'b'
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; 3
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = 'c'
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    result => 0
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'c'
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; 0
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param toBeFound the given character
-        * @param array the given array
-        * @return the number of occurrences of the given character in the given array, 0 if any
-        * @exception NullPointerException if array is null
+        * @param toBeFound
+        *            the given character
+        * @param array
+        *            the given array
+        * @return the number of occurrences of the given character in the given
+        *         array, 0 if any
+        * @exception NullPointerException
+        *                if array is null
         */
        public static final int occurencesOf(char toBeFound, char[] array) {
                int count = 0;
@@ -1829,39 +2141,47 @@ public final class CharOperation {
        }
 
        /**
-        * Answers the number of occurrences of the given character in the given array starting
-        * at the given index, 0 if any.
+        * Answers the number of occurrences of the given character in the given
+        * array starting at the given index, 0 if any.
         * 
         * <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    toBeFound = 'b'
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    start = 2
-        *    result => 2
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'b'
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     start = 2
+        *     result =&gt; 2
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = 'c'
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    start = 0
-        *    result => 0
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = 'c'
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     start = 0
+        *     result =&gt; 0
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param toBeFound the given character
-        * @param array the given array
-        * @return the number of occurrences of the given character in the given array, 0 if any
-        * @exception NullPointerException if array is null
-        * @exception ArrayIndexOutOfBoundsException if start is lower than 0
+        * @param toBeFound
+        *            the given character
+        * @param array
+        *            the given array
+        * @return the number of occurrences of the given character in the given
+        *         array, 0 if any
+        * @exception NullPointerException
+        *                if array is null
+        * @exception ArrayIndexOutOfBoundsException
+        *                if start is lower than 0
         */
-       public static final int occurencesOf(
-               char toBeFound,
-               char[] array,
-               int start) {
+       public static final int occurencesOf(char toBeFound, char[] array, int start) {
                int count = 0;
                for (int i = start; i < array.length; i++)
                        if (toBeFound == array[i])
@@ -1870,131 +2190,154 @@ public final class CharOperation {
        }
 
        /**
-        * Answers true if the given name starts with the given prefix, false otherwise.
-        * The comparison is case sensitive.
-        * <br>
+        * Answers true if the given name starts with the given prefix, false
+        * otherwise. The comparison is case sensitive. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    prefix = { 'a' , 'b' }
-        *    name = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     prefix = { 'a' , 'b' }
+        *     name = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    prefix = { 'a' , 'c' }
-        *    name = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     prefix = { 'a' , 'c' }
+        *     name = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param prefix the given prefix
-        * @param name the given name
-        * @return true if the given name starts with the given prefix, false otherwise
-        * @exception NullPointerException if the given name is null or if the given prefix is null
+        * @param prefix
+        *            the given prefix
+        * @param name
+        *            the given name
+        * @return true if the given name starts with the given prefix, false
+        *         otherwise
+        * @exception NullPointerException
+        *                if the given name is null or if the given prefix is null
         */
        public static final boolean prefixEquals(char[] prefix, char[] name) {
 
                int max = prefix.length;
                if (name.length < max)
                        return false;
-               for (int i = max;
-                       --i >= 0;
-                       ) // assumes the prefix is not larger than the name
+               for (int i = max; --i >= 0;)
+                       // assumes the prefix is not larger than the name
                        if (prefix[i] != name[i])
                                return false;
                return true;
        }
 
        /**
-        * Answers true if the given name starts with the given prefix, false otherwise.
-        * isCaseSensitive is used to find out whether or not the comparison should be case sensitive.
-        * <br>
+        * Answers true if the given name starts with the given prefix, false
+        * otherwise. isCaseSensitive is used to find out whether or not the
+        * comparison should be case sensitive. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    prefix = { 'a' , 'B' }
-        *    name = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    isCaseSensitive = false
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     prefix = { 'a' , 'B' }
+        *     name = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     isCaseSensitive = false
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    prefix = { 'a' , 'B' }
-        *    name = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    isCaseSensitive = true
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     prefix = { 'a' , 'B' }
+        *     name = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     isCaseSensitive = true
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param prefix the given prefix
-        * @param name the given name
-        * @param isCaseSensitive to find out whether or not the comparison should be case sensitive
-        * @return true if the given name starts with the given prefix, false otherwise
-        * @exception NullPointerException if the given name is null or if the given prefix is null
+        * @param prefix
+        *            the given prefix
+        * @param name
+        *            the given name
+        * @param isCaseSensitive
+        *            to find out whether or not the comparison should be case
+        *            sensitive
+        * @return true if the given name starts with the given prefix, false
+        *         otherwise
+        * @exception NullPointerException
+        *                if the given name is null or if the given prefix is null
         */
-       public static final boolean prefixEquals(
-               char[] prefix,
-               char[] name,
-               boolean isCaseSensitive) {
+       public static final boolean prefixEquals(char[] prefix, char[] name,
+                       boolean isCaseSensitive) {
 
                int max = prefix.length;
                if (name.length < max)
                        return false;
                if (isCaseSensitive) {
-                       for (int i = max;
-                               --i >= 0;
-                               ) // assumes the prefix is not larger than the name
+                       for (int i = max; --i >= 0;)
+                               // assumes the prefix is not larger than the name
                                if (prefix[i] != name[i])
                                        return false;
                        return true;
                }
 
-               for (int i = max;
-                       --i >= 0;
-                       ) // assumes the prefix is not larger than the name
-                       if (Character.toLowerCase(prefix[i])
-                               != Character.toLowerCase(name[i]))
+               for (int i = max; --i >= 0;)
+                       // assumes the prefix is not larger than the name
+                       if (Character.toLowerCase(prefix[i]) != Character
+                                       .toLowerCase(name[i]))
                                return false;
                return true;
        }
 
        /**
-        * Replace all occurrence of the character to be replaced with the remplacement character in the
-        * given array.
-        * <br>
+        * Replace all occurrence of the character to be replaced with the
+        * remplacement character in the given array. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    toBeReplaced = 'b'
-        *    replacementChar = 'a'
-        *    result => No returned value, but array is now equals to { 'a' , 'a', 'a', 'a', 'a', 'a' }
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     toBeReplaced = 'b'
+        *     replacementChar = 'a'
+        *     result =&gt; No returned value, but array is now equals to { 'a' , 'a', 'a', 'a', 'a', 'a' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    toBeReplaced = 'c'
-        *    replacementChar = 'a'
-        *    result => No returned value, but array is now equals to { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     toBeReplaced = 'c'
+        *     replacementChar = 'a'
+        *     result =&gt; No returned value, but array is now equals to { 'a' , 'b', 'b', 'a', 'b', 'a' }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param array the given array
-        * @param toBeReplaced the character to be replaced
-        * @param replacementChar the replacement character
-        * @exception NullPointerException if the given array is null
+        * @param array
+        *            the given array
+        * @param toBeReplaced
+        *            the character to be replaced
+        * @param replacementChar
+        *            the replacement character
+        * @exception NullPointerException
+        *                if the given array is null
         */
-       public static final void replace(
-               char[] array,
-               char toBeReplaced,
-               char replacementChar) {
+       public static final void replace(char[] array, char toBeReplaced,
+                       char replacementChar) {
                if (toBeReplaced != replacementChar) {
                        for (int i = 0, max = array.length; i < max; i++) {
                                if (array[i] == toBeReplaced)
@@ -2004,39 +2347,47 @@ public final class CharOperation {
        }
 
        /**
-        * Answers a new array of characters with substitutions. No side-effect is operated on the original
-        * array, in case no substitution happened, then the result is the same as the
-        * original one.
-        * <br>
+        * Answers a new array of characters with substitutions. No side-effect is
+        * operated on the original array, in case no substitution happened, then
+        * the result is the same as the original one. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    toBeReplaced = { 'b' }
-        *    replacementChar = { 'a', 'a' }
-        *    result => { 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a' }
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     toBeReplaced = { 'b' }
+        *     replacementChar = { 'a', 'a' }
+        *     result =&gt; { 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    toBeReplaced = { 'c' }
-        *    replacementChar = { 'a' }
-        *    result => { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     toBeReplaced = { 'c' }
+        *     replacementChar = { 'a' }
+        *     result =&gt; { 'a' , 'b', 'b', 'a', 'b', 'a' }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param the given array
-        * @param toBeReplaced characters to be replaced
-        * @param the replacement characters
-        * @return a new array of characters with substitutions or the given array if none
-        * @exception NullPointerException if the given array is null
+        * @param the
+        *            given array
+        * @param toBeReplaced
+        *            characters to be replaced
+        * @param the
+        *            replacement characters
+        * @return a new array of characters with substitutions or the given array
+        *         if none
+        * @exception NullPointerException
+        *                if the given array is null
         */
-       public static final char[] replace(
-               char[] array,
-               char[] toBeReplaced,
-               char[] replacementChars) {
+       public static final char[] replace(char[] array, char[] toBeReplaced,
+                       char[] replacementChars) {
 
                int max = array.length;
                int replacedLength = toBeReplaced.length;
@@ -2047,7 +2398,7 @@ public final class CharOperation {
 
                if (!equals(toBeReplaced, replacementChars)) {
 
-                       next : for (int i = 0; i < max; i++) {
+                       next: for (int i = 0; i < max; i++) {
                                int j = 0;
                                while (j < replacedLength) {
                                        if (i + j == max)
@@ -2056,33 +2407,25 @@ public final class CharOperation {
                                                continue next;
                                }
                                if (occurrenceCount == starts.length) {
-                                       System.arraycopy(
-                                               starts,
-                                               0,
-                                               starts = new int[occurrenceCount * 2],
-                                               0,
-                                               occurrenceCount);
+                                       System.arraycopy(starts, 0,
+                                                       starts = new int[occurrenceCount * 2], 0,
+                                                       occurrenceCount);
                                }
                                starts[occurrenceCount++] = i;
                        }
                }
                if (occurrenceCount == 0)
                        return array;
-               char[] result =
-                       new char[max
-                               + occurrenceCount * (replacementLength - replacedLength)];
+               char[] result = new char[max + occurrenceCount
+                               * (replacementLength - replacedLength)];
                int inStart = 0, outStart = 0;
                for (int i = 0; i < occurrenceCount; i++) {
                        int offset = starts[i] - inStart;
                        System.arraycopy(array, inStart, result, outStart, offset);
                        inStart += offset;
                        outStart += offset;
-                       System.arraycopy(
-                               replacementChars,
-                               0,
-                               result,
-                               outStart,
-                               replacementLength);
+                       System.arraycopy(replacementChars, 0, result, outStart,
+                                       replacementLength);
                        inStart += replacedLength;
                        outStart += replacementLength;
                }
@@ -2091,42 +2434,56 @@ public final class CharOperation {
        }
 
        /**
-        * Return a new array which is the split of the given array using the given divider and triming each subarray to remove
-        * whitespaces equals to ' '.
+        * Return a new array which is the split of the given array using the given
+        * divider and triming each subarray to remove whitespaces equals to ' '.
         * <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    divider = 'b'
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    result => { { 'a' }, {  }, { 'a' }, { 'a' } }
+        * <li>
+        * 
+        * <pre>
+        *     divider = 'b'
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; { { 'a' }, {  }, { 'a' }, { 'a' } }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    divider = 'c'
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    result => { { 'a', 'b', 'b', 'a', 'b', 'a' } }
+        * <li>
+        * 
+        * <pre>
+        *     divider = 'c'
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; { { 'a', 'b', 'b', 'a', 'b', 'a' } }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    divider = 'b'
-        *    array = { 'a' , ' ', 'b', 'b', 'a', 'b', 'a' }
-        *    result => { { 'a' }, {  }, { 'a' }, { 'a' } }
+        * <li>
+        * 
+        * <pre>
+        *     divider = 'b'
+        *     array = { 'a' , ' ', 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; { { 'a' }, {  }, { 'a' }, { 'a' } }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    divider = 'c'
-        *    array = { ' ', ' ', 'a' , 'b', 'b', 'a', 'b', 'a', ' ' }
-        *    result => { { 'a', 'b', 'b', 'a', 'b', 'a' } }
+        * <li>
+        * 
+        * <pre>
+        *     divider = 'c'
+        *     array = { ' ', ' ', 'a' , 'b', 'b', 'a', 'b', 'a', ' ' }
+        *     result =&gt; { { 'a', 'b', 'b', 'a', 'b', 'a' } }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param divider the given divider
-        * @param array the given array
-        * @return a new array which is the split of the given array using the given divider and triming each subarray to remove
-        * whitespaces equals to ' '
+        * @param divider
+        *            the given divider
+        * @param array
+        *            the given array
+        * @return a new array which is the split of the given array using the given
+        *         divider and triming each subarray to remove whitespaces equals to ' '
         */
        public static final char[][] splitAndTrimOn(char divider, char[] array) {
                int length = array == null ? 0 : array.length;
@@ -2147,12 +2504,8 @@ public final class CharOperation {
                                while (end > start && array[end] == ' ')
                                        end--;
                                split[currentWord] = new char[end - start + 1];
-                               System.arraycopy(
-                                       array,
-                                       start,
-                                       split[currentWord++],
-                                       0,
-                                       end - start + 1);
+                               System.arraycopy(array, start, split[currentWord++], 0, end
+                                               - start + 1);
                                last = i + 1;
                        }
                }
@@ -2162,44 +2515,53 @@ public final class CharOperation {
                while (end > start && array[end] == ' ')
                        end--;
                split[currentWord] = new char[end - start + 1];
-               System.arraycopy(
-                       array,
-                       start,
-                       split[currentWord++],
-                       0,
-                       end - start + 1);
+               System
+                               .arraycopy(array, start, split[currentWord++], 0, end - start
+                                               + 1);
                return split;
        }
 
        /**
-        * Return a new array which is the split of the given array using the given divider.
-        * <br>
+        * Return a new array which is the split of the given array using the given
+        * divider. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    divider = 'b'
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    result => { { 'a' }, {  }, { 'a' }, { 'a' } }
+        * <li>
+        * 
+        * <pre>
+        *     divider = 'b'
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; { { 'a' }, {  }, { 'a' }, { 'a' } }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    divider = 'c'
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    result => { { 'a', 'b', 'b', 'a', 'b', 'a' } }
+        * <li>
+        * 
+        * <pre>
+        *     divider = 'c'
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; { { 'a', 'b', 'b', 'a', 'b', 'a' } }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    divider = 'c'
-        *    array = { ' ', ' ', 'a' , 'b', 'b', 'a', 'b', 'a', ' ' }
-        *    result => { { ' ', 'a', 'b', 'b', 'a', 'b', 'a', ' ' } }
+        * <li>
+        * 
+        * <pre>
+        *     divider = 'c'
+        *     array = { ' ', ' ', 'a' , 'b', 'b', 'a', 'b', 'a', ' ' }
+        *     result =&gt; { { ' ', 'a', 'b', 'b', 'a', 'b', 'a', ' ' } }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param divider the given divider
-        * @param array the given array
-        * @return a new array which is the split of the given array using the given divider
+        * @param divider
+        *            the given divider
+        * @param array
+        *            the given array
+        * @return a new array which is the split of the given array using the given
+        *         divider
         */
        public static final char[][] splitOn(char divider, char[] array) {
                int length = array == null ? 0 : array.length;
@@ -2215,12 +2577,9 @@ public final class CharOperation {
                for (int i = 0; i < length; i++) {
                        if (array[i] == divider) {
                                split[currentWord] = new char[i - last];
-                               System.arraycopy(
-                                       array,
-                                       last,
-                                       split[currentWord++],
-                                       0,
-                                       i - last);
+                               System
+                                               .arraycopy(array, last, split[currentWord++], 0, i
+                                                               - last);
                                last = i + 1;
                        }
                }
@@ -2230,34 +2589,41 @@ public final class CharOperation {
        }
 
        /**
-        * Return a new array which is the split of the given array using the given divider. The given end 
-        * is exclusive and the given start is inclusive.
+        * Return a new array which is the split of the given array using the given
+        * divider. The given end is exclusive and the given start is inclusive.
         * <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    divider = 'b'
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    start = 2
-        *    end = 5
-        *    result => { {  }, {  }, { 'a' } }
+        * <li>
+        * 
+        * <pre>
+        *     divider = 'b'
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     start = 2
+        *     end = 5
+        *     result =&gt; { {  }, {  }, { 'a' } }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param divider the given divider
-        * @param array the given array
-        * @param start the given starting index
-        * @param end the given ending index
-        * @return a new array which is the split of the given array using the given divider
-        * @exception ArrayIndexOutOfBoundsException if start is lower than 0 or end is greater than the array length
+        * @param divider
+        *            the given divider
+        * @param array
+        *            the given array
+        * @param start
+        *            the given starting index
+        * @param end
+        *            the given ending index
+        * @return a new array which is the split of the given array using the given
+        *         divider
+        * @exception ArrayIndexOutOfBoundsException
+        *                if start is lower than 0 or end is greater than the array
+        *                length
         */
-       public static final char[][] splitOn(
-               char divider,
-               char[] array,
-               int start,
-               int end) {
+       public static final char[][] splitOn(char divider, char[] array, int start,
+                       int end) {
                int length = array == null ? 0 : array.length;
                if (length == 0 || start > end)
                        return NO_CHAR_CHAR;
@@ -2271,12 +2637,9 @@ public final class CharOperation {
                for (int i = start; i < end; i++) {
                        if (array[i] == divider) {
                                split[currentWord] = new char[i - last];
-                               System.arraycopy(
-                                       array,
-                                       last,
-                                       split[currentWord++],
-                                       0,
-                                       i - last);
+                               System
+                                               .arraycopy(array, last, split[currentWord++], 0, i
+                                                               - last);
                                last = i + 1;
                        }
                }
@@ -2286,30 +2649,40 @@ public final class CharOperation {
        }
 
        /**
-        * Answers true if the given array starts with the given characters, false otherwise.
-        * The comparison is case sensitive.
-        * <br>
+        * Answers true if the given array starts with the given characters, false
+        * otherwise. The comparison is case sensitive. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    toBeFound = { 'a' , 'b' }
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    result => true
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = { 'a' , 'b' }
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; true
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    toBeFound = { 'a' , 'c' }
-        *    array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
-        *    result => false
+        * <li>
+        * 
+        * <pre>
+        *     toBeFound = { 'a' , 'c' }
+        *     array = { 'a' , 'b', 'b', 'a', 'b', 'a' }
+        *     result =&gt; false
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param array the given array
-        * @param toBeFound the given character to search
-        * @return true if the given array starts with the given characters, false otherwise
-        * @exception NullPointerException if the given array is null or if the given characters array to be found is null
+        * @param array
+        *            the given array
+        * @param toBeFound
+        *            the given character to search
+        * @return true if the given array starts with the given characters, false
+        *         otherwise
+        * @exception NullPointerException
+        *                if the given array is null or if the given characters
+        *                array to be found is null
         */
        public static final boolean startsWith(char[] array, char[] toBeFound) {
                int i = toBeFound.length;
@@ -2320,38 +2693,48 @@ public final class CharOperation {
                                return false;
                return true;
        }
-       
+
        /**
-        * Answers a new array which is a copy of the given array starting at the given start and 
-        * ending at the given end. The given start is inclusive and the given end is exclusive.
-        * Answers null if start is greater than end, if start is lower than 0 or if end is greater 
-        * than the length of the given array. If end  equals -1, it is converted to the array length.
-        * <br>
+        * Answers a new array which is a copy of the given array starting at the
+        * given start and ending at the given end. The given start is inclusive and
+        * the given end is exclusive. Answers null if start is greater than end, if
+        * start is lower than 0 or if end is greater than the length of the given
+        * array. If end equals -1, it is converted to the array length. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    array = { { 'a' } , { 'b' } }
-        *    start = 0
-        *    end = 1
-        *    result => { { 'a' } }
+        * <li>
+        * 
+        * <pre>
+        *     array = { { 'a' } , { 'b' } }
+        *     start = 0
+        *     end = 1
+        *     result =&gt; { { 'a' } }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    array = { { 'a' } , { 'b' } }
-        *    start = 0
-        *    end = -1
-        *    result => { { 'a' }, { 'b' } }
+        * <li>
+        * 
+        * <pre>
+        *     array = { { 'a' } , { 'b' } }
+        *     start = 0
+        *     end = -1
+        *     result =&gt; { { 'a' }, { 'b' } }
         * </pre>
+        * 
         * </li>
         * </ol>
-        *  
-        * @param array the given array
-        * @param start the given starting index
-        * @param end the given ending index
-        * @return a new array which is a copy of the given array starting at the given start and 
-        * ending at the given end
-        * @exception NullPointerException if the given array is null
+        * 
+        * @param array
+        *            the given array
+        * @param start
+        *            the given starting index
+        * @param end
+        *            the given ending index
+        * @return a new array which is a copy of the given array starting at the
+        *         given start and ending at the given end
+        * @exception NullPointerException
+        *                if the given array is null
         */
        public static final char[][] subarray(char[][] array, int start, int end) {
                if (end == -1)
@@ -2369,36 +2752,46 @@ public final class CharOperation {
        }
 
        /**
-        * Answers a new array which is a copy of the given array starting at the given start and 
-        * ending at the given end. The given start is inclusive and the given end is exclusive.
-        * Answers null if start is greater than end, if start is lower than 0 or if end is greater 
-        * than the length of the given array. If end  equals -1, it is converted to the array length.
-        * <br>
+        * Answers a new array which is a copy of the given array starting at the
+        * given start and ending at the given end. The given start is inclusive and
+        * the given end is exclusive. Answers null if start is greater than end, if
+        * start is lower than 0 or if end is greater than the length of the given
+        * array. If end equals -1, it is converted to the array length. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    array = { 'a' , 'b' }
-        *    start = 0
-        *    end = 1
-        *    result => { 'a' }
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'a' , 'b' }
+        *     start = 0
+        *     end = 1
+        *     result =&gt; { 'a' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    array = { 'a', 'b' }
-        *    start = 0
-        *    end = -1
-        *    result => { 'a' , 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'a', 'b' }
+        *     start = 0
+        *     end = -1
+        *     result =&gt; { 'a' , 'b' }
         * </pre>
+        * 
         * </li>
         * </ol>
-        *  
-        * @param array the given array
-        * @param start the given starting index
-        * @param end the given ending index
-        * @return a new array which is a copy of the given array starting at the given start and 
-        * ending at the given end
-        * @exception NullPointerException if the given array is null
+        * 
+        * @param array
+        *            the given array
+        * @param start
+        *            the given starting index
+        * @param end
+        *            the given ending index
+        * @return a new array which is a copy of the given array starting at the
+        *         given start and ending at the given end
+        * @exception NullPointerException
+        *                if the given array is null
         */
        public static final char[] subarray(char[] array, int start, int end) {
                if (end == -1)
@@ -2414,27 +2807,35 @@ public final class CharOperation {
                System.arraycopy(array, start, result, 0, end - start);
                return result;
        }
+
        /**
-        * Answers the result of a char[] conversion to lowercase. Answers null if the given chars array is null.
-        * <br>
+        * Answers the result of a char[] conversion to lowercase. Answers null if
+        * the given chars array is null. <br>
         * NOTE: if no conversion was necessary, then answers back the argument one.
         * <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    chars = { 'a' , 'b' }
-        *    result => { 'a' , 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     chars = { 'a' , 'b' }
+        *     result =&gt; { 'a' , 'b' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    array = { 'A', 'b' }
-        *    result => { 'a' , 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'A', 'b' }
+        *     result =&gt; { 'a' , 'b' }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param chars the chars to convert
+        * @param chars
+        *            the chars to convert
         * @return the result of a char[] conversion to lowercase
         */
        final static public char[] toLowerCase(char[] chars) {
@@ -2447,12 +2848,8 @@ public final class CharOperation {
                        char lc = Character.toLowerCase(c);
                        if ((c != lc) || (lowerChars != null)) {
                                if (lowerChars == null) {
-                                       System.arraycopy(
-                                               chars,
-                                               0,
-                                               lowerChars = new char[length],
-                                               0,
-                                               i);
+                                       System.arraycopy(chars, 0, lowerChars = new char[length],
+                                                       0, i);
                                }
                                lowerChars[i] = lc;
                        }
@@ -2461,25 +2858,31 @@ public final class CharOperation {
        }
 
        /**
-        * Answers a new array removing leading and trailing spaces (' '). Answers the given array if there is no
-        * space characters to remove.
-        * <br>
+        * Answers a new array removing leading and trailing spaces (' '). Answers
+        * the given array if there is no space characters to remove. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    chars = { ' ', 'a' , 'b', ' ',  ' ' }
-        *    result => { 'a' , 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     chars = { ' ', 'a' , 'b', ' ',  ' ' }
+        *     result =&gt; { 'a' , 'b' }
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    array = { 'A', 'b' }
-        *    result => { 'A' , 'b' }
+        * <li>
+        * 
+        * <pre>
+        *     array = { 'A', 'b' }
+        *     result =&gt; { 'A' , 'b' }
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param chars the given array
+        * @param chars
+        *            the given array
         * @return a new array removing leading and trailing spaces (' ')
         */
        final static public char[] trim(char[] chars) {
@@ -2501,25 +2904,33 @@ public final class CharOperation {
        }
 
        /**
-        * Answers a string which is the concatenation of the given array using the '.' as a separator.
-        * <br>
+        * Answers a string which is the concatenation of the given array using the
+        * '.' as a separator. <br>
         * <br>
         * For example:
         * <ol>
-        * <li><pre>
-        *    array = { { 'a' } , { 'b' } }
-        *    result => "a.b"
+        * <li>
+        * 
+        * <pre>
+        *     array = { { 'a' } , { 'b' } }
+        *     result =&gt; &quot;a.b&quot;
         * </pre>
+        * 
         * </li>
-        * <li><pre>
-        *    array = { { ' ',  'a' } , { 'b' } }
-        *    result => " a.b"
+        * <li>
+        * 
+        * <pre>
+        *     array = { { ' ',  'a' } , { 'b' } }
+        *     result =&gt; &quot; a.b&quot;
         * </pre>
+        * 
         * </li>
         * </ol>
         * 
-        * @param chars the given array
-        * @return a string which is the concatenation of the given array using the '.' as a separator
+        * @param chars
+        *            the given array
+        * @return a string which is the concatenation of the given array using the
+        *         '.' as a separator
         */
        final static public String toString(char[][] array) {
                char[] result = concatWith(array, '.');