package com.beoui.geocell.model;
import java.util.List;
/**
* GeocellQuery splits the traditional query in 3 parts:
* the base query string,
* the declared parameters
* and the list of object parameters.
*
* Additional information on http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html
*
* This allows us to create new queries and adding conditions/filters like in the proximity fetch.
*
* @author Alexandre Gellibert
*
*/
public class GeocellQuery {
/**
* Base query string without the declared parameters and without the entity name. Ex: "lastName == lastNameParam"
*
* CAREFUL: must not contain "order" clauses!
*/
private String baseQuery;
/**
* (Optional)
* Declared parameters. Ex: "String lastNameParam"
*/
private String declaredParameters;
/**
* (Optional)
* List of parameters. Ex: Arrays.asList("Smith")
*/
private List<Object> parameters;
// Use this constructor to build empty base queries.
public GeocellQuery() {
this.baseQuery = null;
this.declaredParameters = null;
this.parameters = null;
}
public GeocellQuery(String baseQuery) {
this.baseQuery = baseQuery;
this.declaredParameters = null;
this.parameters = null;
}
public GeocellQuery(String baseQuery, List<Object> parameters) {
this.baseQuery = baseQuery;
this.declaredParameters = null;
this.parameters = parameters;
}
public GeocellQuery(String baseQuery, String declaredParameters,
List<Object> parameters) {
this.baseQuery = baseQuery;
this.declaredParameters = declaredParameters;
this.parameters = parameters;
}
public String getBaseQuery() {
return baseQuery;
}
public String getDeclaredParameters() {
return declaredParameters;
}
public List<Object> getParameters() {
return parameters;
}
}