diff --git a/common/src/main/java/org/implab/gradle/common/utils/ObjectsMixin.java b/common/src/main/java/org/implab/gradle/common/utils/ObjectsMixin.java new file mode 100644 --- /dev/null +++ b/common/src/main/java/org/implab/gradle/common/utils/ObjectsMixin.java @@ -0,0 +1,27 @@ +package org.implab.gradle.common.utils; + +import java.util.function.Supplier; + +import javax.inject.Inject; + +import org.gradle.api.model.ObjectFactory; +import org.gradle.api.provider.Provider; +import org.gradle.api.provider.ProviderFactory; + +import groovy.lang.Closure; + +public interface ObjectsMixin { + @Inject + ObjectFactory getObjects(); + + @Inject + ProviderFactory getProviders(); + + default Provider provider(Supplier supplier) { + return getProviders().provider(supplier::get); + } + + default Provider provider(Closure closure) { + return getProviders().provider(closure); + } +}