package net.mms_projects.utils; import java.util.LinkedHashMap; public class InlineSwitch<I, O> { private LinkedHashMap<I, O> clauses = new LinkedHashMap<I, O>(); private O defaultValue; public void addClause(I input, O output) { clauses.put(input, output); } public void setDefault(O output) { this.defaultValue = output; } public O runSwitch(I input) { for (I key : clauses.keySet()) { if (key.equals(input)) { return clauses.get(key); } } return this.defaultValue; } public void runSwitch(I input, Runnable runnable) { for (I key : clauses.keySet()) { if (key.equals(input)) { runnable.run(); } } } }