}
@Override
public String getCsvItem(State itemState) {
StringWriter string = new StringWriter();
@SuppressWarnings("resource")
HtmlWriter html = new HtmlWriter(string);
html.putOverride(Recordable.class, new HtmlFormatter<Recordable>() {
@Override
public void format(HtmlWriter writer, Recordable object) throws IOException {
if (object != null) {
writer.writeRaw(object.getState().getLabel());
}
}
});
html.putOverride(Metric.class, new HtmlFormatter<Metric>() {
@Override
public void format(HtmlWriter writer, Metric object) throws IOException {
writer.write(new Double(object.getSum()).toString());
}
});
html.putOverride(StorageItem.class, new HtmlFormatter<StorageItem>() {
@Override
public void format(HtmlWriter writer, StorageItem item) throws IOException {
writer.write(item.getPublicUrl());
}
});
try {
for (Iterator<Object> i = CollectionUtils.recursiveIterable(itemState.get(getInternalName())).iterator(); i.hasNext();) {
Object value = i.next();
html.writeObject(value);
if (i.hasNext()) {
html.write(", ");
}
}
} catch (IOException error) {
throw new IllegalStateException(error);