blob: e6bb0155c0d866e268a2f808bfc5846346a7f78a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2003, 2007 IBM Corporation and others.
* 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:
* IBM Corporation - Initial API and implementation
*******************************************************************************/
package org.eclipse.jst.server.core;
import java.io.File;
import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.*;
import org.eclipse.jdt.core.*;
import org.eclipse.wst.server.core.IRuntime;
import org.eclipse.wst.server.core.model.RuntimeTargetHandlerDelegate;
/**
* A runtime target handler that supports changing the classpath of the
* project by adding one or more classpath containers. Runtime providers
* can extend this class and implement the abstract methods to provide
* the correct build path for their runtime type.
*
* @deprecated Should use org.eclipse.jst.server.core.runtimeClasspathProviders
* extension point instead
*/
public abstract class ClasspathRuntimeTargetHandler extends RuntimeTargetHandlerDelegate {
/** (non-Javadoc)
* @see RuntimeTargetHandlerDelegate#setRuntimeTarget(IProject, IRuntime, IProgressMonitor)
*/
public void setRuntimeTarget(IProject project, IRuntime runtime, IProgressMonitor monitor) throws CoreException {
throw new RuntimeException("Attempt to use deprecated code");
}
/** (non-Javadoc)
* @see RuntimeTargetHandlerDelegate#removeRuntimeTarget(IProject, IRuntime, IProgressMonitor)
*/
public void removeRuntimeTarget(IProject project, IRuntime runtime, IProgressMonitor monitor) {
throw new RuntimeException("Attempt to use deprecated code");
}
/**
* Add library entries to the given list for every jar file found in the
* given directory. Optionally search subdirectories as well.
*
* @param list a list
* @param dir a directory
* @param includeSubdirectories <code>true</code> to include subdirectories, and
* <code>false</code> otherwise
*/
protected static void addLibraryEntries(List list, File dir, boolean includeSubdirectories) {
throw new RuntimeException("Attempt to use deprecated code");
}
/**
* Returns the classpath entries that correspond to the given runtime.
*
* @param runtime a runtime
* @param monitor a progress monitor, or <code>null</code> if progress
* reporting and cancellation are not desired
* @return an array of classpath entries
*/
public IClasspathEntry[] getDelegateClasspathEntries(IRuntime runtime, IProgressMonitor monitor) {
throw new RuntimeException("Attempt to use deprecated code");
}
/**
* Returns the classpath entry ids for this runtime target handler. These
* ids will be added to the classpath container id to create a new fully
* qualified classpath container id.
* <p>
* By default, there is a single classpath entry for the runtime, with no
* extra id (<code>new String[1]</code>). To create multiple ids, just
* return a string array containing the ids. For instance, to have two
* classpath containers with ids "id1" and "id2", use
* <code>new String[] { "id1", "id2" }</code>
* </p>
*
* @return an array of classpath entry ids
*/
public String[] getClasspathEntryIds() {
throw new RuntimeException("Attempt to use deprecated code");
}
/**
* Request that the classpath container for the given runtime and id be updated
* with the given classpath container entries.
*
* @param runtime a runtime
* @param id an id
* @param entries an array of classpath entries
*/
public void requestClasspathContainerUpdate(IRuntime runtime, String id, IClasspathEntry[] entries) {
throw new RuntimeException("Attempt to use deprecated code");
}
/**
* Returns the classpath container label for the given runtime and the given
* classpath container id (returned from getClasspathEntryIds()). This method
* must not return null.
*
* @param runtime the runtime to resolve the container label for
* @param id the classpath entry id
* @return a classpath container label
*/
public abstract String getClasspathContainerLabel(IRuntime runtime, String id);
/**
* Resolve the classpath container.
*
* @param runtime a runtime
* @param id a container id
* @return a possibly empty array of classpath entries
*/
public IClasspathEntry[] resolveClasspathContainerImpl(IRuntime runtime, String id) {
throw new RuntimeException("Attempt to use deprecated code");
}
/**
* Resolves (creates the classpath entries for) the classpath container with
* the given runtime and the given classpath container id (returned from
* getClasspathEntryIds()). If the classpath container cannot be resolved
* (for instance, if the runtime does not exist), return null.
*
* @param runtime the runtime to resolve the container for
* @param id the classpath entry id
* @return an array of classpath entries for the container, or null if the
* container could not be resolved
*/
public abstract IClasspathEntry[] resolveClasspathContainer(IRuntime runtime, String id);
}