package xapi.util.impl;
import javax.inject.Provider;
public class DeferredCharSequence<E> implements CharSequence {
private final LazyProvider<String> join;
public DeferredCharSequence(final CharSequence body, final CharSequence chars) {
join = new LazyProvider<String>(new Provider<String>() {
@Override
public String get() {
return init(body.toString(), chars.toString());
}
});
}
protected String init(String str0, String str1) {
return str0.concat(str1);
}
@Override
public String toString() {
return join.get();
}
@Override
public CharSequence subSequence(int start, int end) {
return toString().subSequence(start, end);
}
@Override
public int length() {
return toString().length();
}
@Override
public char charAt(int index) {
return toString().charAt(index);
}
}