public static <T> FunctionalIterable<T> create(Iterable<T> delegate) { return new FunctionalIterable<>(delegate); }
public <RetType> FunctionalIterable<RetType> transform(Function<T, RetType> fn) { return new FunctionalIterable<>(Iterables.transform(delegate, fn)); }
public FunctionalIterable<T> filter(Predicate<T> pred) { return new FunctionalIterable<>(Iterables.filter(delegate, pred)); }
public <RetType> FunctionalIterable<RetType> transformCat(Function<T, Iterable<RetType>> fn) { return new FunctionalIterable<>(Iterables.concat(Iterables.transform(delegate, fn))); }
public <RetType> FunctionalIterable<RetType> keep(Function<T, RetType> fn) { return new FunctionalIterable<>(Iterables.filter(Iterables.transform(delegate, fn), Predicates.notNull())); }
public <InType1, InType2, RetType> FunctionalIterable<RetType> trinaryTransform( final Iterable<InType1> iterable1, final Iterable<InType2> iterable2, final TrinaryFn<T, InType1, InType2, RetType> trinaryFn ) { return new FunctionalIterable<>(TrinaryTransformIterable.create(delegate, iterable1, iterable2, trinaryFn)); } }
public FunctionalIterable<T> limit(int limit) { return new FunctionalIterable<>(Iterables.limit(delegate, limit)); }
public FunctionalIterable<T> drop(int numToDrop) { return new FunctionalIterable<>(new DroppingIterable<>(delegate, numToDrop)); }
private static Sequence<Result<SearchResultValue>> makeReturnResult( Segment segment, int limit, Object2IntRBTreeMap<SearchHit> retVal ) { Iterable<SearchHit> source = Iterables.transform( retVal.object2IntEntrySet(), new Function<Object2IntMap.Entry<SearchHit>, SearchHit>() { @Override public SearchHit apply(Object2IntMap.Entry<SearchHit> input) { SearchHit hit = input.getKey(); return new SearchHit(hit.getDimension(), hit.getValue(), input.getIntValue()); } } ); return Sequences.simple( ImmutableList.of( new Result<>( segment.getDataInterval().getStart(), new SearchResultValue( Lists.newArrayList(new FunctionalIterable<>(source).limit(limit)) ) ) ) ); } }
public static <T> FunctionalIterable<T> create(Iterable<T> delegate) { return new FunctionalIterable<>(delegate); }
public FunctionalIterable<T> filter(Predicate<T> pred) { return new FunctionalIterable<>(Iterables.filter(delegate, pred)); }
public <RetType> FunctionalIterable<RetType> transform(Function<T, RetType> fn) { return new FunctionalIterable<>(Iterables.transform(delegate, fn)); }
public <RetType> FunctionalIterable<RetType> transformCat(Function<T, Iterable<RetType>> fn) { return new FunctionalIterable<>(Iterables.concat(Iterables.transform(delegate, fn))); }
public <RetType> FunctionalIterable<RetType> keep(Function<T, RetType> fn) { return new FunctionalIterable<>(Iterables.filter(Iterables.transform(delegate, fn), Predicates.notNull())); }
public <InType1, InType2, RetType> FunctionalIterable<RetType> trinaryTransform( final Iterable<InType1> iterable1, final Iterable<InType2> iterable2, final TrinaryFn<T, InType1, InType2, RetType> trinaryFn ) { return new FunctionalIterable<>(TrinaryTransformIterable.create(delegate, iterable1, iterable2, trinaryFn)); } }
public FunctionalIterable<T> limit(int limit) { return new FunctionalIterable<>(Iterables.limit(delegate, limit)); }
public FunctionalIterable<T> drop(int numToDrop) { return new FunctionalIterable<>(new DroppingIterable<>(delegate, numToDrop)); }
private static Sequence<Result<SearchResultValue>> makeReturnResult( Segment segment, int limit, Object2IntRBTreeMap<SearchHit> retVal ) { Iterable<SearchHit> source = Iterables.transform( retVal.object2IntEntrySet(), new Function<Object2IntMap.Entry<SearchHit>, SearchHit>() { @Override public SearchHit apply(Object2IntMap.Entry<SearchHit> input) { SearchHit hit = input.getKey(); return new SearchHit(hit.getDimension(), hit.getValue(), input.getIntValue()); } } ); return Sequences.simple( ImmutableList.of( new Result<>( segment.getDataInterval().getStart(), new SearchResultValue( Lists.newArrayList(new FunctionalIterable<>(source).limit(limit)) ) ) ) ); } }