package org.jumbodb.common.query; import com.fasterxml.jackson.annotation.JsonAutoDetect; import java.util.*; /** * User: carsten * Date: 11/23/12 * Time: 1:05 PM */ @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY, getterVisibility = JsonAutoDetect.Visibility.NONE, setterVisibility = JsonAutoDetect.Visibility.NONE) public class JumboQuery { private List<IndexQuery> indexQuery = new LinkedList<IndexQuery>(); private List<JsonQuery> jsonQuery = new LinkedList<JsonQuery>(); private int limit = -1; private boolean resultCacheEnabled = true; public boolean isResultCacheEnabled() { return resultCacheEnabled; } public void setResultCacheEnabled(boolean resultCacheEnabled) { this.resultCacheEnabled = resultCacheEnabled; } public int getLimit() { return limit; } public void setLimit(int limit) { this.limit = limit; } public boolean addIndexQuery(IndexQuery indexComparision) { return this.indexQuery.add(indexComparision); } public boolean addIndexQuery(String indexName, List<QueryClause> indexValues) { return addIndexQuery(new IndexQuery(indexName, indexValues)); } public boolean addJsonQuery(JsonQuery jsonQuery) { return this.jsonQuery.add(jsonQuery); } public boolean addJsonQuery(String fieldName, List<QueryClause> indexValues) { return addJsonQuery(new JsonQuery(fieldName, indexValues)); } public List<IndexQuery> getIndexQuery() { return indexQuery; } public void setIndexQuery(List<IndexQuery> indexQuery) { this.indexQuery = indexQuery; } public List<JsonQuery> getJsonQuery() { return jsonQuery; } public void setJsonQuery(List<JsonQuery> jsonQuery) { this.jsonQuery = jsonQuery; } @Override public String toString() { return "JumboQuery{" + "indexQuery=" + indexQuery + ", jsonQuery=" + jsonQuery + ", limit=" + limit + ", resultCacheEnabled=" + resultCacheEnabled + '}'; } }