package com.team254.frc2015.auto;
import com.team254.frc2015.auto.modes.DoNothingAutoMode;
import com.team254.frc2015.auto.modes.PeacockAutoMode;
import com.team254.frc2015.auto.modes.ThreeToteAutoMode;
import org.json.simple.JSONArray;
import java.util.ArrayList;
public class AutoModeSelector {
private static AutoModeSelector instance = null;
private ArrayList<AutoMode> autoModes = new ArrayList<AutoMode>();
int selectedIndex = 0;
public static AutoModeSelector getInstance() {
if (instance == null) {
instance = new AutoModeSelector();
}
return instance;
}
public void registerAutonomous(AutoMode auto) {
autoModes.add(auto);
}
public AutoModeSelector() {
registerAutonomous(new ThreeToteAutoMode());
registerAutonomous(new PeacockAutoMode());
registerAutonomous(new DoNothingAutoMode());
}
public AutoMode getAutoMode() {
return autoModes.get(selectedIndex);
}
public ArrayList<String> getAutoModeList() {
ArrayList<String> list = new ArrayList<String>();
for (AutoMode autoMode : autoModes) {
list.add(autoMode.getClass().getSimpleName());
}
return list;
}
public JSONArray getAutoModeJSONList() {
JSONArray list = new JSONArray();
list.addAll(getAutoModeList());
return list;
}
public void setFromWebUI(int index) {
setAutoModeByIndex(index);
}
private void setAutoModeByIndex(int which) {
if (which < 0 || which >= autoModes.size()) {
which = 0;
}
selectedIndex = which;
}
}