| /******************************************************************************* |
| * Copyright (c) 2000, 2010 QNX Software Systems 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: |
| * QNX Software Systems - Initial API and implementation |
| * Red Hat Inc - Add setTargets method |
| *******************************************************************************/ |
| package org.eclipse.cdt.make.core; |
| |
| import org.eclipse.cdt.make.internal.core.MakeTargetManager; |
| import org.eclipse.core.resources.IContainer; |
| import org.eclipse.core.resources.IProject; |
| import org.eclipse.core.runtime.CoreException; |
| |
| /** |
| * Interface for {@link MakeTargetManager} handling make target items in Make Targets View. |
| * |
| * @noextend This class is not intended to be subclassed by clients. |
| * @noimplement This interface is not intended to be implemented by clients. |
| */ |
| public interface IMakeTargetManager { |
| IMakeTarget createTarget(IProject project, String targetName, String targetBuilderID) throws CoreException; |
| |
| /** |
| * Adds target to manager. |
| */ |
| void addTarget(IMakeTarget target) throws CoreException; |
| |
| /** |
| * Adds target to manager on a specific projects folder. It is assumed |
| * that the target and container belong to the same project. |
| */ |
| void addTarget(IContainer container, IMakeTarget target) throws CoreException; |
| |
| void removeTarget(IMakeTarget target) throws CoreException; |
| |
| void renameTarget(IMakeTarget target, String name) throws CoreException; |
| |
| /** |
| * Set targets on a specific projects folder. It is assumed |
| * all targets and container belong to the same project which |
| * is determined from the first element of the |
| * targets array. If no container is specified, the project is used. |
| * All previous targets for the container are replaced upon success and if |
| * failure occurs, an exception is thrown and the previous set of targets |
| * for the container are unchanged. |
| * |
| * @param container to set targets for or null if project should be used |
| * @param targets array |
| * |
| * @since 7.0 |
| */ |
| public void setTargets(IContainer container, IMakeTarget[] targets) throws CoreException; |
| |
| boolean targetExists(IMakeTarget target); |
| |
| IMakeTarget[] getTargets(IContainer container) throws CoreException; |
| |
| IMakeTarget findTarget(IContainer container, String name) throws CoreException; |
| |
| IProject[] getTargetBuilderProjects() throws CoreException; |
| |
| String getBuilderID(String targetBuilderID); |
| |
| boolean hasTargetBuilder(IProject project); |
| |
| String[] getTargetBuilders(IProject project); |
| |
| void addListener(IMakeTargetListener listener); |
| |
| void removeListener(IMakeTargetListener listener); |
| } |