| /******************************************************************************* |
| * Copyright (c) 2005, 2007 BEA Systems, Inc. |
| * 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: |
| * wharley@bea.com - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.jdt.apt.core.util; |
| |
| import java.io.File; |
| |
| import org.eclipse.core.runtime.CoreException; |
| import org.eclipse.core.runtime.IPath; |
| |
| /** |
| * A minimal API for manipulating the annotation processor factory path. |
| * The factory path is an ordered list of containers, each of which has |
| * certain attributes, e.g., isEnabled, runInBatchMode. Containers on |
| * the path do not necessarily contain implementations of any particular |
| * service; in particular, a path may have both Java 5 and Java 6 annotation |
| * processors, as well as entries that contain supporting classes or |
| * resources. |
| * <p> |
| * Clients should not implement this interface. |
| */ |
| public interface IFactoryPath { |
| |
| /** |
| * Add an external jar file (not in the workspace) to the head of the |
| * factory path. If the jar is already on the path, move it to the |
| * head. The jar will be added with default attributes, e.g., |
| * isEnabled=true, runInBatchMode=false. |
| * @param jar a java.io.File representing the jar file. Must not be null. |
| */ |
| public void addExternalJar(File jar); |
| |
| /** |
| * Remove an external jar file from the factory path. |
| * If the jar isn't on the path, do nothing. |
| * @param jar must not be null. |
| */ |
| public void removeExternalJar(File jar); |
| |
| /** |
| * Add a jar file in the workspace to the head of the |
| * factory path. If the jar is already on the path, move it to the |
| * head. The jar will be added with default attributes, e.g., |
| * isEnabled=true, runInBatchMode=false. |
| * @param jarPath an Eclipse IPath representing the jar file; the path is |
| * relative to the workspace root. Must not be null. |
| */ |
| public void addWkspJar(IPath jarPath); |
| |
| /** |
| * Remove a workspace-relative jar from the factory path. |
| * If the jar isn't on the path, do nothing. |
| * @param jarPath an Eclipse IPath representing the jar file; the path is |
| * relative to the workspace root. Must not be null. |
| */ |
| public void removeWkspJar(IPath jarPath); |
| |
| /** |
| * Add a jar file in the workspace, specified with a classpath variable, |
| * to the head of the factory path. If the jar is already on the path, |
| * move it to the head. The jar will be added with default attributes, |
| * e.g., isEnabled=true, runInBatchMode=false. |
| * @param jarPath an Eclipse IPath representing the jar file; the first |
| * segment of the path is assumed to be the variable name. Must not |
| * be null. |
| */ |
| public void addVarJar(IPath jarPath); |
| |
| /** |
| * Remove from the factory path a jar file whose name is based on a |
| * classpath variable. If the jar isn't on the path, do nothing. |
| * @param jarPath an Eclipse IPath representing the jar file; the first |
| * segment of the path is assumed to be the variable name. Must not |
| * be null. |
| */ |
| public void removeVarJar(IPath jarPath); |
| |
| /** |
| * Enable a plugin on the factory path, and move it to the head of the |
| * path. |
| * @param pluginId the unique id of the processor plugin, e.g., |
| * "org.example.myProcessors" |
| * @throws CoreException if the plugin is not installed. |
| */ |
| public void enablePlugin(String pluginId) throws CoreException; |
| |
| /** |
| * Disable a plugin on the factory path. |
| * If the plugin is not installed, do nothing. |
| * @param pluginId the unique id of the processor plugin, e.g., |
| * "org.example.myProcessors" |
| */ |
| public void disablePlugin(String pluginId); |
| } |