package no.difi.datahotel.util; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.core.UriInfo; import no.difi.datahotel.model.FieldLight; public class RequestContext { private int page = 1; private String query = null; private Map<String, String> lookup = new HashMap<String, String>(); private String callback; public RequestContext() { } public RequestContext(UriInfo uriInfo) { this(uriInfo, null); } public RequestContext(UriInfo uriInfo, List<FieldLight> fields) { MultivaluedMap<String, String> parameters = uriInfo.getQueryParameters(); if (fields != null) for (FieldLight f : fields) if (f.getGroupable()) if (parameters.containsKey(f.getShortName())) if (!"".equals(parameters.getFirst(f.getShortName()))) lookup.put(f.getShortName(), parameters.getFirst(f.getShortName())); if (parameters.containsKey("query")) if (!"".equals(parameters.getFirst("query"))) query = parameters.getFirst("query"); if (parameters.containsKey("callback")) if (!"".equals(parameters.getFirst("callback"))) callback = parameters.getFirst("callback"); if (parameters.containsKey("page")) if (!"".equals(parameters.getFirst("page"))) page = Integer.parseInt(parameters.getFirst("page")); } public int getPage() { return page; } public String getQuery() { return query; } public Map<String, String> getLookup() { return lookup; } public String getCallback() { return callback; } @Deprecated public void setCallback(String callback) { this.callback = callback; } public boolean isSearch() { return query != null || lookup.size() > 0; } }