All Downloads are FREE. Search and download functionalities are using the official Maven repository.

xapi.util.impl.LazyProvider Maven / Gradle / Ivy

Go to download

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




© 2015 - 2024 Weber Informatics LLC | Privacy Policy