use of com.linkedin.restli.server.annotations.Finder in project rest.li by linkedin.
the class GreetingsResourceImpl method search.
@Finder("search")
public List<Greeting> search(@PagingContextParam PagingContext ctx, @QueryParam("tone") @Optional Tone tone) {
List<Greeting> greetings = new ArrayList<Greeting>();
int idx = 0;
int start = ctx.getStart();
int stop = start + ctx.getCount();
for (Greeting g : _db.values()) {
if (idx++ >= ctx.getStart()) {
if (tone == null || g.getTone().equals(tone)) {
greetings.add(g);
}
if (idx == stop) {
break;
}
}
}
return greetings;
}
use of com.linkedin.restli.server.annotations.Finder in project rest.li by linkedin.
the class GreetingsResourceImpl method searchWithPostFilter.
@Finder("searchWithPostFilter")
public CollectionResult<Greeting, Empty> searchWithPostFilter(@PagingContextParam PagingContext ctx) {
List<Greeting> greetings = new ArrayList<Greeting>();
int idx = 0;
int start = ctx.getStart();
int stop = start + ctx.getCount();
for (Greeting g : _db.values()) {
if (idx++ >= ctx.getStart()) {
greetings.add(g);
if (idx == stop) {
break;
}
}
}
// for testing, using a post-filter that just removes the first element
if (greetings.size() > 0)
greetings.remove(0);
int total = _db.values().size();
// this is to keep paging consistent even in the presence of a post filter.
return new CollectionResult<Greeting, Empty>(greetings, total, null, PageIncrement.FIXED);
}
use of com.linkedin.restli.server.annotations.Finder in project rest.li by linkedin.
the class MixedResource method search.
@Finder("search")
public Promise<List<Greeting>> search(@QueryParam("what") final String s) {
final SettablePromise<List<Greeting>> result = Promises.settable();
Runnable requestHandler = new Runnable() {
public void run() {
result.done(Arrays.asList(new Greeting().setMessage(s)));
}
};
scheduler.schedule(requestHandler, DELAY, TimeUnit.MILLISECONDS);
return result;
}
Aggregations