/**
*
*/
package querqy;
/**
* @author René Kriegler, @renekrie
*/
public class CharSequenceUtil {
public static boolean equals(final CharSequence seq1, final Object obj) {
if (seq1 == obj)
return true;
if (seq1 == null || obj == null)
return false;
if (!CharSequence.class.isAssignableFrom(obj.getClass()))
return false;
final CharSequence seq2 = (CharSequence) obj;
final int length = seq1.length();
if (length != seq2.length())
return false;
for (int i = 0; i < length; i++) {
final char ch1 = seq1.charAt(i);
final char ch2 = seq2.charAt(i);
if (ch1 != ch2) {
return false;
}
}
return true;
}
public static int compare(final CharSequence seq1, final CharSequence seq2) {
for (int i = 0, len = Math.min(seq1.length(), seq2.length()); i < len; i++) {
final char ch1 = seq1.charAt(i);
final char ch2 = seq2.charAt(i);
if (ch1 != ch2) {
return ch1 - ch2;
}
}
return seq1.length() - seq2.length();
}
public static int hashCode(final CharSequence seq) {
final int prime = 31;
int result = 1;
for (int i = 0, len = seq.length(); i < len; i++) {
result = prime * result + seq.charAt(i);
}
return result;
}
}