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); }
<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); }
<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); }