1 /******************************************************************************* 2 * Copyright (c) 2000, 2009 IBM Corporation and others. 3 * 4 * This program and the accompanying materials 5 * are made available under the terms of the Eclipse Public License 2.0 6 * which accompanies this distribution, and is available at 7 * https://www.eclipse.org/legal/epl-2.0/ 8 * 9 * SPDX-License-Identifier: EPL-2.0 10 * 11 * Contributors: 12 * IBM Corporation - initial API and implementation 13 *******************************************************************************/ 14 package org.eclipse.jdt.core.tests.model; 15 16 import org.eclipse.core.runtime.IPath; 17 import org.eclipse.jdt.core.ClasspathVariableInitializer; 18 import org.eclipse.jdt.core.JavaCore; 19 import org.eclipse.jdt.core.JavaModelException; 20 21 public class VariablesInitializer extends ClasspathVariableInitializer { 22 23 public static ITestInitializer initializer; 24 25 public static interface ITestInitializer { initialize(String variable)26 public void initialize(String variable) throws JavaModelException; 27 } 28 reset()29 public static void reset() { 30 initializer = null; 31 String[] varNames = JavaCore.getClasspathVariableNames(); 32 try { 33 JavaCore.setClasspathVariables(varNames, new IPath[varNames.length], null); 34 } catch (JavaModelException e) { 35 e.printStackTrace(); 36 } 37 } 38 setInitializer(ITestInitializer initializer)39 public static void setInitializer(ITestInitializer initializer) { 40 VariablesInitializer.initializer = initializer; 41 } 42 initialize(String variable)43 public void initialize(String variable) { 44 if (initializer == null) return; 45 try { 46 initializer.initialize(variable); 47 } catch (JavaModelException e) { 48 e.printStackTrace(); 49 } 50 } 51 } 52