blob: 668e4eb338f3b2af1105a10735787ab3906cbcf9 [file] [log] [blame]
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);
}
};
}
}