package uva.qls.interpreter.typecheck; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public enum CheckWidget { radio("boolean"), dropdown("boolean"), checkbox("boolean"), slider("integer"), spinbox("integer"), intTextBox("integer"), strTextBox("string"), monSlider("money"), monSpinbox("money"), monTextbox("money"); private String type; private CheckWidget(String _type){ this.type = _type; } public String getName(){ if (this.hasPrefix(Arrays.asList("int","str","mon"))){ return this.name().substring(3).toLowerCase(); } return name(); } private boolean hasPrefix(List<String> prefix){ return prefix.contains(this.name().subSequence(0, 3)); } public String getType(){ return this.type; } public static CheckWidget detectType(String _type){ for (CheckWidget kind : CheckWidget.values()) if (_type.equals(kind.getType())){ return kind; } return null; } public static List<CheckWidget> detectTypes(String _type){ List<CheckWidget> widgets = new ArrayList<CheckWidget>(); for (CheckWidget kind : CheckWidget.values()){ if (_type.equals(kind.getType())){ widgets.add(kind); } } return widgets; } }