1 | /**
|
2 | * Column class
|
3 | */
|
4 | export class Column {
|
5 | /**
|
6 | * count of column data entries
|
7 | */
|
8 | public length: number;
|
9 | /**
|
10 | * column key name
|
11 | */
|
12 | private key: string;
|
13 | /**
|
14 | * column data container
|
15 | */
|
16 | private data: string[];
|
17 |
|
18 | public constructor(key: string, data: string[]) {
|
19 | this.key = key;
|
20 | this.data = data;
|
21 | this.length = data.length;
|
22 | }
|
23 |
|
24 | /**
|
25 | * Get column name
|
26 | * @returns column name
|
27 | */
|
28 | public getKey(): string {
|
29 | return this.key;
|
30 | }
|
31 |
|
32 | /**
|
33 | * Get column data
|
34 | * @returns column data
|
35 | */
|
36 | public getData(): string[] {
|
37 | return this.data;
|
38 | }
|
39 |
|
40 | /**
|
41 | * Get column data at given index
|
42 | * @param idx data index
|
43 | * @returns data at given index
|
44 | */
|
45 | public getDataByIndex(idx: number): string | null {
|
46 | return this.hasDataIndex(idx) ? this.data[idx] : null;
|
47 | }
|
48 |
|
49 | /**
|
50 | * Check if column has a given data index
|
51 | * @param idx data index
|
52 | * @returns boolean result
|
53 | */
|
54 | private hasDataIndex(idx: number): boolean {
|
55 | return (idx >= 0 && idx < this.length);
|
56 | }
|
57 | }
|