/* * Copyright (c) 2015 the original author or authors. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * Etienne Studer & Donát Csikós (Gradle Inc.) - initial API and implementation and initial documentation */ package org.eclipse.buildship.core.console; import org.eclipse.core.runtime.jobs.Job; import org.eclipse.buildship.core.configuration.RunConfiguration; /** * Describes the process that runs a Gradle build. */ public interface ProcessDescription { /** * Returns the human-readable name of the process. * * @return the human-readable name of the process */ String getName(); /** * Returns the job in which the Gradle build runs. * * @return the {@code Job} instance of the process */ Job getJob(); /** * Returns the set of attributes that are applied to execute the Gradle build. * * @return the {@code GradleRunConfigurationAttributes} instance of the process */ RunConfiguration getRunConfig(); /** * Returns whether the process can be rerun. * * @return {@code true} if the process can be rerun */ boolean isRerunnable(); /** * Reruns the process. A new {@code ProcessDescription} instance will be created as part of it. */ void rerun(); }