View Javadoc

1   package org.apache.maven.index;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0    
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import java.util.List;
23  
24  import org.apache.lucene.search.Query;
25  import org.apache.maven.index.context.IndexingContext;
26  
27  /**
28   * Pageable search request. Adds "start" point, to skip wanted number of records, to implement paging. Use "count" of
29   * AbstractSearchRequest to set page size.
30   * 
31   * @author cstamas
32   */
33  public class AbstractSearchPageableRequest
34      extends AbstractSearchRequest
35  {
36      /**
37       * The number of hit we want to skip from result set. Defaults to 0.
38       */
39      private int start;
40  
41      public AbstractSearchPageableRequest( Query query )
42      {
43          super( query, null );
44  
45          this.start = 0;
46      }
47  
48      public AbstractSearchPageableRequest( Query query, List<IndexingContext> contexts )
49      {
50          super( query, contexts );
51  
52          this.start = 0;
53      }
54  
55      /**
56       * Returns the "start" of wanted results calculated from result set window. Simply, the count of documents to skip.
57       * 
58       * @return
59       */
60      public int getStart()
61      {
62          return start;
63      }
64  
65      /**
66       * Sets the "start" of wanted results calculated from result set window. Simply, the count of documents to skip.
67       * 
68       * @param start
69       */
70      public void setStart( int start )
71      {
72          if ( start < 0 )
73          {
74              throw new IllegalArgumentException( "Start cannot be less than 0!" );
75          }
76  
77          this.start = start;
78      }
79  }