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
;
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
) {
23 this.filters
= new ArrayList
<List
<FilterPredicate
>>();
26 public MultiQueryComponent(Order order
, List
<List
<FilterPredicate
>> filters
) {
28 this.filters
= filters
;
31 public Order
getOrder() {
36 * Adds a set of filters that are then applied to {@link Query}s generated
37 * by {@link MultiQueryBuilder} (in order).
40 public void addFilters(FilterPredicate
... filters
) {
41 this.filters
.add(Arrays
.asList(filters
));
44 public List
<List
<FilterPredicate
>> getFilters() {
49 public int compareTo(MultiQueryComponent o
) {
50 return order
.compareTo(o
.order
);
54 public String
toString() {
55 return "MultiQueryComponent [filters=" + filters
+ ", order=" + order
+ "]";