package com.prezi.haxe.gradle.incubating; import org.gradle.api.Buildable; import org.gradle.api.Incubating; import org.gradle.api.Nullable; import org.gradle.api.Task; /** * A model element that is directly buildable. * Such an element mirrors a specified lifecycle task in the DAG, and can accept dependencies which are then associated with the lifecycle task. */ @Incubating public interface BuildableModelElement extends Buildable { /** * Returns the 'lifecycle' task associated with the construction of this element. */ @Nullable Task getBuildTask(); /** * Associates a 'lifecycle' task with the construction of this element. */ void setBuildTask(Task lifecycleTask); /** * Adds a task that is required for the construction of this element. * A task added this way is then added as a dependency of the associated lifecycle task. */ void builtBy(Object... tasks); boolean hasBuildDependencies(); }