1 package guru.mikelue.jdut.operation;
2
3 import java.sql.Connection;
4 import java.sql.SQLException;
5 import java.util.ArrayList;
6 import java.util.List;
7 import java.util.function.UnaryOperator;
8
9 import guru.mikelue.jdut.datagrain.DataGrain;
10 import guru.mikelue.jdut.datagrain.DataRow;
11
12
13
14
15 @FunctionalInterface
16 public interface DataRowOperator {
17
18
19
20 public interface SurroundOperator extends UnaryOperator<DataRowOperator> {
21
22
23
24
25
26 default UnaryOperator<DataRowOperator> asUnaryOperator()
27 {
28 return operator -> surround(operator);
29 }
30
31
32
33
34
35
36
37
38 public DataRowOperator/../guru/mikelue/jdut/operation/DataRowOperator.html#DataRowOperator">DataRowOperator surround(DataRowOperator surroundedOperator);
39 }
40
41
42
43
44
45
46
47
48
49 static DataRowuru/mikelue/jdut/datagrain/DataRow.html#DataRow">DataRow none(Connection conn, DataRow dataRow) { return dataRow; }
50
51
52
53
54
55
56 default DataGrainOperator toDataGrainOperator()
57 {
58 return toDataRowsOperator().toDataGrainOperator();
59 }
60
61
62
63
64
65
66 default DataRowsOperator toDataRowsOperator()
67 {
68 return (connection, dataRows) -> {
69 List<DataRow> resultRows = new ArrayList<>(dataRows.size());
70 for (DataRow dataRow: dataRows) {
71 resultRows.add(
72 operate(connection, dataRow)
73 );
74 }
75
76 return resultRows;
77 };
78 }
79
80
81
82
83
84
85
86
87 default DataRowOperator surroundedBy(SurroundOperator surroundOperator)
88 {
89 return surroundOperator.surround(this);
90 }
91
92
93
94
95
96
97
98
99
100
101
102 public DataRowue/jdut/datagrain/DataRow.html#DataRow">DataRow operate(Connection connection, DataRow dataRow) throws SQLException;
103 }