View Javadoc
1   /*
2    * Licensed to The Apereo Foundation under one or more contributor license
3    * agreements. See the NOTICE file distributed with this work for additional
4    * information regarding copyright ownership.
5    *
6    *
7    * The Apereo Foundation licenses this file to you under the Educational
8    * Community License, Version 2.0 (the "License"); you may not use this file
9    * except in compliance with the License. You may obtain a copy of the License
10   * at:
11   *
12   *   http://opensource.org/licenses/ecl2.txt
13   *
14   * Unless required by applicable law or agreed to in writing, software
15   * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
16   * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  See the
17   * License for the specific language governing permissions and limitations under
18   * the License.
19   *
20   */
21  package org.opencastproject.assetmanager.api.query;
22  
23  import java.util.LinkedHashSet;
24  
25  /**
26   * The result of a {@link ASelectQuery}. Groups {@link ARecord}s.
27   */
28  public interface AResult extends Iterable<ARecord> {
29    /** Return the found records. */
30    LinkedHashSet<ARecord> getRecords();
31  
32    /**
33     * Return the size of the retrieved {@link #getRecords() slice}.
34     * This value is &lt;= {@link #getLimit()}.
35     *
36     * @see #getLimit()
37     */
38    long getSize();
39  
40    /** Return a string representation of the query. */
41    String getQuery();
42  
43    /**
44     * Return the number of items the query could potentially yield.
45     *
46     * @return the total value or -1 to indicate that the value has not been calculated
47     */
48    long getTotalSize();
49  
50    /**
51     * Return the set's size limit. It reflects the requested page size if specified in the query.
52     * This value is &gt;= {@link #getSize()}.
53     *
54     * @return the requested size limit or -1 if none has been specified
55     * @see #getSize()
56     */
57    long getLimit();
58  
59    /** Return the offset within the total result set. */
60    long getOffset();
61  
62    /**
63     * Return the search time of the query.
64     *
65     * @return the search time or -1 to indicate that it has not been measured
66     */
67    long getSearchTime();
68  }