org.gradle.caching.configuration

## Interface BuildCacheConfiguration

-     @Incubating
      public interface BuildCacheConfiguration

  Configuration for the build cache for an entire Gradle build.
  Since:
    3.5

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `BuildCache` | `getLocal()` Returns the local cache configuration.
    `BuildCache` | `getRemote()` Returns the remote cache configuration.
    `void` | `local(Action<? super BuildCache> configuration)` Executes the given action against the local configuration.
    `<T extends BuildCache> T` | `local(Class<T> type)` Configures the local cache with the given type.
    `<T extends BuildCache> T` | `local(Class<T> type, Action<? super T> configuration)` Configures the local cache with the given type.
    `<T extends BuildCache> void` | `registerBuildCacheService(Class<T> configurationType, Class<? extends BuildCacheServiceFactory<? super T>> buildCacheServiceFactoryType)` Registers a custom build cache type.
    `void` | `remote(Action<? super BuildCache> configuration)` Executes the given action against the currently configured remote cache.
    `<T extends BuildCache> T` | `remote(Class<T> type)` Configures a remote cache with the given type.
    `<T extends BuildCache> T` | `remote(Class<T> type, Action<? super T> configuration)` Configures a remote cache with the given type.

- - ### Method Detail

    - #### registerBuildCacheService

          <T extends BuildCache> void registerBuildCacheService(Class<T> configurationType,
                                                              Class<? extends BuildCacheServiceFactory<? super T>> buildCacheServiceFactoryType)

      Registers a custom build cache type.
      Parameters:
        `configurationType` - Configuration type used to provide parameters to a `BuildCacheService`
        `buildCacheServiceFactoryType` - Implementation type of `BuildCacheServiceFactory` that is used to create a `BuildCacheService`

    - #### getLocal

          BuildCache getLocal()

      Returns the local cache configuration.

    - #### local

          <T extends BuildCache> T local(Class<T> type)

      Configures the local cache with the given type.

      If a local build cache has already been configured with a different type, this method replaces it.

      Push is enabled by default for the local cache.

      Parameters:
        `type` - the type of local cache to configure.

    - #### local

          <T extends BuildCache> T local(Class<T> type,
                                       Action<? super T> configuration)

      Configures the local cache with the given type.

      If a local build cache has already been configured with a different type, this method replaces it.

      If a local build cache has already been configured with the same type, this method configures it.

      Push is enabled by default for the local cache.

      Parameters:
        `type` - the type of local cache to configure.
        `configuration` - the configuration to execute against the remote cache.

    - #### local

          void local(Action<? super BuildCache> configuration)

      Executes the given action against the local configuration.
      Parameters:
        `configuration` - the action to execute against the local cache configuration.

    - #### getRemote

          BuildCache getRemote()

      Returns the remote cache configuration.

    - #### remote

          <T extends BuildCache> T remote(Class<T> type)

      Configures a remote cache with the given type.

      If a remote build cache has already been configured with a different type, this method replaces it.

      Push is disabled by default for the remote cache.

      Parameters:
        `type` - the type of remote cache to configure.

    - #### remote

          <T extends BuildCache> T remote(Class<T> type,
                                        Action<? super T> configuration)

      Configures a remote cache with the given type.

      If a remote build cache has already been configured with a different type, this method replaces it.

      If a remote build cache has already been configured with the same, this method configures it.

      Push is disabled by default for the remote cache.

      Parameters:
        `type` - the type of remote cache to configure.
        `configuration` - the configuration to execute against the remote cache.

    - #### remote

          void remote(Action<? super BuildCache> configuration)

      Executes the given action against the currently configured remote cache.
      Parameters:
        `configuration` - the action to execute against the currently configured remote cache.
      Throws:
        `IllegalStateException` - If no remote cache has been assigned yet