/**
*
*/
package querqy;
/**
* @author René Kriegler, @renekrie
*
*/
public class ComparableCharSequenceWrapper implements ComparableCharSequence {
public static final ComparableCharSequence EMPTY_SEQUENCE = new ComparableCharSequenceWrapper("");
final CharSequence sequence;
public ComparableCharSequenceWrapper(final CharSequence sequence) {
this.sequence = sequence;
}
/*
* (non-Javadoc)
*
* @see java.lang.CharSequence#length()
*/
@Override
public int length() {
return sequence.length();
}
/*
* (non-Javadoc)
*
* @see java.lang.CharSequence#charAt(int)
*/
@Override
public char charAt(final int index) {
return sequence.charAt(index);
}
/*
* (non-Javadoc)
*
* @see java.lang.CharSequence#subSequence(int, int)
*/
@Override
public ComparableCharSequence subSequence(final int start, final int end) {
// TODO: do subSequence as view in new wrapper
return new ComparableCharSequenceWrapper(sequence.subSequence(start, end));
}
/*
* (non-Javadoc)
*
* @see java.lang.Comparable#compareTo(java.lang.Object)
*/
@Override
public int compareTo(final CharSequence other) {
return CharSequenceUtil.compare(this, other);
}
@Override
public int hashCode() {
return CharSequenceUtil.hashCode(this);
}
@Override
public boolean equals(final Object obj) {
return CharSequenceUtil.equals(this, obj);
}
@Override
public String toString() {
return new StringBuilder(sequence).toString();
}
}