xapi.util.impl.DeferredCharSequence Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xapi-dev Show documentation
Show all versions of xapi-dev Show documentation
Everything needed to run a comprehensive dev environment.
Just type X_ and pick a service from autocomplete;
new dev modules will be added as they are built.
The only dev service not included in the uber jar is xapi-dev-maven,
as it includes all runtime dependencies of maven, adding ~4 seconds to build time,
and 6 megabytes to the final output jar size (without xapi-dev-maven, it's ~1MB).
The newest version!
package xapi.util.impl;
import javax.inject.Provider;
public class DeferredCharSequence implements CharSequence {
private final LazyProvider join;
public DeferredCharSequence(final CharSequence body, final CharSequence chars) {
join = new LazyProvider(new Provider() {
@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);
}
}