Package org.gradle.api.provider

## Interface ProviderFactory

-     @Incubating
      public interface ProviderFactory

  A factory for creating instances of `Provider`.

  An instance of the factory can be injected into a task, plugin or other object by annotating a public constructor or property getter method with `javax.inject.Inject`. It is also available via `Project.getProviders()`.

  Since:
    4.0

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `<T> Provider<T>` | `provider​(Callable<? extends T> value)` | Creates a `Provider` whose value is calculated using the given `Callable`.

- - ### Method Detail

    - #### provider

          <T> Provider<T> provider​(Callable<? extends T> value)

      Creates a `Provider` whose value is calculated using the given `Callable`.

      The provider is live and will call the `Callable` each time its value is queried. The `Callable` may return `null`, in which case the provider is considered to have no value.

      Parameters:
        `value` - The `java.util.concurrent.Callable` use to calculate the value.
      Returns:
        The provider. Never returns null.