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 <= {@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 >= {@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 }