/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.ohd.pophealth.json.measuremodel;
import java.io.IOException;
import java.io.StringWriter;
import java.util.ArrayList;
import org.codehaus.jackson.JsonFactory;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonGenerator;
import org.codehaus.jackson.map.JsonMappingException;
/**
*
* @author ohdohd
*/
public class DateRangeItem extends Item {
private ArrayList<Range> dates;
public DateRangeItem() {
this.dates = new ArrayList<Range>();
}
public DateRangeItem(long start, long end) {
this();
this.dates.add(new Range(start, end));
}
public void addRange(long start, long end) {
this.dates.add(new Range(start, end));
}
private static JsonFactory jf = new JsonFactory();
@Override
public String toJSON(boolean prettyPrint) throws JsonMappingException, JsonGenerationException, IOException {
StringWriter sw = new StringWriter();
JsonGenerator jg = jf.createJsonGenerator(sw);
// if (prettyPrint) {
// jg.useDefaultPrettyPrinter();
// }
jg.writeStartArray();
for (Range r : this.dates){
jg.writeStartObject();
jg.writeFieldName("start");
jg.writeNumber(r.start);
jg.writeFieldName("end");
jg.writeNumber(r.end);
jg.writeEndObject();
}
jg.writeEndArray();
jg.flush();
jg.close();
return sw.toString();
}
public class Range {
private long start;
private long end;
public Range(long start, long end) {
this.start = start;
this.end = end;
}
public long getEnd() {
return end;
}
public void setEnd(long end) {
this.end = end;
}
public long getStart() {
return start;
}
public void setStart(long start) {
this.start = start;
}
}
}