public <M, N2> JSONArray<R, M, P, N2> array(IterMemberFunction<T, M> accessor, IteratorFunction<M, N2> iterator) { return new JSONArray<R, M, P, N2>(builder.beginArray(this.iterator, accessor), iterator) { @Override P arrayEnded() { return childCompleted(); } }; }
public <M, N2> JSONArray<R, M, P, N2> array(IterMemberFunction<T, M> accessor, IteratorFunction<M, N2> iterator) { return new JSONArray<R, M, P, N2>(builder.beginArray(this.iterator, accessor), iterator) { @Override P arrayEnded() { return childCompleted(); } }; }
public <M, N2> JSONArray<R, M, P, N2> array(IterMemberFunction<T, M> accessor, IteratorFunction<M, N2> iterator) { return new JSONArray<R, M, P, N2>(builder.beginArray(this.iterator, accessor), iterator) { @Override P arrayEnded() { return childCompleted(); } }; }
public <N2> JSONArray<R, N2[], P, N2[]> basicArray(IterMemberFunction<T, N2[]> accessor) { return new JSONArray<R, N2[], P, N2[]>( builder.beginArray(this.iterator, accessor), new IteratorFunction<N2[], N2[]>() { @Override public N2[] get(N2[] obj, int i) { return i < obj.length ? obj : null; } }) { @Override P arrayEnded() { return childCompleted(); } }; }
public <M extends List<N2>, N2> JSONArray<R, M, P, M> listArray(IterMemberFunction<T, M> accessor) { return new JSONArray<R, M, P, M>( builder.beginArray(this.iterator, accessor), new IteratorFunction<M, M>() { @Override public M get(M obj, int i, M node) { return i < obj.size() ? obj : null; } }) { @Override P arrayEnded() { return childCompleted(); } }; }
public <M extends List<N2>, N2> JSONArray<R, M, P, M> listArray(IterMemberFunction<T, M> accessor) { return new JSONArray<R, M, P, M>( builder.beginArray(this.iterator, accessor), new IteratorFunction<M, M>() { @Override public M get(M obj, int i) { return i < obj.size() ? obj : null; } }) { @Override P arrayEnded() { return childCompleted(); } }; }
static <R, T, P, M, N> JSONArray<R, M, P, N> createArray( JSONBuilder<R, T> builder, final ToMemberFunction<T, M> accessor, // Convert parent T to iteratable M final IteratorFunction<M, N> iterator, // iterate of M using N final ArrayCompletion<P> ending) { return new JSONArray<R, M, P, N>( // called by builder to select null script builder.beginArray(accessor), // called by script to iterate over array given re-accessing M from T iterator) { @Override P arrayEnded() { return ending.end(); } }; }
public <N2> JSONArray<R, N2[], P, N2[]> basicArray(IterMemberFunction<T, N2[]> accessor) { return new JSONArray<R, N2[], P, N2[]>( builder.beginArray(this.iterator, accessor), new IteratorFunction<N2[], N2[]>() { @Override public N2[] get(N2[] obj, int i) { return i < obj.length ? obj : null; } }) { @Override P arrayEnded() { return childCompleted(); } }; }
public <N2> JSONArray<R, N2[], P, N2[]> basicArray(IterMemberFunction<T, N2[]> accessor) { return new JSONArray<R, N2[], P, N2[]>( builder.beginArray(this.iterator, accessor), new IteratorFunction<N2[], N2[]>() { @Override public N2[] get(N2[] obj, int i, N2[] node) { return i < obj.length ? obj : null; } }) { @Override P arrayEnded() { return childCompleted(); } }; }
static <R, T, P, M, N> JSONArray<R, M, P, N> createArray( JSONBuilder<R, T> builder, final ToMemberFunction<T, M> accessor, // Convert parent T to iteratable M final IteratorFunction<M, N> iterator, // iterate of M using N final ArrayCompletion<P> ending) { return new JSONArray<R, M, P, N>( // called by builder to select null script builder.beginArray(accessor), // called by script to iterate over array given re-accessing M from T iterator) { @Override P arrayEnded() { return ending.end(); } }; }
static <R, T, P, M extends List<N>, N> JSONArray<R, M, P, M> createListArray( JSONBuilder<R, T> builder, final ToMemberFunction<T, M> accessor, final ArrayCompletion<P> ending) { return new JSONArray<R, M, P, M>( builder.beginArray(accessor), new IteratorFunction<M, M>() { @Override public M get(M o, int i) { return i < o.size() ? o : null; } }) { @Override P arrayEnded() { return ending.end(); } }; }
public <M extends List<N2>, N2> JSONArray<R, M, P, M> listArray(IterMemberFunction<T, M> accessor) { return new JSONArray<R, M, P, M>( builder.beginArray(this.iterator, accessor), new IteratorFunction<M, M>() { @Override public M get(M obj, int i) { return i < obj.size() ? obj : null; } }) { @Override P arrayEnded() { return childCompleted(); } }; }
static <R, T, P, M, N> JSONArray<R, M, P, N> createArray( JSONBuilder<R, T> builder, final ToMemberFunction<T, M> accessor, // Convert parent T to iteratable M final IteratorFunction<M, N> iterator, // iterate of M using N final ArrayCompletion<P> ending) { return new JSONArray<R, M, P, N>( // called by builder to select null script builder.beginArray(accessor), // called by script to iterate over array given re-accessing M from T iterator) { @Override P arrayEnded() { return ending.end(); } }; }
static <R, T, P, M extends List<N>, N> JSONArray<R, M, P, M> createListArray( JSONBuilder<R, T> builder, final ToMemberFunction<T, M> accessor, final ArrayCompletion<P> ending) { return new JSONArray<R, M, P, M>( builder.beginArray(accessor), new IteratorFunction<M, M>() { @Override public M get(M o, int i, M node) { return i < o.size() ? o : null; } }) { @Override P arrayEnded() { return ending.end(); } }; }
static <R, T, P, N> JSONArray<R, N[], P, N[]> createBasicArray( JSONBuilder<R, T> builder, final ToMemberFunction<T, N[]> accessor, final ArrayCompletion<P> ending) { return new JSONArray<R, N[], P, N[]>( builder.beginArray(accessor), new IteratorFunction<N[], N[]>() { @Override public N[] get(N[] o, int i) { return i < o.length ? o : null; } }) { @Override P arrayEnded() { return ending.end(); } }; }
static <R, T, P, N> JSONArray<R, N[], P, N[]> createBasicArray( JSONBuilder<R, T> builder, final ToMemberFunction<T, N[]> accessor, final ArrayCompletion<P> ending) { return new JSONArray<R, N[], P, N[]>( builder.beginArray(accessor), new IteratorFunction<N[], N[]>() { @Override public N[] get(N[] o, int i, N[] node) { return i < o.length ? o : null; } }) { @Override P arrayEnded() { return ending.end(); } }; }
static <R, T, P, M extends List<N>, N> JSONArray<R, M, P, M> createListArray( JSONBuilder<R, T> builder, final ToMemberFunction<T, M> accessor, final ArrayCompletion<P> ending) { return new JSONArray<R, M, P, M>( builder.beginArray(accessor), new IteratorFunction<M, M>() { @Override public M get(M o, int i) { return i < o.size() ? o : null; } }) { @Override P arrayEnded() { return ending.end(); } }; }
static <R, T, P, N> JSONArray<R, N[], P, N[]> createBasicArray( JSONBuilder<R, T> builder, final ToMemberFunction<T, N[]> accessor, final ArrayCompletion<P> ending) { return new JSONArray<R, N[], P, N[]>( builder.beginArray(accessor), new IteratorFunction<N[], N[]>() { @Override public N[] get(N[] o, int i) { return i < o.length ? o : null; } }) { @Override P arrayEnded() { return ending.end(); } }; }
public <M extends Collection<N2>, N2> JSONArray<R, Iterator<N2>, P, Iterator<N2>> iterArray(final IterMemberFunction<T, M> accessor) { return new JSONArray<R, Iterator<N2>, P, Iterator<N2>>( builder.beginArray(this.iterator, new IterMemberFunction<T, Iterator<N2>>() { @Override public Iterator<N2> get(T o, int i) { Collection<N2> m = accessor.get(o, i); return m != null ? m.iterator() : null; } }), new IteratorFunction<Iterator<N2>, Iterator<N2>>() { @Override public Iterator<N2> get(Iterator<N2> obj, int i, Iterator<N2> node) { return obj.hasNext() ? obj : null; } }) { @Override P arrayEnded() { return childCompleted(); } }; }
public <M extends Collection<N2>, N2> JSONArray<R, Iterator<N2>, P, Iterator<N2>> iterArray(final IterMemberFunction<T, M> accessor) { return new JSONArray<R, Iterator<N2>, P, Iterator<N2>>( builder.beginArray(this.iterator, new IterMemberFunction<T, Iterator<N2>>() { @Override public Iterator<N2> get(T o, int i) { Collection<N2> m = accessor.get(o, i); return m != null ? m.iterator() : null; } }), new IteratorFunction<Iterator<N2>, Iterator<N2>>() { @Override public Iterator<N2> get(Iterator<N2> obj, int i) { return obj.hasNext() ? obj : null; } }) { @Override P arrayEnded() { return childCompleted(); } }; }