1 /******************************************************************************* 2 * Copyright (c) 2000, 2006 IBM Corporation and others. 3 * All rights reserved. This program and the accompanying materials 4 * are made available under the terms of the Eclipse Public License v1.0 5 * which accompanies this distribution, and is available at 6 * http://www.eclipse.org/legal/epl-v10.html 7 * 8 * Contributors: 9 * IBM Corporation - initial API and implementation 10 *******************************************************************************/ 11 12 package org.eclipse.jdt.core; 13 14 /** 15 * Abstract base implementation of all classpath variable initializers. 16 * Classpath variable initializers are used in conjunction with the 17 * "org.eclipse.jdt.core.classpathVariableInitializer" extension point. 18 * <p> 19 * Clients should subclass this class to implement a specific classpath 20 * variable initializer. The subclass must have a public 0-argument 21 * constructor and a concrete implementation of <code>initialize</code>. 22 * 23 * @see IClasspathEntry 24 * @since 2.0 25 */ 26 public abstract class ClasspathVariableInitializer { 27 28 /** 29 * Creates a new classpath variable initializer. 30 */ 31 public ClasspathVariableInitializer() { 32 // a classpath variable initializer must have a public 0-argument constructor 33 } 34 35 /** 36 * Binds a value to the workspace classpath variable with the given name, 37 * or fails silently if this cannot be done. 38 * <p> 39 * A variable initializer is automatically activated whenever a variable value 40 * is needed and none has been recorded so far. The implementation of 41 * the initializer can set the corresponding variable using 42 * <code>JavaCore#setClasspathVariable</code>. 43 * 44 * @param variable the name of the workspace classpath variable 45 * that requires a binding 46 * 47 * @see JavaCore#getClasspathVariable(String) 48 * @see JavaCore#setClasspathVariable(String, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor) 49 * @see JavaCore#setClasspathVariables(String[], org.eclipse.core.runtime.IPath[], org.eclipse.core.runtime.IProgressMonitor) 50 */ 51 public abstract void initialize(String variable); 52 } 53