X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/CharArrayOps.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/CharArrayOps.java index 7041eb4..ab09a12 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/CharArrayOps.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/util/CharArrayOps.java @@ -11,135 +11,147 @@ package net.sourceforge.phpdt.internal.core.util; /** - * A class to do characters operations so that we can use - * char arrays more effectively. + * A class to do characters operations so that we can use char arrays more + * effectively. */ public class CharArrayOps { // TODO: should promote to CharOperation -/** - * Returns the char arrays as an array of Strings - */ -public static String[] charcharToString(char[][] charchar) { - if (charchar == null) { - return null; + /** + * Returns the char arrays as an array of Strings + */ + public static String[] charcharToString(char[][] charchar) { + if (charchar == null) { + return null; + } + String[] strings = new String[charchar.length]; + for (int i = 0; i < charchar.length; i++) { + strings[i] = new String(charchar[i]); + } + return strings; } - String[] strings= new String[charchar.length]; - for (int i= 0; i < charchar.length; i++) { - strings[i]= new String(charchar[i]); + + /** + * Returns the char array as a String + */ + public static String charToString(char[] chars) { + if (chars == null) { + return null; + } else { + return new String(chars); + } } - return strings; -} -/** - * Returns the char array as a String - */ -public static String charToString(char[] chars) { - if (chars == null) { - return null; - } else { - return new String(chars); + + /** + * Concatinates the two arrays into one big array. If the first array is + * null, returns the second array. If the second array is null, returns the + * first array. + * + * @param first - + * the array which the other array is concatinated onto + * @param second - + * the array which is to be concatinated onto the first array + */ + public static char[] concat(char[] first, char[] second) { + if (first == null) + return second; + if (second == null) + return first; + + int length1 = first.length; + int length2 = second.length; + char[] result = new char[length1 + length2]; + System.arraycopy(first, 0, result, 0, length1); + System.arraycopy(second, 0, result, length1, length2); + return result; } -} -/** - * Concatinates the two arrays into one big array. - * If the first array is null, returns the second array. - * If the second array is null, returns the first array. - * - * @param first - the array which the other array is concatinated onto - * @param second - the array which is to be concatinated onto the first array - */ -public static char[] concat(char[] first, char[] second) { - if (first == null) - return second; - if (second == null) - return first; - int length1 = first.length; - int length2 = second.length; - char[] result = new char[length1 + length2]; - System.arraycopy(first, 0, result, 0, length1); - System.arraycopy(second, 0, result, length1, length2); - return result; -} -/** - * Checks the two character arrays for equality. - * - * @param first - one of the arrays to be compared - * @param second - the other array which is to be compared - */ -public static boolean equals(char[] first, char[] second) { - if (first == second) + /** + * Checks the two character arrays for equality. + * + * @param first - + * one of the arrays to be compared + * @param second - + * the other array which is to be compared + */ + public static boolean equals(char[] first, char[] second) { + if (first == second) + return true; + if (first == null || second == null) + return false; + if (first.length != second.length) + return false; + + for (int i = 0, length = first.length; i < length; i++) + if (first[i] != second[i]) + return false; return true; - if (first == null || second == null) - return false; - if (first.length != second.length) - return false; + } - for (int i = 0, length = first.length; i < length; i++) - if (first[i] != second[i]) - return false; - return true; -} -/** - * Returns the index of the first occurrence of character in buffer, - * starting from offset, or -1 if not found. - */ -public static int indexOf(char character, char[] buffer, int offset) { - for (int i= offset; i < buffer.length; i++) { - if (buffer[i] == character) { - return i; - } + /** + * Returns the index of the first occurrence of character in buffer, + * starting from offset, or -1 if not found. + */ +// public static int indexOf(char character, char[] buffer, int offset) { +// for (int i = offset; i < buffer.length; i++) { +// if (buffer[i] == character) { +// return i; +// } +// } +// return -1; +// } + + /** + * Extracts a sub-array from the given array, starting at the given + * startIndex and proceeding for length characters. Returns null if: 1. the + * src array is null 2. the start index is out of bounds 3. the length + * parameter specifies a end point which is out of bounds Does not return a + * copy of the array if possible, in other words, if start is zero and + * length equals the length of the src array. + * + * @param src - + * the array from which elements need to be copied + * @param start - + * the start index in the src array + * @param length - + * the number of characters to copy + */ + public static char[] subarray(char[] src, int start, int length) { + if (src == null) + return null; + int srcLength = src.length; + if (start < 0 || start >= srcLength) + return null; + if (length < 0 || start + length > srcLength) + return null; + if (srcLength == length && start == 0) + return src; + + char[] result = new char[length]; + if (length > 0) + System.arraycopy(src, start, result, 0, length); + return result; } - return -1; -} -/** - * Extracts a sub-array from the given array, starting - * at the given startIndex and proceeding for length characters. - * Returns null if: - * 1. the src array is null - * 2. the start index is out of bounds - * 3. the length parameter specifies a end point which is out of bounds - * Does not return a copy of the array if possible, in other words, if start is zero - * and length equals the length of the src array. - * - * @param src - the array from which elements need to be copied - * @param start - the start index in the src array - * @param length - the number of characters to copy - */ -public static char[] subarray(char[] src, int start, int length) { - if (src == null) - return null; - int srcLength = src.length; - if (start < 0 || start >= srcLength) - return null; - if (length < 0 || start + length > srcLength) - return null; - if (srcLength == length && start == 0) - return src; - - char[] result = new char[length]; - if (length > 0) - System.arraycopy(src, start, result, 0, length); - return result; -} -/** - * Extracts a substring from the given array, starting - * at the given startIndex and proceeding for length characters. - * Returns null if: - * 1. the src array is null - * 2. the start index is out of bounds - * 3. the length parameter specifies a end point which is out of bounds - * Does not return a copy of the array if possible (if start is zero - * and length equals the length of the src array). - * - * @param src - the array from which elements need to be copied - * @param start - the start index in the src array - * @param length - the number of characters to copy - */ -public static String substring(char[] src, int start, int length) { - char[] chars= subarray(src, start, length); - if (chars != null) { - return new String(chars); - } else { - return null; + + /** + * Extracts a substring from the given array, starting at the given + * startIndex and proceeding for length characters. Returns null if: 1. the + * src array is null 2. the start index is out of bounds 3. the length + * parameter specifies a end point which is out of bounds Does not return a + * copy of the array if possible (if start is zero and length equals the + * length of the src array). + * + * @param src - + * the array from which elements need to be copied + * @param start - + * the start index in the src array + * @param length - + * the number of characters to copy + */ + public static String substring(char[] src, int start, int length) { + char[] chars = subarray(src, start, length); + if (chars != null) { + return new String(chars); + } else { + return null; + } } } -}