private void writeJSON(final PrintWriter pw) throws IOException {
final List<ServletDetails> servlets = this.getServletDetails();
final List<WebDetail> web = this.getWebDetails();
final String statusLine = this.getStatusLine(servlets, web);
final JSONWriter jw = new JSONWriter(pw);
try {
jw.object();
jw.key("status");
jw.value(statusLine);
jw.key("contexts");
jw.array();
for (ServletDetails servlet : servlets) {
jw.object();
jw.key("id");
jw.value(servlet.getId());
jw.key("servlet");
jw.value(servlet.getServlet());
jw.key("servletName");
jw.value(servlet.getServletName());
jw.key("state");
jw.value(servlet.getState());
jw.key("alias");
jw.value(servlet.getAlias());
jw.key("urls");
jw.array();
for (String url : servlet.getUrls()) {
jw.value(url);
}
jw.endArray();
jw.endObject();
}
jw.endArray();
jw.key("web");
jw.array();
for (WebDetail webDetail : web) {
jw.object();
jw.key("id");
jw.value(webDetail.getBundleId());
jw.key("bundlestate");
jw.value(webDetail.getState());
jw.key("contextpath");
jw.value(webDetail.getContextPath());
jw.key("state");
jw.value(webDetail.getWebState());
jw.endObject();
}
jw.endArray();
jw.endObject();
} catch (JSONException je) {
throw new IOException(je.toString());
}
}