private void endNewLine() { if (depth-- > 0) { if (((format.mode() & Format.COMPACT_EMPTY_ELEMENT) != 0) && newLineProposed) { newLineProposed = false; } else { writeNewLine(); } } }
/** * @deprecated As of 1.4 use {@link JsonWriter#JsonWriter(Writer, Format) instead} */ public JsonWriter(Writer writer, char[] lineIndenter) { this(writer, 0, new Format(lineIndenter, new char[]{'\n'}, Format.SPACE_AFTER_LABEL | Format.COMPACT_EMPTY_ELEMENT)); }
/** * Create a HierarchicalStreamWriter that writes JSON. */ public HierarchicalStreamWriter createWriter(Writer out) { return new JsonWriter(out); }
@Override public HierarchicalStreamWriter createWriter(Writer writer) { return new JsonWriter(writer, JsonWriter.DROP_ROOT_MODE, new JsonWriter.Format(new char[0], new char[0], JsonWriter.Format.SPACE_AFTER_LABEL | JsonWriter.Format.COMPACT_EMPTY_ELEMENT)); } });
/** * {@inheritDoc} */ protected void addLabel(String name) { if (newLineProposed) { writeNewLine(); } writer.write('"'); writeText(name); writer.write("\":"); if ((format.mode() & Format.SPACE_AFTER_LABEL) != 0) { writer.write(' '); } }
/** * {@inheritDoc} */ protected void startArray() { if (newLineProposed) { writeNewLine(); } writer.write("["); startNewLine(); }
private void handleCheckedStateTransition(final int requiredState, final String elementToAdd, final String valueToAdd) { final StackElement stackElement = (StackElement)stack.peek(); if ((expectedStates & requiredState) == 0) { throw new IllegalWriterStateException(stackElement.status, requiredState, elementToAdd); } int currentState = handleStateTransition(stackElement.status, requiredState, elementToAdd, valueToAdd); stackElement.status = currentState; }
public void startNode(String name, Class clazz) { if (name == null) { throw new NullPointerException("name"); } stack.push(new StackElement(clazz, ((StackElement)stack.peek()).status)); handleCheckedStateTransition(STATE_START_OBJECT, name, null); expectedStates = STATE_SET_VALUE | STATE_NEXT_ATTRIBUTE | STATE_START_OBJECT | STATE_NEXT_ELEMENT | STATE_ROOT; }
public void addAttribute(String name, String value) { handleCheckedStateTransition(STATE_NEXT_ATTRIBUTE, name, value); expectedStates = STATE_SET_VALUE | STATE_NEXT_ATTRIBUTE | STATE_START_OBJECT | STATE_NEXT_ELEMENT | STATE_ROOT; }
public void startNode(String name) { startNode(name, null); }
/** * {@inheritDoc} */ protected void nextElement() { writer.write(","); writeNewLine(); }
/** * {@inheritDoc} */ protected void endArray() { endNewLine(); writer.write("]"); }
/** * Create a JsonWriter where the writer mode can be chosen. * * @param writer the {@link Writer} where the JSON is written to * @param mode the JsonWriter mode * @since 1.3.1 * @see #JsonWriter(Writer, int, Format) */ public JsonWriter(Writer writer, int mode) { this(writer, mode, new Format()); }
/** * {@inheritDoc} */ protected void startObject() { if (newLineProposed) { writeNewLine(); } writer.write('{'); startNewLine(); }
public void endNode() { int size = stack.size(); int nextState = size > 2 ? STATE_NEXT_ELEMENT : STATE_ROOT; handleCheckedStateTransition(nextState, null, null); stack.pop(); ((StackElement)stack.peek()).status = nextState; expectedStates = STATE_START_OBJECT; if (size > 2) { expectedStates |= STATE_NEXT_ELEMENT | STATE_ROOT; } }
public JsonWriter(Writer writer) { this(writer, 0, new Format( new char[]{' ', ' '}, new char[]{'\n'}, Format.SPACE_AFTER_LABEL | Format.COMPACT_EMPTY_ELEMENT)); }
/** * @deprecated As of 1.4 use {@link JsonWriter#JsonWriter(Writer, Format) instead} */ public JsonWriter(Writer writer, String lineIndenter) { this(writer, 0, new Format( lineIndenter.toCharArray(), new char[]{'\n'}, Format.SPACE_AFTER_LABEL | Format.COMPACT_EMPTY_ELEMENT)); }
/** * @deprecated As of 1.4 use {@link JsonWriter#JsonWriter(Writer, Format) instead} */ public JsonWriter(Writer writer, char[] lineIndenter, String newLine) { this(writer, 0, new Format( lineIndenter, newLine.toCharArray(), Format.SPACE_AFTER_LABEL | Format.COMPACT_EMPTY_ELEMENT)); }
/** * @since 1.3.1 * @deprecated As of 1.4 use {@link JsonWriter#JsonWriter(Writer, int, Format) instead} */ public JsonWriter(Writer writer, char[] lineIndenter, String newLine, int mode) { this(writer, mode, new Format( lineIndenter, newLine.toCharArray(), Format.SPACE_AFTER_LABEL | Format.COMPACT_EMPTY_ELEMENT)); }