JSONBuilder(JSONKeywords kw) { this(new StringTemplateBuilder<T>(), kw, 0, null); }
JSONBuilder(JSONKeywords kw) { this(new StringTemplateBuilder<T>(), kw, 0, null); }
JSONBuilder() { this(new StringTemplateBuilder<T>(), JSONKeywords.instance, 0, null); }
JSONBuilder() { this(new StringTemplateBuilder<T>(), JSONKeywords.instance, 0, null); }
JSONBuilder(JSONKeywords kw) { this(new StringTemplateBuilder<T>(), kw, 0, null); }
JSONBuilder<R, T> tryCase() { final byte[] declaredMemberName = this.declaredMemberName; // Do not consume for other try JSONBuilder<R, T> builder = new JSONBuilder<R, T>(new StringTemplateBuilder<T>(), kw, depth, root); builder.declaredMemberName = declaredMemberName; builder.ors = ors; return builder; }
JSONBuilder<R, T> tryCase() { final byte[] declaredMemberName = this.declaredMemberName; // Do not consume for other try JSONBuilder<R, T> builder = new JSONBuilder<R, T>(new StringTemplateBuilder<T>(), kw, depth, root); builder.declaredMemberName = declaredMemberName; builder.ors = ors; return builder; }
JSONBuilder<R, T> tryCase() { final byte[] declaredMemberName = this.declaredMemberName; // Do not consume for other try JSONBuilder<R, T> builder = new JSONBuilder<R, T>(new StringTemplateBuilder<T>(), kw, depth, root); builder.declaredMemberName = declaredMemberName; builder.ors = ors; return builder; }
JSONBuilder() { this(new StringTemplateBuilder<T>(), new JSONKeywords(), 0, null); }
JSONBuilder<R, T> beginSelect() { final byte[] declaredMemberName = consumeDeclaredMemberName(); JSONBuilder<R, T> builder = new JSONBuilder<R, T>(new StringTemplateBuilder<T>(), kw, depth, root); builder.declaredMemberName = declaredMemberName; builder.ors = ors; this.scripts.add(builder); return builder; }
JSONBuilder<R, T> beginSelect() { final byte[] declaredMemberName = consumeDeclaredMemberName(); JSONBuilder<R, T> builder = new JSONBuilder<R, T>(new StringTemplateBuilder<T>(), kw, depth, root); builder.declaredMemberName = declaredMemberName; builder.ors = ors; this.scripts.add(builder); return builder; }
JSONBuilder<R, T> beginSelect() { final byte[] declaredMemberName = consumeDeclaredMemberName(); JSONBuilder<R, T> builder = new JSONBuilder<R, T>(new StringTemplateBuilder<T>(), kw, depth, root); builder.declaredMemberName = declaredMemberName; builder.ors = ors; this.scripts.add(builder); return builder; }
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); }
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); }
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); }
<N, M> JSONBuilder<R, M> beginObject(final IteratorFunction<T, N> iterator, final IterMemberFunction<T, M> accessor) { final StringTemplateBuilder<M> accessorBranch = new StringTemplateBuilder<>(); kw.OpenObj(accessorBranch, depth); final ObjectRenderState newOrs = new ObjectRenderState(kw); iterate(iterator, true, new IterMemberFunction<T, M>() { @Override public M get(T o, int i) { newOrs.beginObjectRender(); return accessor.get(o, i); } }, new RenderIteration<M, N>() { @Override public void render(AppendableByteWriter writer, M m, int i) { accessorBranch.render(writer, m); } }); JSONBuilder<R, M> builder = new JSONBuilder<>(accessorBranch, kw, depth + 1, root); builder.ors = newOrs; return builder; }
<N, M> JSONBuilder<R, M> beginObject(final IteratorFunction<T, N> iterator, final IterMemberFunction<T, M> accessor) { final StringTemplateBuilder<M> accessorBranch = new StringTemplateBuilder<>(); kw.OpenObj(accessorBranch, depth); final ThreadLocal<ObjectRenderState> newOrs = createOrs(); iterate(iterator, true, new IterMemberFunction<T, M>() { @Override public M get(T o, int i) { newOrs.get().beginObjectRender(); return accessor.get(o, i); } }, new RenderIteration<M, N>() { @Override public void render(AppendableByteWriter writer, M m, int i, N node) { accessorBranch.render(writer, m); } }); JSONBuilder<R, M> builder = new JSONBuilder<>(accessorBranch, kw, depth + 1, root); builder.ors = newOrs; return builder; }
<N, M> JSONBuilder<R, M> beginObject(final IteratorFunction<T, N> iterator, final IterMemberFunction<T, M> accessor) { final StringTemplateBuilder<M> accessorBranch = new StringTemplateBuilder<>(); kw.OpenObj(accessorBranch, depth); final ObjectRenderState newOrs = new ObjectRenderState(kw); iterate(iterator, true, new IterMemberFunction<T, M>() { @Override public M get(T o, int i) { newOrs.beginObjectRender(); return accessor.get(o, i); } }, new RenderIteration<M, N>() { @Override public void render(AppendableByteWriter writer, M m, int i) { accessorBranch.render(writer, m); } }); JSONBuilder<R, M> builder = new JSONBuilder<>(accessorBranch, kw, depth + 1, root); builder.ors = newOrs; return builder; }
<M> JSONBuilder<R, M> beginArray(final ToMemberFunction<T, M> func) { final byte[] declaredMemberName = consumeDeclaredMemberName(); final StringTemplateBuilder<M> arrayBuilder = new StringTemplateBuilder<>(); kw.OpenArray(arrayBuilder, depth); final StringTemplateScript<T> objNullBranch = createNullObjectScript(declaredMemberName); final StringTemplateScript<T> notNullBranch = new StringTemplateScript<T>() { @Override public void render(AppendableByteWriter writer, T source) { prefixObjectMemberName(declaredMemberName, depth, writer); arrayBuilder.render(writer, func.get(source)); } }; final StringTemplateScript<T>[] nullableBranches = new StringTemplateScript[2]; nullableBranches[0] = objNullBranch; nullableBranches[1] = notNullBranch; scripts.add(nullableBranches, new StringTemplateBranching<T>() { @Override public int branch(T o) { return func.get(o) == null ? 0 : 1; } }); return new JSONBuilder<R, M>(arrayBuilder, kw, depth + 1, root); }
<M> JSONBuilder<R, M> beginArray(final ToMemberFunction<T, M> func) { final byte[] declaredMemberName = consumeDeclaredMemberName(); final StringTemplateBuilder<M> arrayBuilder = new StringTemplateBuilder<>(); kw.OpenArray(arrayBuilder, depth); final StringTemplateScript<T> objNullBranch = createNullObjectScript(declaredMemberName); final StringTemplateScript<T> notNullBranch = new StringTemplateScript<T>() { @Override public void render(AppendableByteWriter writer, T source) { prefixObjectMemberName(declaredMemberName, depth, writer); arrayBuilder.render(writer, func.get(source)); } }; final StringTemplateScript<T>[] nullableBranches = new StringTemplateScript[2]; nullableBranches[0] = objNullBranch; nullableBranches[1] = notNullBranch; scripts.add(nullableBranches, new StringTemplateBranching<T>() { @Override public int branch(T o) { return func.get(o) == null ? 0 : 1; } }); return new JSONBuilder<R, M>(arrayBuilder, kw, depth + 1, root); }