@@ -6,29 +6,41 @@ import * as CenterAlignment from "./center";
66import { Alignment } from "../models/alignment" ;
77
88export class PadCalculatorSelector {
9- public select ( table : Table , column : number ) : BasePadCalculator {
9+ private static readonly leftFirstColumn = new LeftAlignment . FirstColumnPadCalculator ( ) ;
10+ private static readonly leftMiddleColumn = new LeftAlignment . MiddleColumnPadCalculator ( ) ;
11+ private static readonly leftLastColumn = new LeftAlignment . LastColumnPadCalculator ( ) ;
12+
13+ private static readonly centerFirstColumn = new CenterAlignment . FirstColumnPadCalculator ( ) ;
14+ private static readonly centerMiddleColumn = new CenterAlignment . MiddleColumnPadCalculator ( ) ;
15+ private static readonly centerLastColumn = new CenterAlignment . LastColumnPadCalculator ( ) ;
16+
17+ private static readonly rightFirstColumn = new RightAlignment . FirstColumnPadCalculator ( ) ;
18+ private static readonly rightMiddleColumn = new RightAlignment . MiddleColumnPadCalculator ( ) ;
19+ private static readonly rightLastColumn = new RightAlignment . LastColumnPadCalculator ( ) ;
20+
21+ public select ( table : Table , column : number ) : BasePadCalculator {
1022 switch ( table . alignments [ column ] ) {
1123 case Alignment . Center : return this . centerAlignmentPadCalculator ( table , column ) ;
1224 case Alignment . Right : return this . rightAlignmentPadCalculator ( table , column ) ;
1325 default : return this . leftAlignmentPadCalculator ( table , column ) ;
1426 }
1527 }
1628
17- private leftAlignmentPadCalculator ( table : Table , column : number ) : BasePadCalculator {
18- if ( column == 0 ) return new LeftAlignment . FirstColumnPadCalculator ( ) ;
19- if ( column == table . columnCount - 1 ) return new LeftAlignment . LastColumnPadCalculator ( ) ;
20- return new LeftAlignment . MiddleColumnPadCalculator ( ) ;
29+ private leftAlignmentPadCalculator ( table : Table , column : number ) : BasePadCalculator {
30+ if ( column == 0 ) return PadCalculatorSelector . leftFirstColumn ;
31+ if ( column == table . columnCount - 1 ) return PadCalculatorSelector . leftLastColumn ;
32+ return PadCalculatorSelector . leftMiddleColumn ;
2133 }
2234
23- private centerAlignmentPadCalculator ( table : Table , column : number ) : BasePadCalculator {
24- if ( column == 0 ) return new CenterAlignment . FirstColumnPadCalculator ( ) ;
25- if ( column == table . columnCount - 1 ) return new CenterAlignment . LastColumnPadCalculator ( ) ;
26- return new CenterAlignment . MiddleColumnPadCalculator ( ) ;
35+ private centerAlignmentPadCalculator ( table : Table , column : number ) : BasePadCalculator {
36+ if ( column == 0 ) return PadCalculatorSelector . centerFirstColumn ;
37+ if ( column == table . columnCount - 1 ) return PadCalculatorSelector . centerLastColumn ;
38+ return PadCalculatorSelector . centerMiddleColumn ;
2739 }
2840
29- private rightAlignmentPadCalculator ( table : Table , column : number ) : BasePadCalculator {
30- if ( column == 0 ) return new RightAlignment . FirstColumnPadCalculator ( ) ;
31- if ( column == table . columnCount - 1 ) return new RightAlignment . LastColumnPadCalculator ( ) ;
32- return new RightAlignment . MiddleColumnPadCalculator ( ) ;
41+ private rightAlignmentPadCalculator ( table : Table , column : number ) : BasePadCalculator {
42+ if ( column == 0 ) return PadCalculatorSelector . rightFirstColumn ;
43+ if ( column == table . columnCount - 1 ) return PadCalculatorSelector . rightLastColumn ;
44+ return PadCalculatorSelector . rightMiddleColumn ;
3345 }
3446}
0 commit comments