xapi.util.impl.LazyProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xapi-gwt Show documentation
Show all versions of xapi-gwt Show documentation
This module exists solely to package all other gwt modules into a single
uber jar. This makes deploying to non-mavenized targets much easier.
Of course, you would be wise to inherit your dependencies individually;
the uber jar is intended for projects like collide,
which have complex configuration, and adding many jars would be a pain.
The newest version!
package xapi.util.impl;
import javax.inject.Provider;
import xapi.inject.impl.SingletonProvider;
public class LazyProvider extends SingletonProvider {
private final Provider provider;
public LazyProvider(Provider provider) {
this.provider = provider;
}
public LazyProvider(T maybeNull, Provider provider) {
this.provider =
maybeNull == null
? provider
: new ImmutableProvider<>(maybeNull);
}
@Override
protected final T initialValue() {
return provider.get();
}
}