package org.netbeans.gradle.project.api.task; import javax.annotation.Nonnull; import org.jtrim.utils.ExceptionHelper; import org.netbeans.api.project.Project; /** * Defines the context where the associated daemon task is to be executed. * A daemon task can be a Gradle command to be executed or a request to * load models built from the build scripts of a project. * <P> * Instances of this class are immutable and therefore safe to be * shared by multiple concurrent threads. */ public final class DaemonTaskContext { private final Project project; private final boolean modelLoading; /** * Creates a new context object with the given arguments. * * @param project the project for which the daemon task is to be * executed. This argument cannot be {@code null}. * @param modelLoading {@code true} if the associated daemon task is a * request to load models from the build scripts of the * project rather than executing a Gradle command */ public DaemonTaskContext(@Nonnull Project project, boolean modelLoading) { ExceptionHelper.checkNotNullArgument(project, "project"); this.project = project; this.modelLoading = modelLoading; } /** * Returns the project object for which the daemon task is to * be executed. * * @return the project object for which the daemon task is to * be executed. This method never returns {@code null}. */ @Nonnull public Project getProject() { return project; } /** * Returns {@code true} if the associated daemon task is a * request to load models from the build scripts of the * project rather than executing a Gradle command. * * @return {@code true} if the associated daemon task is a * request to load models from the build scripts of the * project, {@code false} otherwise */ public boolean isModelLoading() { return modelLoading; } }