package com.netifera.platform.ui.internal.spaces.visualizations;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import com.netifera.platform.api.model.ISpace;
import com.netifera.platform.ui.spaces.visualizations.ISpaceVisualization;
import com.netifera.platform.ui.spaces.visualizations.ISpaceVisualizationFactory;
import com.netifera.platform.ui.spaces.visualizations.ISpaceVisualizationProvider;
public class SpaceVisualizationFactory implements ISpaceVisualizationFactory {
private final Map<String,ISpaceVisualizationProvider> providers = new HashMap<String,ISpaceVisualizationProvider>();
public synchronized ISpaceVisualization create(String name, ISpace space) {
return providers.get(name).create(space);
}
public synchronized Set<String> getVisualizationNames() {
return providers.keySet();
}
protected synchronized void registerProvider(ISpaceVisualizationProvider provider) {
providers.put(provider.getName(), provider);
}
protected synchronized void unregisterProvider(ISpaceVisualizationProvider provider) {
providers.remove(provider.getName());
}
}