Skip to content

Commit 93a98c7

Browse files
committed
Small Refactoring
1 parent 292b30b commit 93a98c7

1 file changed

Lines changed: 16 additions & 13 deletions

File tree

JSqlServerBulkInsert/src/main/java/de/bytefish/jsqlserverbulkinsert/records/SqlServerRecord.java

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
package de.bytefish.jsqlserverbulkinsert.records;
55

66
import com.microsoft.sqlserver.jdbc.ISQLServerBulkRecord;
7-
import com.microsoft.sqlserver.jdbc.SQLServerBulkCopy;
87
import com.microsoft.sqlserver.jdbc.SQLServerException;
98
import de.bytefish.jsqlserverbulkinsert.model.ColumnDefinition;
109
import de.bytefish.jsqlserverbulkinsert.model.ColumnMetaData;
@@ -14,18 +13,20 @@
1413
import java.util.Set;
1514
import java.util.stream.Collectors;
1615
import java.util.stream.IntStream;
17-
import java.util.stream.Stream;
1816

1917
public class SqlServerRecord<TEntity> implements ISQLServerBulkRecord {
2018

19+
private final Set<Integer> columnOrdinals;
20+
2121
private final Iterator<TEntity> entities;
2222

2323
private final List<ColumnMetaData> columnMetaData;
2424

2525
private final SqlServerRecordBuilder<TEntity> builder;
2626

27-
public SqlServerRecord(List<ColumnDefinition<TEntity>> columnDefinition, Iterator<TEntity> entities) {
28-
if(columnDefinition == null) {
27+
public SqlServerRecord(List<ColumnDefinition<TEntity>> columns, Iterator<TEntity> entities) {
28+
29+
if(columns == null) {
2930
throw new IllegalArgumentException("columnDefinition");
3031
}
3132

@@ -36,23 +37,25 @@ public SqlServerRecord(List<ColumnDefinition<TEntity>> columnDefinition, Iterato
3637
this.entities = entities;
3738

3839
// Cache the Column Meta Data, so we don't calculate it for each Record:
39-
this.columnMetaData = columnDefinition.stream()
40-
.map(x -> x.getColumnMetaData())
40+
this.columnMetaData = columns.stream()
41+
.map(ColumnDefinition::getColumnMetaData)
4142
.collect(Collectors.toList());
4243

43-
// Cache a Values Builder to populate Records faster:
44-
this.builder = new SqlServerRecordBuilder<TEntity>(columnDefinition);
45-
}
44+
// Build the Object[] values Builder to populate the records faster:
45+
this.builder = new SqlServerRecordBuilder<>(columns);
4646

47-
@Override
48-
public Set<Integer> getColumnOrdinals() {
49-
// Simply return the length of the List:
50-
return IntStream
47+
// Cache the Column Ordinals:
48+
this.columnOrdinals = IntStream
5149
.range(1, columnMetaData.size() + 1)
5250
.boxed()
5351
.collect(Collectors.toSet());
5452
}
5553

54+
@Override
55+
public Set<Integer> getColumnOrdinals() {
56+
return columnOrdinals;
57+
}
58+
5659
@Override
5760
public String getColumnName(int i) {
5861
return columnMetaData.get(i-1).getName();

0 commit comments

Comments
 (0)