package foundation.state.approve; import java.util.Iterator; import foundation.json.IJSONProvider; import foundation.json.IJSONWriter; import foundation.util.MapList; public class StepList implements Iterable, IJSONProvider { private MapList items; public StepList() { items = new MapList(); } public void loadOne(Step step) { items.add(step.getId(), step); } public Step get(String id) { return items.get(id); } public Step get(int idx) { return items.get(idx); } public int size() { return items.size(); } public Step getLast() { if (items.isEmpty()) { return null; } int idx = items.size() - 1; return items.get(idx); } @Override public Iterator iterator() { return items.iterator(); } @Override public void writeJSON(IJSONWriter writer) { writer.beginArray(); for (Step step: items) { step.writeJSON(writer); } writer.endArray(); } public void writeJSONBody(IJSONWriter writer) { for (Step step: items) { step.writeJSON(writer); } } }