package com.robonobo.midas.client; import com.robonobo.common.util.TextUtil; import com.robonobo.core.api.proto.CoreApi.SearchResponse; import com.robonobo.core.metadata.SearchCallback; import com.robonobo.midas.client.Params.Operation; public class SearchRequest implements Request { private MidasClientConfig cfg; private String query; private int firstResult; private SearchCallback handler; public SearchRequest(MidasClientConfig cfg, String query, int firstResult, SearchCallback handler) { this.cfg = cfg; this.query = query; this.firstResult = firstResult; this.handler = handler; } @Override public int remaining() { if (query == null) return 0; return 1; } @Override public Params getNextParams() { Params p = new Params(Operation.Get, null, SearchResponse.newBuilder(), cfg.getSearchQueryUrl(query, firstResult), query); query = null; return p; } @Override public void success(Object obj) { SearchResponse resp = (SearchResponse) obj; handler.success(resp); } @Override public void error(Params p, Exception e) { String q = (String) p.obj; handler.error(q, e); } }