Skip to content

Commit 8107389

Browse files
authored
Introduce total row count on RowSetMetaData (#190)
* feat: introduce getRowsCount --------- Signed-off-by: Rivaldi <[email protected]>
1 parent 19ee5d1 commit 8107389

File tree

4 files changed

+30
-0
lines changed

4 files changed

+30
-0
lines changed

spring-batch-excel/src/main/java/org/springframework/batch/extensions/excel/support/rowset/DefaultRowSetMetaData.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,9 @@ public String getSheetName() {
5353
return this.sheet.getName();
5454
}
5555

56+
@Override
57+
public int getRowsCount() {
58+
return this.sheet.getNumberOfRows();
59+
}
60+
5661
}

spring-batch-excel/src/main/java/org/springframework/batch/extensions/excel/support/rowset/RowSetMetaData.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,12 @@ public interface RowSetMetaData {
3636
*/
3737
String getSheetName();
3838

39+
/**
40+
* Retrieves the number of available rows for the current sheet.
41+
* <p><strong>Note:</strong> The result might be indeterministic depending on the
42+
* {@code Sheet} implementation used in the {@code RowSetMetaData} implementation.
43+
* Some implementations may return an estimate or cached value rather than the exact count.
44+
* @return total rows
45+
*/
46+
int getRowsCount();
3947
}

spring-batch-excel/src/test/java/org/springframework/batch/extensions/excel/support/rowset/DefaultRowSetMetaDataTests.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,16 @@ void shouldGetAndReturnNameOfTheSheet() {
7777
verifyNoMoreInteractions(this.sheet);
7878
}
7979

80+
@Test
81+
void shouldReturnTotalAvailableRows() {
82+
83+
given(this.sheet.getNumberOfRows()).willReturn(1);
84+
85+
var rowsCount = this.rowSetMetaData.getRowsCount();
86+
87+
assertThat(rowsCount).isEqualTo(1);
88+
89+
verify(this.sheet, times(1)).getNumberOfRows();
90+
verifyNoMoreInteractions(this.sheet);
91+
}
8092
}

spring-batch-excel/src/test/java/org/springframework/batch/extensions/excel/support/rowset/DefaultRowSetTests.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ public String[] getColumnNames() {
4444
public String getSheetName() {
4545
return "Sheet1";
4646
}
47+
48+
@Override
49+
public int getRowsCount() {
50+
return 1;
51+
}
4752
});
4853
}
4954

0 commit comments

Comments
 (0)