diff options
Diffstat (limited to 'src/org/apache/commons/lang3/CharSequenceUtils.java')
| -rw-r--r-- | src/org/apache/commons/lang3/CharSequenceUtils.java | 197 |
1 files changed, 0 insertions, 197 deletions
diff --git a/src/org/apache/commons/lang3/CharSequenceUtils.java b/src/org/apache/commons/lang3/CharSequenceUtils.java deleted file mode 100644 index fc0070f..0000000 --- a/src/org/apache/commons/lang3/CharSequenceUtils.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.commons.lang3; - -/** - * <p>Operations on {@link java.lang.CharSequence} that are - * {@code null} safe.</p> - * - * @see java.lang.CharSequence - * @since 3.0 - * @version $Id$ - */ -public class CharSequenceUtils { - - /** - * <p>{@code CharSequenceUtils} instances should NOT be constructed in - * standard programming. </p> - * - * <p>This constructor is public to permit tools that require a JavaBean - * instance to operate.</p> - */ - public CharSequenceUtils() { - super(); - } - - //----------------------------------------------------------------------- - /** - * <p>Returns a new {@code CharSequence} that is a subsequence of this - * sequence starting with the {@code char} value at the specified index.</p> - * - * <p>This provides the {@code CharSequence} equivalent to {@link String#substring(int)}. - * The length (in {@code char}) of the returned sequence is {@code length() - start}, - * so if {@code start == end} then an empty sequence is returned.</p> - * - * @param cs the specified subsequence, null returns null - * @param start the start index, inclusive, valid - * @return a new subsequence, may be null - * @throws IndexOutOfBoundsException if {@code start} is negative or if - * {@code start} is greater than {@code length()} - */ - public static CharSequence subSequence(CharSequence cs, int start) { - return cs == null ? null : cs.subSequence(start, cs.length()); - } - - //----------------------------------------------------------------------- - /** - * <p>Finds the first index in the {@code CharSequence} that matches the - * specified character.</p> - * - * @param cs the {@code CharSequence} to be processed, not null - * @param searchChar the char to be searched for - * @param start the start index, negative starts at the string start - * @return the index where the search char was found, -1 if not found - */ - static int indexOf(CharSequence cs, int searchChar, int start) { - if (cs instanceof String) { - return ((String) cs).indexOf(searchChar, start); - } else { - int sz = cs.length(); - if (start < 0) { - start = 0; - } - for (int i = start; i < sz; i++) { - if (cs.charAt(i) == searchChar) { - return i; - } - } - return -1; - } - } - - /** - * Used by the indexOf(CharSequence methods) as a green implementation of indexOf. - * - * @param cs the {@code CharSequence} to be processed - * @param searchChar the {@code CharSequence} to be searched for - * @param start the start index - * @return the index where the search sequence was found - */ - static int indexOf(CharSequence cs, CharSequence searchChar, int start) { - return cs.toString().indexOf(searchChar.toString(), start); -// if (cs instanceof String && searchChar instanceof String) { -// // TODO: Do we assume searchChar is usually relatively small; -// // If so then calling toString() on it is better than reverting to -// // the green implementation in the else block -// return ((String) cs).indexOf((String) searchChar, start); -// } else { -// // TODO: Implement rather than convert to String -// return cs.toString().indexOf(searchChar.toString(), start); -// } - } - - /** - * <p>Finds the last index in the {@code CharSequence} that matches the - * specified character.</p> - * - * @param cs the {@code CharSequence} to be processed - * @param searchChar the char to be searched for - * @param start the start index, negative returns -1, beyond length starts at end - * @return the index where the search char was found, -1 if not found - */ - static int lastIndexOf(CharSequence cs, int searchChar, int start) { - if (cs instanceof String) { - return ((String) cs).lastIndexOf(searchChar, start); - } else { - int sz = cs.length(); - if (start < 0) { - return -1; - } - if (start >= sz) { - start = sz - 1; - } - for (int i = start; i >= 0; --i) { - if (cs.charAt(i) == searchChar) { - return i; - } - } - return -1; - } - } - - /** - * Used by the lastIndexOf(CharSequence methods) as a green implementation of lastIndexOf - * - * @param cs the {@code CharSequence} to be processed - * @param searchChar the {@code CharSequence} to be searched for - * @param start the start index - * @return the index where the search sequence was found - */ - static int lastIndexOf(CharSequence cs, CharSequence searchChar, int start) { - return cs.toString().lastIndexOf(searchChar.toString(), start); -// if (cs instanceof String && searchChar instanceof String) { -// // TODO: Do we assume searchChar is usually relatively small; -// // If so then calling toString() on it is better than reverting to -// // the green implementation in the else block -// return ((String) cs).lastIndexOf((String) searchChar, start); -// } else { -// // TODO: Implement rather than convert to String -// return cs.toString().lastIndexOf(searchChar.toString(), start); -// } - } - - /** - * Green implementation of toCharArray. - * - * @param cs the {@code CharSequence} to be processed - * @return the resulting char array - */ - static char[] toCharArray(CharSequence cs) { - if (cs instanceof String) { - return ((String) cs).toCharArray(); - } else { - int sz = cs.length(); - char[] array = new char[cs.length()]; - for (int i = 0; i < sz; i++) { - array[i] = cs.charAt(i); - } - return array; - } - } - - /** - * Green implementation of regionMatches. - * - * @param cs the {@code CharSequence} to be processed - * @param ignoreCase whether or not to be case insensitive - * @param thisStart the index to start on the {@code cs} CharSequence - * @param substring the {@code CharSequence} to be looked for - * @param start the index to start on the {@code substring} CharSequence - * @param length character length of the region - * @return whether the region matched - */ - static boolean regionMatches(CharSequence cs, boolean ignoreCase, int thisStart, - CharSequence substring, int start, int length) { - if (cs instanceof String && substring instanceof String) { - return ((String) cs).regionMatches(ignoreCase, thisStart, ((String) substring), start, length); - } else { - // TODO: Implement rather than convert to String - return cs.toString().regionMatches(ignoreCase, thisStart, substring.toString(), start, length); - } - } - -}
\ No newline at end of file |
