All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.eclipse.core.resources.ICommand Maven / Gradle / Ivy

Go to download

AspectJ tools most notably contains the AspectJ compiler (AJC). AJC applies aspects to Java classes during compilation, fully replacing Javac for plain Java classes and also compiling native AspectJ or annotation-based @AspectJ syntax. Furthermore, AJC can weave aspects into existing class files in a post-compile binary weaving step. This library is a superset of AspectJ weaver and hence also of AspectJ runtime.

There is a newer version: 1.9.22.1
Show newest version
/*******************************************************************************
 *  Copyright (c) 2000, 2010 IBM Corporation and others.
 *
 *  This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License 2.0
 *  which accompanies this distribution, and is available at
 *  https://www.eclipse.org/legal/epl-2.0/
 *
 *  SPDX-License-Identifier: EPL-2.0
 *
 *  Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.core.resources;

import java.util.Map;
import org.eclipse.core.runtime.IProgressMonitor;

/**
 * A builder command names a builder and supplies a table of
 * name-value argument pairs.
 * 

* Changes to a command will only take effect if the modified command is installed * into a project description via {@link IProjectDescription#setBuildSpec(ICommand[])}. *

* * @see IProjectDescription * @noimplement This interface is not intended to be implemented by clients. * @noextend This interface is not intended to be extended by clients. */ public interface ICommand { /** * Returns a table of the arguments for this command, or null * if there are no arguments. The argument names and values are both strings. * * @return a table of command arguments (key type : String * value type : String), or null * @see #setArguments(Map) */ Map getArguments(); /** * Returns the name of the builder to run for this command, or * null if the name has not been set. * * @return the name of the builder, or null if not set * @see #setBuilderName(String) */ String getBuilderName(); /** * Returns whether this build command responds to the given kind of build. *

* By default, build commands respond to all kinds of builds. *

* * @param kind One of the *_BUILD constants defined * on IncrementalProjectBuilder * @return true if this build command responds to the specified * kind of build, and false otherwise. * @see #setBuilding(int, boolean) * @since 3.1 */ boolean isBuilding(int kind); /** * Returns whether this command allows configuring of what kinds of builds * it responds to. By default, commands are only configurable * if the corresponding builder defines the {@link #isConfigurable} * attribute in its builder extension declaration. A command that is not * configurable will always respond to all kinds of builds. * * @return true If this command allows configuration of * what kinds of builds it responds to, and false otherwise. * @see #setBuilding(int, boolean) * @since 3.1 */ boolean isConfigurable(); /** * Sets this command's arguments to be the given table of name-values * pairs, or to null if there are no arguments. The argument * names and values are both strings. *

* Individual builders specify their argument expectations. *

*

* Note that modifications to the arguments of a command * being used in a running builder may affect the run of that builder * but will not affect any subsequent runs. To change a command * permanently you must install the command into the relevant project * build spec using {@link IProjectDescription#setBuildSpec(ICommand[])}. *

* * @param args a table of command arguments (keys and values must * both be of type String), or null * @see #getArguments() */ void setArguments(Map args); /** * Sets the name of the builder to run for this command. *

* The builder name comes from the extension that plugs in * to the standard org.eclipse.core.resources.builders * extension point. *

* * @param builderName the name of the builder * @see #getBuilderName() */ void setBuilderName(String builderName); /** * Specifies whether this build command responds to the provided kind of build. *

* When a command is configured to not respond to a given kind of build, the * builder instance will not be called when a build of that kind is initiated. *

* This method has no effect if this build command does not allow its * build kinds to be configured. *

* Note: *

    *
  • A request for INCREMENTAL_BUILD or AUTO_BUILD will result in the builder being called with the FULL_BUILD * kind, if there is no previous delta (e.g. after a clean build). *
  • * If INCREMENTAL_BUILD (or AUTO_BUILD) is promoted to FULL_BUILD, the builder will be called, * if the command responds to INCREMENTAL_BUILD (or AUTO_BUILD). *
  • * If INCREMENTAL_BUILD is promoted to FULL_BUILD, the builder will be called, * if the command responds to FULL_BUILD. *
  • * If AUTO_BUILD is promoted to FULL_BUILD, the builder will be called, * only if the command responds to AUTO_BUILD. *
  • *
* * @param kind One of the *_BUILD constants defined * on IncrementalProjectBuilder * @param value true if this build command responds to the * specified kind of build, and false otherwise. * @see #isBuilding(int) * @see #isConfigurable() * @see IWorkspace#build(int, IProgressMonitor) * @see IProject#build(int, IProgressMonitor) * @see IncrementalProjectBuilder#FULL_BUILD * @see IncrementalProjectBuilder#INCREMENTAL_BUILD * @see IncrementalProjectBuilder#AUTO_BUILD * @see IncrementalProjectBuilder#CLEAN_BUILD * @since 3.1 */ void setBuilding(int kind, boolean value); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy