1 package guru.mikelue.jdut.operation;
2
3 import java.sql.Connection;
4 import java.sql.SQLException;
5 import java.util.function.BiConsumer;
6 import java.util.function.UnaryOperator;
7
8 import guru.mikelue.jdut.datagrain.DataGrain;
9 import guru.mikelue.jdut.jdbc.JdbcFunction;
10 import guru.mikelue.jdut.jdbc.SQLExceptionConvert;
11
12
13
14
15
16
17 @FunctionalInterface
18 public interface DataGrainOperator {
19
20
21
22 @FunctionalInterface
23 public interface SurroundOperator {
24
25
26
27
28
29 default UnaryOperator<DataGrainOperator> asUnaryOperator()
30 {
31 return operator -> surround(operator);
32 }
33
34
35
36
37
38
39
40
41 public DataGrainOperator./guru/mikelue/jdut/operation/DataGrainOperator.html#DataGrainOperator">DataGrainOperator surround(DataGrainOperator surroundedOperator);
42 }
43
44
45
46
47
48
49
50
51
52 static DataGrainu/mikelue/jdut/datagrain/DataGrain.html#DataGrain">DataGrain none(Connection conn, DataGrain dataGrain) { return dataGrain; }
53
54
55
56
57
58
59
60 default JdbcFunction<Connection, DataGrain> toJdbcFunction(DataGrain dataGrain)
61 {
62 return conn -> operate(conn, dataGrain);
63 }
64
65
66
67
68
69
70
71
72
73 default <E extends RuntimeException> BiConsumer<Connection, DataGrain> asBiConsumer(SQLExceptionConvert<E> sqlExceptionConvert)
74 {
75 return (connection, dataGrain) -> {
76 try {
77 operate(connection, dataGrain);
78 } catch (SQLException e) {
79 throw sqlExceptionConvert.apply(e);
80 }
81 };
82 }
83
84
85
86
87
88 default BiConsumer<Connection, DataGrain> asBiConsumer()
89 {
90 return asBiConsumer(SQLExceptionConvert::runtimeException);
91 }
92
93
94
95
96
97
98
99
100 default DataGrainOperator surroundedBy(SurroundOperator surroundOperator)
101 {
102 return surroundOperator.surround(this);
103 }
104
105
106
107
108
109
110
111
112
113
114
115 public DataGrain/jdut/datagrain/DataGrain.html#DataGrain">DataGrain operate(Connection connection, DataGrain dataGrain) throws SQLException;
116 }