package br.com.caelum.restfulie.opensearch; import br.com.caelum.restfulie.RestClient; import br.com.caelum.restfulie.http.Request; import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; /** * OpenSearch URL representation * @author jose donizetti * */ @XStreamAlias("Url") public class Url { @XStreamAlias("type") @XStreamAsAttribute private String type; @XStreamAsAttribute @XStreamAlias("template") private String template; private int page; private String term = ""; private final RestClient client; public Url(String type, String template, RestClient client) { this.type = type; this.template = template; this.client = client; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getTemplate() { return template; } public void setTemplate(String template) { this.template = template; } public String toUri() { String url = template.replace("{searchTerms}", term); url = url.replace("{startPage?}", page+""); return url; } public static String queryFor(String query) { return query; } public static Integer page(Integer page) { return page; } public Url with(String queryFor) { this.term = queryFor; return this; } public Request and(Integer page) { this.page = page; return client.at(toUri()); } }