void endArray() { kw.CloseArray(scripts, depth); }
void endObject() { kw.CloseObj(scripts, depth); }
void complete() { kw.Complete(scripts, depth); }
void prefixObjectMemberName(byte[] declaredMemberName, int depth, ByteWriter writer) { objectElementIndex++; if (objectElementIndex == 0) { kw.FirstObjectElement(writer, depth); } else { kw.NextObjectElement(writer, depth); } writer.write(declaredMemberName); kw.ObjectValue(writer, depth); } }
@Override public void render(AppendableByteWriter writer, T o, int i) { if (!checkNull) { kw.Quote(writer); func.applyAsString(o, i, writer); kw.Quote(writer); } else { nabww.externalWriter = writer; nabww.wasNull = false; nabww.needsQuote = true; func.applyAsString(o, i, nabww); if (!nabww.wasNull) { kw.Quote(writer); } else { //Note we are already reset to the beginning. kw.Null(writer); } } } });
@Override public N render(final AppendableByteWriter writer, T source, int i, N node) { node = iterator.get(source, i, node); if (node != null) { if (i > 0) { kw.NextArrayElement(writer, depth); } if (isNull != null && isNull.applyAsBool(source, i)) { kw.Null(writer); } else { func.render(writer, source, i, node); } } return node; } });
@Override public void render(AppendableByteWriter writer, T source) { prefixObjectMemberName(declaredMemberName, depth, writer); kw.Null(writer); } };
public <N, M> JSONBuilder<R, M> beginArray(final IteratorFunction<T, N> iterator, final IterMemberFunction<T, M> func) { final StringTemplateBuilder<M> notNullBranch = new StringTemplateBuilder<>(); kw.OpenArray(notNullBranch, depth); iterate(iterator, true, func, new RenderIteration<M, N>() { @Override public void render(AppendableByteWriter writer, M m, int i) { notNullBranch.render(writer, m); } }); return new JSONBuilder<R, M>(notNullBranch, kw, depth + 1, root); }
void prefixObjectMemberName(byte[] declaredMemberName, int depth, ByteWriter writer) { objectElementIndex++; if (objectElementIndex == 0) { kw.FirstObjectElement(writer, depth); } else { kw.NextObjectElement(writer, depth); } writer.write(declaredMemberName); kw.ObjectValue(writer, depth); } }
@Override public boolean render(final AppendableByteWriter<?> writer, T source, int i) { N node = iterator.get(source, i); if (node != null) { if (i > 0) { kw.NextArrayElement(writer, depth); } if (isNull != null && isNull.applyAsBool(source, i)) { kw.Null(writer); } else { func.render(writer, source, i); } return true; } return false; } });
@Override public void render(AppendableByteWriter writer, T source) { prefixObjectMemberName(declaredMemberName, depth, writer); if (!checkNull) { kw.Quote(writer); func.applyAsString(source, writer); kw.Quote(writer); } else { nabww.externalWriter = writer; nabww.wasNull = false; nabww.needsQuote = true; func.applyAsString(source, nabww); if (!nabww.wasNull) { kw.Quote(writer); } else { //Note we are already reset to the beginning. kw.Null(writer); } } } });
@Override public void render(AppendableByteWriter writer, T source) { prefixObjectMemberName(declaredMemberName, depth, writer); kw.Null(writer); } };
public <N, M> JSONBuilder<R, M> beginArray(final IteratorFunction<T, N> iterator, final IterMemberFunction<T, M> func) { final StringTemplateBuilder<M> notNullBranch = new StringTemplateBuilder<>(); kw.OpenArray(notNullBranch, depth); iterate(iterator, true, func, new RenderIteration<M, N>() { @Override public void render(AppendableByteWriter writer, M m, int i, N node) { notNullBranch.render(writer, m); } }); return new JSONBuilder<R, M>(notNullBranch, kw, depth + 1, root); }
void prefixObjectMemberName(byte[] declaredMemberName, int depth, ByteWriter writer) { objectElementIndex++; if (objectElementIndex == 0) { kw.FirstObjectElement(writer, depth); } else { kw.NextObjectElement(writer, depth); } writer.write(declaredMemberName); kw.ObjectValue(writer, depth); } }
@Override public N render(final AppendableByteWriter writer, T source, int i, N node) { node = iterator.get(source, i, node); if (node != null) { if (i > 0) { kw.NextArrayElement(writer, depth); } M member = accessor.get(source, i); if (checkNull && member == null) { kw.Null(writer); } else { func.render(writer, member, i, node); } } return node; } });