@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { if (!input.nextMarker().isPresent()) return onlyPage(input); List<Object> args = getArgs(request); Optional<Object> arg0 = Optional.fromNullable(args.size() > 0 ? args.get(0) : null); return advance(input, markerToNextForArg0(arg0)); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { if (!input.nextMarker().isPresent()) return onlyPage(input); List<Object> args = getArgs(request); Optional<Object> arg0 = Optional.fromNullable(args.size() > 0 ? args.get(0) : null); return advance(input, markerToNextForArg0(arg0)); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<String> arg0Option = Optional.absent(); if (request.getCaller().get().getArgs().size() > 0) { Object arg0 = request.getCaller().get().getArgs().get(0); if (arg0 != null) arg0Option = Optional.of(arg0.toString()); } final String arg0 = arg0Option.orNull(); return PagedIterables.advance(input, markerToNextForCallingArg0(arg0)); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<String> arg0Option = Optional.absent(); if (request.getCaller().get().getArgs().size() > 0) { Object arg0 = request.getCaller().get().getArgs().get(0); if (arg0 != null) arg0Option = Optional.of(arg0.toString()); } final String arg0 = arg0Option.orNull(); return PagedIterables.advance(input, markerToNextForCallingArg0(arg0)); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<String> arg0Option = Optional.absent(); if (request.getCaller().get().getArgs().size() > 0) { Object arg0 = request.getCaller().get().getArgs().get(0); if (arg0 != null) arg0Option = Optional.of(arg0.toString()); } final String arg0 = arg0Option.orNull(); return PagedIterables.advance(input, markerToNextForCallingArg0(arg0)); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<String> arg0Option = Optional.absent(); if (!request.getCaller().get().getArgs().isEmpty()) { Object arg0 = request.getCaller().get().getArgs().get(0); if (arg0 != null) arg0Option = Optional.of(arg0.toString()); } final String arg0 = arg0Option.orNull(); return PagedIterables.advance(input, markerToNextForCallingArg0(arg0)); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<String> arg0Option = Optional.absent(); if (!request.getCaller().get().getArgs().isEmpty()) { Object arg0 = request.getCaller().get().getArgs().get(0); if (arg0 != null) arg0Option = Optional.of(arg0.toString()); } final String arg0 = arg0Option.orNull(); return PagedIterables.advance(input, markerToNextForCallingArg0(arg0)); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<String> arg0Option = Optional.absent(); if (!request.getCaller().get().getArgs().isEmpty()) { Object arg0 = request.getCaller().get().getArgs().get(0); if (arg0 != null) arg0Option = Optional.of(arg0.toString()); } final String arg0 = arg0Option.orNull(); return PagedIterables.advance(input, markerToNextForCallingArg0(arg0)); }
@Override public PagedIterable<T> apply(ListPage<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<Object> project = tryFind(request.getCaller().get().getArgs(), instanceOf(String.class)); Optional<Object> listOptions = tryFind(request.getInvocation().getArgs(), instanceOf(ListOptions.class)); assert project.isPresent() : String.format("programming error, method %s should have a string param for the " + "project", request.getCaller().get().getInvokable()); return PagedIterables.advance( input, fetchNextPage(project.get().toString(), (ListOptions) listOptions.orNull())); }
@Override public PagedIterable<T> apply(ListPage<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<Object> project = tryFind(request.getCaller().get().getArgs(), instanceOf(String.class)); Optional<Object> listOptions = tryFind(request.getInvocation().getArgs(), instanceOf(ListOptions.class)); assert project.isPresent() : String.format("programming error, method %s should have a string param for the " + "project", request.getCaller().get().getInvokable()); return PagedIterables.advance( input, fetchNextPage(project.get().toString(), (ListOptions) listOptions.orNull())); }
@Override public PagedIterable<T> apply(ListPage<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional <Object> project = tryFind(request.getCaller().get().getArgs(), instanceOf(String.class)); Optional<Object> region = tryFind(request.getInvocation().getArgs(), instanceOf(String.class)); Optional<Object> listOptions = tryFind(request.getInvocation().getArgs(), instanceOf(ListOptions.class)); assert project.isPresent() : String.format("programming error, method %s should have a string param for the " + "project", request.getCaller().get().getInvokable()); assert region.isPresent() : String.format("programming error, method %s should have a string param for the " + "region", request.getCaller().get().getInvokable()); return PagedIterables.advance( input, fetchNextPage(project.get().toString(), region.get().toString(), (ListOptions) listOptions.orNull())); }
@Override public PagedIterable<T> apply(ListPage<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<Object> project = tryFind(request.getCaller().get().getArgs(), instanceOf(String.class)); Optional<Object> zone = tryFind(request.getInvocation().getArgs(), instanceOf(String.class)); Optional<Object> listOptions = tryFind(request.getInvocation().getArgs(), instanceOf(ListOptions.class)); assert project.isPresent() : String.format("programming error, method %s should have a string param for the " + "project", request.getCaller().get().getInvokable()); assert zone.isPresent() : String.format("programming error, method %s should have a string param for the " + "zone", request.getCaller().get().getInvokable()); return PagedIterables.advance( input, fetchNextPage(project.get().toString(), zone.get().toString(), (ListOptions) listOptions.orNull())); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { return input.nextMarker().isPresent() ? advance(input, markerToNextForArgs(getArgs(request))) : onlyPage(input); }
@Override public PagedIterable<T> apply(ListPage<T> input) { if (input.nextMarker() == null) return PagedIterables.of(input); Optional<Object> project = tryFind(request.getCaller().get().getArgs(), instanceOf(String.class)); Optional<Object> zone = tryFind(request.getInvocation().getArgs(), instanceOf(String.class)); Optional<Object> listOptions = tryFind(request.getInvocation().getArgs(), instanceOf(ListOptions.class)); assert project.isPresent() : String.format("programming error, method %s should have a string param for the " + "project", request.getCaller().get().getInvokable()); assert zone.isPresent() : String.format("programming error, method %s should have a string param for the " + "zone", request.getCaller().get().getInvokable()); return PagedIterables.advance( input, fetchNextPage(project.get().toString(), zone.get().toString(), (ListOptions) listOptions.orNull())); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { return input.nextMarker().isPresent() ? advance(input, markerToNextForArgs(getArgs(request))) : onlyPage(input); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { return input.nextMarker().isPresent() ? advance(input, markerToNextForArgs(getArgs(request))) : onlyPage(input); }
@Override public PagedIterable<T> apply(IterableWithMarker<T> input) { return input.nextMarker().isPresent() ? advance(input, markerToNextForArgs(getArgs(request))) : onlyPage(input); }
@SuppressWarnings("unchecked") @Test public void testSinglePageResultReturnsSame() { IterableWithMarker<String> initial = IterableWithMarkers.from(ImmutableSet.of("foo", "bar")); Function<Object, IterableWithMarker<String>> markerToNext = createMock(Function.class); EasyMock.replay(markerToNext); PagedIterable<String> iterable = PagedIterables.advance(initial, markerToNext); Assert.assertSame(iterable.get(0), initial); EasyMock.verify(markerToNext); }
@SuppressWarnings("unchecked") @Test public void testConcatPage3Pages() { IterableWithMarker<String> initial = IterableWithMarkers.from(ImmutableSet.of("foo", "bar"), "MARKER1"); Function<Object, IterableWithMarker<String>> markerToNext = createMock(Function.class); expect(markerToNext.apply("MARKER1")).andReturn( IterableWithMarkers.from(ImmutableSet.of("boo", "baz"), "MARKER2")); expect(markerToNext.apply("MARKER2")).andReturn(IterableWithMarkers.from(ImmutableSet.of("ham", "cheeze"), null)); EasyMock.replay(markerToNext); PagedIterable<String> iterable = PagedIterables.advance(initial, markerToNext); Assert.assertEquals(iterable.concat().toSet(), ImmutableSet.of("foo", "bar", "boo", "baz", "ham", "cheeze")); EasyMock.verify(markerToNext); } }
@SuppressWarnings("unchecked") @Test public void testSinglePageResultReturnsSame() { IterableWithMarker<String> initial = IterableWithMarkers.from(ImmutableSet.of("foo", "bar")); Function<Object, IterableWithMarker<String>> markerToNext = createMock(Function.class); EasyMock.replay(markerToNext); PagedIterable<String> iterable = PagedIterables.advance(initial, markerToNext); Assert.assertSame(iterable.get(0), initial); EasyMock.verify(markerToNext); }