1
1
package elasta .orm ;
2
2
3
- import com .google .common .collect .ImmutableList ;
4
3
import elasta .criteria .json .mapping .*;
5
- import elasta .criteria .json .mapping .impl .JsonToFuncConverterBuilderHelperImpl ;
6
- import elasta .criteria .json .mapping .impl .JsonToFuncConverterMapBuilderImpl ;
7
- import elasta .criteria .json .mapping .impl .ValueHolderOperationBuilderHelperImpl ;
4
+ import elasta .criteria .json .mapping .impl .*;
8
5
import elasta .module .ModuleExporter ;
9
6
import elasta .module .ModuleSystemBuilder ;
10
7
import elasta .orm .builder .impl .OperationMapBuilder ;
13
10
import elasta .orm .entity .core .Entity ;
14
11
import elasta .orm .entity .impl .EntityMappingHelperImpl ;
15
12
import elasta .sql .*;
16
- import elasta .sql .dbaction .DbInterceptors ;
17
- import elasta .sql .dbaction .impl .DbInterceptorsImpl ;
18
13
import elasta .orm .impl .BaseOrmImpl ;
19
14
import elasta .orm .impl .OrmImpl ;
20
15
import elasta .orm .impl .QueryDataLoaderImpl ;
21
16
import elasta .orm .query .QueryExecutor ;
22
17
import elasta .orm .query .iml .QueryExecutorImpl ;
23
- import elasta .sql .impl .BaseSqlDBImpl ;
24
- import elasta .sql .impl .SqlBuilderUtilsImpl ;
25
- import elasta .sql .impl .SqlDBImpl ;
26
- import elasta .sql .impl .SqlExecutorImpl ;
27
18
import io .vertx .ext .jdbc .JDBCClient ;
28
19
import lombok .Builder ;
29
20
import lombok .Value ;
37
28
*/
38
29
public interface OrmExporter extends ModuleExporter {
39
30
40
- static void exportTo (ExportToParams params ) {
31
+ static ModuleSystemBuilder exportTo (ExportToParams params ) {
41
32
Objects .requireNonNull (params );
42
33
34
+ final JDBCClient jdbcClient = params .getJdbcClient ();
43
35
final ModuleSystemBuilder builder = params .getModuleSystemBuilder ();
44
36
final Collection <Entity > entities = params .getEntities ();
45
37
46
38
builder .export (Orm .class , module -> {
47
- new OrmImpl (
48
- module .require (EntityMappingHelper .class ),
49
- module .require (BaseOrm .class ),
50
- module .require (QueryDataLoader .class )
39
+ module .export (
40
+ new OrmImpl (
41
+ module .require (EntityMappingHelper .class ),
42
+ module .require (BaseOrm .class ),
43
+ module .require (QueryDataLoader .class )
44
+ )
51
45
);
52
46
});
53
47
@@ -67,21 +61,31 @@ static void exportTo(ExportToParams params) {
67
61
)
68
62
);
69
63
});
64
+
65
+ SqlExporter .exportTo (
66
+ SqlExporter .ExportToParams .builder ()
67
+ .jdbcClient (jdbcClient )
68
+ .moduleSystemBuilder (builder )
69
+ .build ()
70
+ );
71
+
72
+ return builder ;
70
73
}
71
74
72
- static void exportBaseOrm (ExportToParams params ) {
75
+ static ModuleSystemBuilder exportBaseOrm (ExportToParams params ) {
73
76
74
77
final ModuleSystemBuilder builder = params .getModuleSystemBuilder ();
75
78
final JDBCClient jdbcClient = params .getJdbcClient ();
76
79
final Collection <Entity > entities = params .getEntities ();
80
+ final String isNewKey = params .getIsNewKey ();
77
81
78
82
builder .export (BaseOrm .class , module -> {
79
83
80
84
final Map <String , BaseOrmImpl .EntityOperation > operationMap = new OperationMapBuilder (
81
85
entities ,
82
86
module .require (EntityMappingHelper .class ),
83
87
module .require (SqlDB .class ),
84
- params . getIsNewKey ()
88
+ isNewKey
85
89
).build ();
86
90
87
91
module .export (new BaseOrmImpl (
@@ -99,6 +103,23 @@ static void exportBaseOrm(ExportToParams params) {
99
103
));
100
104
});
101
105
106
+ exportJsonToFuncConverterMap (builder );
107
+
108
+ exportGenericJsonToFuncConverter (builder );
109
+
110
+ return builder ;
111
+ }
112
+
113
+ static void exportGenericJsonToFuncConverter (ModuleSystemBuilder builder ) {
114
+ builder .export (GenericJsonToFuncConverter .class , module -> {
115
+ module .export (
116
+ new GenericJsonToFuncConverterImpl ()
117
+ );
118
+ });
119
+ }
120
+
121
+ static void exportJsonToFuncConverterMap (ModuleSystemBuilder builder ) {
122
+
102
123
builder .export (JsonToFuncConverterMap .class , module -> {
103
124
104
125
module .export (
@@ -110,44 +131,28 @@ static void exportBaseOrm(ExportToParams params) {
110
131
111
132
});
112
133
134
+ builder .export (JsonToFuncConverterHelper .class , module -> {
135
+ module .export (new JsonToFuncConverterHelperImpl (
136
+ module .require (JsonToFuncConverterBuilderHelper .class )
137
+ ));
138
+ });
139
+
140
+ exportJsonToFuncConverterBuilderHelper (builder );
141
+ }
142
+
143
+ static void exportJsonToFuncConverterBuilderHelper (ModuleSystemBuilder builder ) {
144
+
113
145
builder .export (JsonToFuncConverterBuilderHelper .class , module -> {
114
146
module .export (
115
147
new JsonToFuncConverterBuilderHelperImpl (
116
- new ValueHolderOperationBuilderHelperImpl ( )
148
+ module . require ( ValueHolderOperationBuilderHelper . class )
117
149
)
118
150
);
119
151
});
120
152
121
- builder .export (SqlDB .class , module -> {
122
- module .export (new SqlDBImpl (
123
- module .require (BaseSqlDB .class ),
124
- module .require (SqlBuilderUtils .class ),
125
- new DbInterceptorsImpl (
126
- ImmutableList .of (),
127
- ImmutableList .of ()
128
- )
129
- ));
130
- });
131
-
132
- builder .export (BaseSqlDB .class , module -> {
133
- module .export (new BaseSqlDBImpl (
134
- module .require (SqlExecutor .class ),
135
- module .require (SqlQueryBuilderUtils .class )
136
- ));
153
+ builder .export (ValueHolderOperationBuilderHelper .class , module -> {
154
+ module .export (new ValueHolderOperationBuilderHelperImpl ());
137
155
});
138
-
139
- builder .export (SqlExecutor .class , module -> module .export (new SqlExecutorImpl (
140
- jdbcClient
141
- )));
142
-
143
- builder .export (SqlBuilderUtils .class , module -> module .export (new SqlBuilderUtilsImpl ()));
144
-
145
- builder .export (DbInterceptors .class , module -> module .export (
146
- new DbInterceptorsImpl (
147
- ImmutableList .of (),
148
- ImmutableList .of ()
149
- )
150
- ));
151
156
}
152
157
153
158
@ Value
0 commit comments