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-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;
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();
}
}