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<Header>, IJSONProvider {
|
|
private MapList<String, Header> items;
|
|
public Headers() {
|
items = new MapList<String, Header>();
|
}
|
|
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<Header> 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();
|
}
|
|
}
|