void addNull() { final byte[] declaredMemberName = consumeDeclaredMemberName(); scripts.add(createNullObjectScript(declaredMemberName)); }
void addNull() { final byte[] declaredMemberName = consumeDeclaredMemberName(); scripts.add(createNullObjectScript(declaredMemberName)); }
void addNull() { final byte[] declaredMemberName = consumeDeclaredMemberName(); scripts.add(createNullObjectScript(declaredMemberName)); }
<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); }
public <M> JSONBuilder<R, M> beginObject(final ToMemberFunction<T, M> accessor) { final byte[] declaredMemberName = consumeDeclaredMemberName(); final StringTemplateBuilder<M> accessorScript = new StringTemplateBuilder<>(); kw.OpenObj(accessorScript, depth); final ThreadLocal<ObjectRenderState> newOrs = createOrs(); 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); newOrs.get().beginObjectRender(); accessorScript.render(writer, accessor.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 accessor.get(o) == null ? 0 : 1; } }); JSONBuilder<R, M> builder = new JSONBuilder<>(accessorScript, kw, depth + 1, root); builder.ors = newOrs; return builder; }
public <M> JSONBuilder<R, M> beginObject(final ToMemberFunction<T, M> accessor) { final byte[] declaredMemberName = consumeDeclaredMemberName(); final StringTemplateBuilder<M> accessorScript = new StringTemplateBuilder<>(); kw.OpenObj(accessorScript, depth); final ObjectRenderState newOrs = new ObjectRenderState(kw); 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); newOrs.beginObjectRender(); accessorScript.render(writer, accessor.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 accessor.get(o) == null ? 0 : 1; } }); JSONBuilder<R, M> builder = new JSONBuilder<>(accessorScript, kw, depth + 1, root); builder.ors = newOrs; return builder; }
public <M> JSONBuilder<R, M> beginObject(final ToMemberFunction<T, M> accessor) { final byte[] declaredMemberName = consumeDeclaredMemberName(); final StringTemplateBuilder<M> accessorScript = new StringTemplateBuilder<>(); kw.OpenObj(accessorScript, depth); final ObjectRenderState newOrs = new ObjectRenderState(kw); 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); newOrs.beginObjectRender(); accessorScript.render(writer, accessor.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 accessor.get(o) == null ? 0 : 1; } }); JSONBuilder<R, M> builder = new JSONBuilder<>(accessorScript, kw, depth + 1, root); builder.ors = newOrs; return builder; }