App Engine Java SDK version 1.7.0
[gae.git] / java / src / main / com / google / appengine / api / datastore / MultiQueryComponent.java
blobf6897081c25ab1ce0bf9b1e0b2f3ddf5979233e1
1 // Copyright 2009 Google Inc. All Rights Reserved.
2 package com.google.appengine.api.datastore;
4 import com.google.appengine.api.datastore.Query.FilterPredicate;
6 import java.util.ArrayList;
7 import java.util.Arrays;
8 import java.util.List;
10 /**
11 * This class determines the manner in which multiple queries are generated.
13 * @see MultiQueryBuilder
15 class MultiQueryComponent implements Comparable<MultiQueryComponent>{
16 public enum Order {SERIAL, PARALLEL}
18 private final Order order;
19 private final List<List<FilterPredicate>> filters;
21 public MultiQueryComponent(Order order) {
22 this.order = order;
23 this.filters = new ArrayList<List<FilterPredicate>>();
26 public MultiQueryComponent(Order order, List<List<FilterPredicate>> filters) {
27 this.order = order;
28 this.filters = filters;
31 public Order getOrder() {
32 return order;
35 /**
36 * Adds a set of filters that are then applied to {@link Query}s generated
37 * by {@link MultiQueryBuilder} (in order).
38 * @param filters
40 public void addFilters(FilterPredicate... filters) {
41 this.filters.add(Arrays.asList(filters));
44 public List<List<FilterPredicate>> getFilters() {
45 return filters;
48 @Override
49 public int compareTo(MultiQueryComponent o) {
50 return order.compareTo(o.order);
53 @Override
54 public String toString() {
55 return "MultiQueryComponent [filters=" + filters + ", order=" + order + "]";