1 package org.opentrafficsim.kpi.sampling;
2
3 import org.djutils.immutablecollections.ImmutableList;
4 import org.opentrafficsim.base.Identifiable;
5
6 /**
7 * Table with data stored in structured records.
8 * <p>
9 * Copyright (c) 2020-2022 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
10 * BSD-style license. See <a href="https://opentrafficsim.org/docs/current/license.html">OpenTrafficSim License</a>.
11 * </p>
12 * @author <a href="https://www.tudelft.nl/averbraeck">Alexander Verbraeck</a>
13 * @author <a href="https://www.tudelft.nl/pknoppers">Peter Knoppers</a>
14 * @author <a href="https://www.transport.citg.tudelft.nl">Wouter Schakel</a>
15 */
16 public interface Table extends Iterable<Record>, Identifiable
17 {
18
19 /**
20 * Returns the description.
21 * @return description
22 */
23 String getDescription();
24
25 /**
26 * Returns the list of columns.
27 * @return list of columns
28 */
29 ImmutableList<Column<?>> getColumns();
30
31 /**
32 * Returns the number of columns.
33 * @return number of columns
34 */
35 default int getNumberOfColumns()
36 {
37 return getColumns().size();
38 }
39
40 /**
41 * Returns whether the table is empty.
42 * @return whether the table is empty
43 */
44 boolean isEmpty();
45
46 }