api / org.gradle.api.provider / ProviderFactory

ProviderFactory

@Incubating interface ProviderFactory

A factory for creating instances of Provider and PropertyState.

An instance of the factory can be injected into a task or plugin by annotating a public constructor or method with javax.inject.Inject.

 public class MyTask extends DefaultTask { // injection into a constructor @javax.inject.Inject public MyTask(ProviderFactory providerFactory) { } // injection into a method @javax.inject.Inject public ProviderFactory getProviderFactory() { throw new UnsupportedOperationException(); } } 

An instance of the factory is also available using Project#getProviders()

Since
4.0

Functions

property

abstract fun <T : Any> property(valueType: Class<T>): PropertyState<T>

Creates a PropertyState implementation to hold values of the given type.

The property will have a value equal to the default value of that type as defined by the Java language specification. Please see Oracle's Java manual for more information.

Any other data type than the standard Java data types returns a property with no value defined.

provider

abstract fun <T : Any> provider(value: Callable<out T>): Provider<T>

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.