package org.json; import java.io.IOException; import java.io.Writer; import java.util.Iterator; import org.romaframework.aspect.view.html.HtmlViewAspectHelper; import org.romaframework.aspect.view.html.css.StyleBuffer; import org.romaframework.aspect.view.html.taglib.RomaInlineCssTag; public class CssJSONObject extends JSONObject { @Override public Writer write(Writer writer) throws JSONException { try { boolean b = false; Iterator<String> keys = keys(); writer.write('{'); while (keys.hasNext()) { if (b) { writer.write(','); } Object k = keys.next(); writer.write(quote(k.toString())); writer.write(':'); Object v = this.map.get(k); if (v instanceof JSONObject) { ((JSONObject) v).write(writer); } else if (v instanceof JSONArray) { ((JSONArray) v).write(writer); } else if (v instanceof JSONWriteable) { writer.write('"'); ((JSONWriteable) v).write(new QuotedWriter(writer)); writer.write('"'); } else { writer.write(valueToString(v)); } b = true; } StyleBuffer cssBuffer = HtmlViewAspectHelper.getCssBuffer(); if (cssBuffer.isChanged()) { if (b) { writer.write(','); } writer.write(quote(RomaInlineCssTag.ROMA_INLINE_CSS_ID)); writer.write(':'); String style = "<style id=\"" + RomaInlineCssTag.ROMA_INLINE_CSS_ID + "\" type=\"text/css\">" + cssBuffer.getStyleBuffer() + "</style>\n"; writer.write(valueToString(style)); } writer.write('}'); return writer; } catch (IOException e) { throw new JSONException(e); } } }