package foundation.io.object; import java.util.Iterator; import foundation.json.IJSONProvider; import foundation.json.IJSONWriter; import foundation.util.ContentBuilder; import foundation.util.MapList; import foundation.util.Util; public class Headers implements Iterable
, IJSONProvider { private MapList items; public Headers() { items = new MapList(); } public void addOne(int index, String title, String value) { if (Util.isEmpty(title) && Util.isEmpty(value)) { return; } Header header = new Header(index, title, value); items.add(title, header); } public void addOne(String title) { int index = items.size(); Header header = new Header(index, title, null); items.add(title, header); } public boolean contains(String title) { return items.contains(title); } public Titles getTitles() { Titles result = new Titles(); for (Header header: items) { result.add(header.getTitle()); } return result; } public int size() { return items.size(); } public boolean isEmpty() { return items.isEmpty(); } public void clear() { items.clear(); } @Override public Iterator
iterator() { return items.iterator(); } @Override public String toString() { ContentBuilder builder = new ContentBuilder(", "); for (Header header: items) { builder.append(header.getTitle() + "(" + header.getFieldName() + ")"); } return builder.toString(); } @Override public void writeJSON(IJSONWriter writer) { writer.beginArray(); for (Header header: items) { writer.beginObject(); writer.write("title", header.getTitle()); writer.write("field", header.getFieldName()); writer.endObject(); } writer.endArray(); } }