1 package org.djutils.data;
2
3 import org.djunits.Throw;
4 import org.djutils.immutablecollections.ImmutableList;
5
6
7
8
9
10
11
12
13
14
15
16 public abstract class AbstractDataTable implements DataTable
17 {
18
19
20 private final String id;
21
22
23 private final String description;
24
25
26 private final ImmutableList<DataColumn<?>> columns;
27
28
29
30
31
32
33
34
35
36
37 public AbstractDataTable(final String id, final String description, final ImmutableList<DataColumn<?>> columns)
38 {
39 Throw.whenNull(id, "Id may not be null.");
40 Throw.whenNull(description, "Description may not be null.");
41 Throw.whenNull(columns, "Columns may not be null.");
42 Throw.when(id.length() == 0, IllegalArgumentException.class, "id cannot be empty");
43 Throw.when(columns.size() == 0, IllegalArgumentException.class, "there should be at least one column");
44 this.id = id;
45 this.description = description;
46 this.columns = columns;
47 }
48
49
50 @Override
51 public ImmutableList<DataColumn<?>> getColumns()
52 {
53 return this.columns;
54 }
55
56
57 @Override
58 public String getId()
59 {
60 return this.id;
61 }
62
63
64 @Override
65 public String getDescription()
66 {
67 return this.description;
68 }
69
70 }