1313import java .io .IOException ;
1414import java .io .OutputStream ;
1515import java .util .List ;
16- import java .util .Objects ;
1716
1817public class ExcelWriter extends DataWriter <DataRoot > {
1918 private DataTableConverter tableConverter = new DataTableConverter ();
@@ -23,16 +22,30 @@ public void write(OutputStream output, DataRoot data) throws IOException {
2322 Workbook workbook = new Workbook (output , "RemaTransactionParser" , "1.0" );
2423 WorkbookStyle workbookStyle = createWorkbookStyle ();
2524
26- writeTransactionsInfo ( workbookStyle , workbook . newWorksheet ( "Info" ), data .getTransactionsInfo () );
25+ TransactionsInfo transactionsInfo = data .getTransactionsInfo ();
2726
27+ if (transactionsInfo != null ) {
28+ writeTransactionsInfo (workbookStyle , workbook .newWorksheet ("Info" ), transactionsInfo );
29+ }
2830 writeTopList (workbookStyle , workbook .newWorksheet ("TopList" ),
2931 data .getTopList ());
32+
33+ if (transactionsInfo == null ) {
34+ return ;
35+ }
36+ List <Transaction > transactions = transactionsInfo .getTransactionList ();
37+
38+ if (transactions == null || transactions .isEmpty ()) {
39+ return ;
40+ }
3041 writeTransactions (workbookStyle , workbook .newWorksheet ("Transactions" ),
31- data .getTransactionsInfo ().getTransactionList ());
42+ transactions );
43+ writeReceiptEntries (workbookStyle , workbook .newWorksheet ("Receipt Entries" ),
44+ transactions );
3245 writeTransactionsPayments (workbookStyle , workbook .newWorksheet ("Transactions Payments" ),
33- data . getTransactionsInfo (). getTransactionList () );
46+ transactions );
3447 writeTransactionUsedOffers (workbookStyle , workbook .newWorksheet ("Used Offers" ),
35- data . getTransactionsInfo (). getTransactionList () );
48+ transactions );
3649
3750 workbook .finish ();
3851 }
@@ -49,18 +62,12 @@ private void writeInfoLine(WorkbookStyle style, Worksheet sheet, int rowIndex, S
4962 }
5063
5164 private void writeTransactionsPayments (WorkbookStyle workbookStyle , Worksheet sheet , List <Transaction > transactionList ) throws IOException {
52- if (transactionList == null || transactionList .isEmpty ()) {
53- return ;
54- }
5565 try (TableWriter writer = new ExcelTableWriter (workbookStyle , sheet )) {
5666 tableConverter .writeTableTransactionsPayments (writer , transactionList );
5767 }
5868 }
5969
6070 private void writeTransactionUsedOffers (WorkbookStyle workbookStyle , Worksheet sheet , List <Transaction > transactionList ) throws IOException {
61- if (transactionList == null || transactionList .isEmpty ()) {
62- return ;
63- }
6471 try (TableWriter writer = new ExcelTableWriter (workbookStyle , sheet )) {
6572 tableConverter .writeTableTransactionsUsedOffers (writer , transactionList );
6673 }
@@ -71,15 +78,18 @@ private void writeTopList(WorkbookStyle workbookStyle, Worksheet sheet, TopListM
7178 tableConverter .writeTableTopList (writer , metadata );
7279 }
7380
74- private void writeTransactions (WorkbookStyle workbookStyle , Worksheet sheet , List <Transaction > transactionList ) throws IOException {
75- if (transactionList == null || transactionList .isEmpty ()) {
76- return ;
77- }
81+ private void writeReceiptEntries (WorkbookStyle workbookStyle , Worksheet sheet , List <Transaction > transactionList ) throws IOException {
7882 try (TableWriter writer = new ExcelTableWriter (workbookStyle , sheet )) {
7983 tableConverter .writeJoinedTableTransactions (writer , transactionList );
8084 }
8185 }
8286
87+ private void writeTransactions (WorkbookStyle workbookStyle , Worksheet sheet , List <Transaction > transactionList ) throws IOException {
88+ try (TableWriter writer = new ExcelTableWriter (workbookStyle , sheet )) {
89+ tableConverter .writeTableTransactions (writer , transactionList );
90+ }
91+ }
92+
8393 private WorkbookStyle createWorkbookStyle () {
8494 return new WorkbookStyle (
8595 (sheet , r , c ) -> sheet .style (r , c ).bold ().set (),
0 commit comments