package org.rdfhdt.hdt.util.string;
public final class DelayedString implements CharSequence {
CharSequence str;
public DelayedString(CharSequence str) {
this.str = str;
}
private void ensure() {
if(!(str instanceof String)) {
str = str.toString();
}
}
@Override
public int length() {
ensure();
return str.length();
}
@Override
public char charAt(int index) {
ensure();
return str.charAt(index);
}
@Override
public CharSequence subSequence(int start, int end) {
ensure();
return subSequence(start, end);
}
@Override
public String toString() {
ensure();
return str.toString();
}
public CharSequence getInternal() {
return str;
}
}