/**
  * Returns an Objectify Query object for the specified filters.
  *
  * @return an Objectify Query.
  */
 @ApiResourceProperty(ignored = AnnotationBoolean.TRUE)
 public Query<Conference> getQuery() {
   // First check the feasibility of inequality filters.
   checkFilters();
   Query<Conference> query = ofy().load().type(Conference.class);
   if (inequalityFilter == null) {
     // Order by name.
     query = query.order("name");
   } else {
     // If we have any inequality filters, order by the field first.
     query = query.order(inequalityFilter.field.getFieldName());
     query = query.order("name");
   }
   for (Filter filter : this.filters) {
     // Applies filters in order.
     if (filter.field.fieldType == FieldType.STRING) {
       query =
           query.filter(
               String.format(
                   "%s %s", filter.field.getFieldName(), filter.operator.getQueryOperator()),
               filter.value);
     } else if (filter.field.fieldType == FieldType.INTEGER) {
       query =
           query.filter(
               String.format(
                   "%s %s", filter.field.getFieldName(), filter.operator.getQueryOperator()),
               Integer.parseInt(filter.value));
     }
   }
   LOG.info(query.toString());
   return query;
 }