<N> void addInteger(final IteratorFunction<T, N> iterator, final IterBoolFunction<T> isNull, final IterLongFunction<T> func) { iterate(iterator, isNull, new RenderIteration<T, N>() { @Override public void render(AppendableByteWriter writer, T source, int i) { Appendables.appendValue(writer, func.applyAsLong(source, i), false); }}); }
<N, M> void addBuilder(final IteratorFunction<T, N> iterator, final JSONBuilder<?, M> builder, final IterMemberFunction<T, M> accessor) { iterate(iterator, true, accessor, new RenderIteration<M, N>() { @Override public void render(AppendableByteWriter writer, M m, int i, N node) { builder.render(writer, m); } }); }
<N> void addNull(final IteratorFunction<T, N> iterator) { iterate(iterator, new IterBoolFunction<T>() { @Override public boolean applyAsBool(T o, int i) { return true; } }, null); }
<N> void addNull(final IteratorFunction<T, N> iterator) { iterate(iterator, new IterBoolFunction<T>() { @Override public boolean applyAsBool(T o, int i) { return true; } }, null); }
<N> void addBool(final IteratorFunction<T, N> iterator, final IterBoolFunction<T> isNull, final IterBoolFunction<T> func) { iterate(iterator, isNull, new RenderIteration<T, N>() { @Override public void render(AppendableByteWriter writer, T source, int i, N node) { if (func.applyAsBool(source, i)) { kw.True(writer); } else { kw.False(writer); } }}); }
<N> void addNull(final IteratorFunction<T, N> iterator) { iterate(iterator, new IterBoolFunction<T>() { @Override public boolean applyAsBool(T o, int i) { return true; } }, null); }
<N> void addDecimal(final IteratorFunction<T, N> iterator, final int precision, final IterBoolFunction<T> isNull, final IterDoubleFunction<T> func) { iterate(iterator, isNull, new RenderIteration<T, N>() { @Override public void render(AppendableByteWriter writer, T source, int i) { double v = func.applyAsDouble(source, i); Appendables.appendDecimalValue(writer, (long) (v * PipeWriter.powd[64 + precision]), (byte) (precision * -1)); } }); }
<N> void addBool(final IteratorFunction<T, N> iterator, final IterBoolFunction<T> isNull, final IterBoolFunction<T> func) { iterate(iterator, isNull, new RenderIteration<T, N>() { @Override public void render(AppendableByteWriter writer, T source, int i) { if (func.applyAsBool(source, i)) { kw.True(writer); } else { kw.False(writer); } }}); }
<N> void addDecimal(final IteratorFunction<T, N> iterator, final int precision, final IterBoolFunction<T> isNull, final IterDoubleFunction<T> func) { iterate(iterator, isNull, new RenderIteration<T, N>() { @Override public void render(AppendableByteWriter writer, T source, int i) { double v = func.applyAsDouble(source, i); Appendables.appendDecimalValue(writer, (long) (v * PipeWriter.powd[64 + precision]), (byte) (precision * -1)); } }); }
<N> void addInteger(final IteratorFunction<T, N> iterator, final IterBoolFunction<T> isNull, final IterLongFunction<T> func) { iterate(iterator, isNull, new RenderIteration<T, N>() { @Override public void render(AppendableByteWriter writer, T source, int i, N node) { Appendables.appendValue(writer, func.applyAsLong(source, i)); }}); }
<N> void addDecimal(final IteratorFunction<T, N> iterator, final int precision, final IterBoolFunction<T> isNull, final IterDoubleFunction<T> func) { iterate(iterator, isNull, new RenderIteration<T, N>() { @Override public void render(AppendableByteWriter writer, T source, int i, N node) { double v = func.applyAsDouble(source, i); Appendables.appendDecimalValue(writer, (long) (v * PipeWriter.powd[64 + precision]), (byte) (precision * -1)); } }); }
<N, M> void addBuilder(final IteratorFunction<T, N> iterator, final JSONBuilder<?, M> builder, final IterMemberFunction<T, M> accessor) { iterate(iterator, true, accessor, new RenderIteration<M, N>() { @Override public void render(AppendableByteWriter writer, M m, int i) { builder.render(writer, m); } }); }
<N, E extends Enum<E>> void addEnumOrdinal(final IteratorFunction<T, N> iterator, final IterEnumFunction<T, E> func) { iterate(iterator, true, new IterMemberFunction<T, Enum>() { @Override public Enum get(T o, int i) { return func.applyAsEnum(o, i); } }, new RenderIteration<Enum, N>() { @Override public void render(AppendableByteWriter writer, Enum member, int i) { Appendables.appendValue(writer, member.ordinal()); } }); } }
<N> void addInteger(final IteratorFunction<T, N> iterator, final IterBoolFunction<T> isNull, final IterLongFunction<T> func) { iterate(iterator, isNull, new RenderIteration<T, N>() { @Override public void render(AppendableByteWriter writer, T source, int i) { Appendables.appendValue(writer, func.applyAsLong(source, i), false); }}); }
<N, M> void addBuilder(final IteratorFunction<T, N> iterator, final JSONBuilder<?, M> builder, final IterMemberFunction<T, M> accessor) { iterate(iterator, true, accessor, new RenderIteration<M, N>() { @Override public void render(AppendableByteWriter writer, M m, int i) { builder.render(writer, m); } }); }
<N> void addBool(final IteratorFunction<T, N> iterator, final IterBoolFunction<T> isNull, final IterBoolFunction<T> func) { iterate(iterator, isNull, new RenderIteration<T, N>() { @Override public void render(AppendableByteWriter writer, T source, int i) { if (func.applyAsBool(source, i)) { kw.True(writer); } else { kw.False(writer); } }}); }
<N, E extends Enum<E>> void addEnumOrdinal(final IteratorFunction<T, N> iterator, final IterEnumFunction<T, E> func) { iterate(iterator, true, new IterMemberFunction<T, Enum>() { @Override public Enum get(T o, int i) { return func.applyAsEnum(o, i); } }, new RenderIteration<Enum, N>() { @Override public void render(AppendableByteWriter writer, Enum member, int i, N node) { Appendables.appendValue(writer, member.ordinal()); } }); } }
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); }