package edu.isi.karma.controller.command.selection; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import edu.isi.karma.webserver.KarmaException; public class SuperSelectionManager { public static final String DEFAULT_SELECTION_NAME = "DEFAULT_SELECTION"; public static final String DEFAULT_SELECTION_TEST_NAME = "DEFAULT_TEST"; private Map<String, SuperSelection> selectionMapping = new HashMap<>(); public static final SuperSelection DEFAULT_SELECTION = new SuperSelection(DEFAULT_SELECTION_NAME); public SuperSelectionManager() { selectionMapping.put(DEFAULT_SELECTION_NAME, DEFAULT_SELECTION); selectionMapping.put(DEFAULT_SELECTION_TEST_NAME, new SuperSelection(DEFAULT_SELECTION_TEST_NAME)); } public SuperSelection defineSelection(String name) { SuperSelection t = new SuperSelection(name); selectionMapping.put(name, t); return t; } public SuperSelection defineSelection(String name, SuperSelection sel) { selectionMapping.put(name, sel); return sel; } public boolean removeSelection(String name) { return (selectionMapping.remove(name) != null); } public void renameSelection(String oldName, String newName) throws KarmaException { SuperSelection t = selectionMapping.get(oldName); if (t != null) { selectionMapping.remove(oldName); selectionMapping.put(newName, t); } else throw new KarmaException("Name not Found"); } public boolean hasSelection(String name) { return selectionMapping.containsKey(name); } public SuperSelection getSuperSelection(String name) { if (name == null) return DEFAULT_SELECTION; SuperSelection sel = selectionMapping.get(name); return sel == null ? DEFAULT_SELECTION : sel; } public List<SuperSelection> getAllDefinedSelection() { return new ArrayList<>(selectionMapping.values()); } }