package org.eclipse.dltk.core.tests.util; import java.io.Closeable; import java.io.IOException; import java.net.URI; import java.util.Collections; import java.util.HashMap; import java.util.Map; import org.eclipse.core.resources.IProject; import org.eclipse.dltk.core.environment.IEnvironment; import org.eclipse.dltk.core.environment.IEnvironmentProvider; public class EnvironmentProvider implements IEnvironmentProvider { public static Map<String, IEnvironment> environments = Collections .synchronizedMap(new HashMap<String, IEnvironment>()); public EnvironmentProvider() { } @Override public String getProviderName() { return "Test environment provider"; } @Override public IEnvironment[] getEnvironments() { return environments.keySet().toArray(new IEnvironment[0]); } @Override public IEnvironment getEnvironment(String envId) { return environments.get(envId); } @Override public boolean isInitialized() { return true; } @Override public void waitInitialized() { } @Override public IEnvironment getProjectEnvironment(IProject project) { return null; } @Override public IEnvironment getEnvironment(URI locationURI) { return environments.get(locationURI.getScheme()); } public static Closeable setEnvironment(final IEnvironment environment) { final String id = environment.getId(); environments.put(id, environment); return new Closeable() { @Override public void close() throws IOException { environments.remove(id); } }; } }