1   package com.atlassian.user.search.query;
2   
3   import java.util.List;
4   import java.util.Arrays;
5   
6   public class MultiTermBooleanQuery extends AbstractBooleanQuery
7   {
8       private Query[] collatedQueries;
9   
10      public MultiTermBooleanQuery(Query[] collatedQueries, boolean anding)
11      {
12          super(anding);
13          this.collatedQueries = collatedQueries;
14      }
15  
16      public List<Query> getQueries()
17      {
18          return Arrays.asList(collatedQueries);
19      }
20  
21      /**
22       * Returns a multi-term boolean query which joins the provided queries using AND.
23       *
24       * @param queries the components of the boolean query
25       * @since 2.1
26       */
27      public static Query allOf(Query... queries)
28      {
29          return new MultiTermBooleanQuery(queries, true);
30      }
31  
32      /**
33       * Returns a multi-term boolean query which joins the provided queries using OR.
34       *
35       * @param queries the components of the boolean query
36       * @since 2.1
37       */
38      public static Query anyOf(Query... queries)
39      {
40          return new MultiTermBooleanQuery(queries, false);
41      }
42  }