• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

mybatis / generator / 2138

02 Apr 2026 07:24PM UTC coverage: 91.775% (+1.4%) from 90.382%
2138

push

github

web-flow
Merge pull request #1484 from mybatis/renovate/org.apache.ant-ant-1.x

Update dependency org.apache.ant:ant to v1.10.16

2425 of 3124 branches covered (77.62%)

11884 of 12949 relevant lines covered (91.78%)

0.92 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

99.1
/core/mybatis-generator-core/src/main/java/org/mybatis/generator/api/Plugin.java
1
/*
2
 *    Copyright 2006-2026 the original author or authors.
3
 *
4
 *    Licensed under the Apache License, Version 2.0 (the "License");
5
 *    you may not use this file except in compliance with the License.
6
 *    You may obtain a copy of the License at
7
 *
8
 *       https://www.apache.org/licenses/LICENSE-2.0
9
 *
10
 *    Unless required by applicable law or agreed to in writing, software
11
 *    distributed under the License is distributed on an "AS IS" BASIS,
12
 *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
 *    See the License for the specific language governing permissions and
14
 *    limitations under the License.
15
 */
16
package org.mybatis.generator.api;
17

18
import java.util.Collections;
19
import java.util.List;
20
import java.util.Properties;
21

22
import org.mybatis.generator.api.dom.java.Field;
23
import org.mybatis.generator.api.dom.java.Interface;
24
import org.mybatis.generator.api.dom.java.Method;
25
import org.mybatis.generator.api.dom.java.TopLevelClass;
26
import org.mybatis.generator.api.dom.java.TopLevelRecord;
27
import org.mybatis.generator.api.dom.kotlin.KotlinFile;
28
import org.mybatis.generator.api.dom.kotlin.KotlinFunction;
29
import org.mybatis.generator.api.dom.kotlin.KotlinProperty;
30
import org.mybatis.generator.api.dom.kotlin.KotlinType;
31
import org.mybatis.generator.api.dom.xml.Document;
32
import org.mybatis.generator.api.dom.xml.XmlElement;
33
import org.mybatis.generator.config.Context;
34

35
/**
36
 * This interface defines methods that will be called at different times during
37
 * the code generation process. These methods can be used to extend or modify
38
 * the generated code. Clients may implement this interface in its entirety, or
39
 * extend the PluginAdapter (highly recommended).
40
 *
41
 * <p>Plugins have a lifecycle. In general, the lifecycle is this:
42
 *
43
 * <ol>
44
 * <li>The setXXX methods are called one time</li>
45
 * <li>The validate method is called one time</li>
46
 * <li>The initialized method is called for each introspected table</li>
47
 * <li>The clientXXX methods are called for each introspected table</li>
48
 * <li>The providerXXX methods are called for each introspected table</li>
49
 * <li>The modelXXX methods are called for each introspected table</li>
50
 * <li>The sqlMapXXX methods are called for each introspected table</li>
51
 * <li>The contextGenerateAdditionalJavaFiles(IntrospectedTable) method is
52
 * called for each introspected table</li>
53
 * <li>The contextGenerateAdditionalXmlFiles(IntrospectedTable) method is called
54
 * for each introspected table</li>
55
 * <li>The contextGenerateAdditionalJavaFiles() method is called one time</li>
56
 * <li>The contextGenerateAdditionalXmlFiles() method is called one time</li>
57
 * </ol>
58
 *
59
 * <p>Plugins are related to contexts - so each context will have its own set of
60
 * plugins. If the same plugin is specified in multiple contexts, then each
61
 * context will hold a unique instance of the plugin.
62
 *
63
 * <p>Plugins are called, and initialized, in the same order they are specified in
64
 * the configuration.
65
 *
66
 * <p>The clientXXX, modelXXX, and sqlMapXXX methods are called by the code
67
 * generators. If you replace the default code generators with other
68
 * implementations, these methods may not be called.
69
 *
70
 * @author Jeff Butler
71
 *
72
 * @see PluginAdapter
73
 */
74
public interface Plugin {
75

76
    enum ModelClassType {
1✔
77
        PRIMARY_KEY,
1✔
78
        BASE_RECORD,
1✔
79
        RECORD_WITH_BLOBS
1✔
80
    }
81

82
    /**
83
     * Set the context under which this plugin is running.
84
     *
85
     * @param context
86
     *            the new context
87
     */
88
    void setContext(Context context);
89

90
    /**
91
     * Set properties from the plugin configuration.
92
     *
93
     * @param properties
94
     *            the new properties
95
     */
96
    void setProperties(Properties properties);
97

98
    /**
99
     * Set the comment generator for the current context.
100
     *
101
     * @param commentGenerator the comment generator
102
     */
103
    void setCommentGenerator(CommentGenerator commentGenerator);
104

105
    void setKnownRuntime(KnownRuntime knownRuntime);
106

107
    /**
108
     * This method is called just before the getGeneratedXXXFiles methods are called on the introspected table. Plugins
109
     * can implement this method to override any of the default attributes, or change the results of database
110
     * introspection, before any code generation activities occur. Attributes are listed as static Strings with the
111
     * prefix ATTR_ in IntrospectedTable.
112
     *
113
     * <p>A good example of overriding an attribute would be the case where a user wanted to change the name of one
114
     * of the generated classes, change the target package, or change the name of the generated SQL map file.
115
     *
116
     * <p><b>Warning:</b> Anything that is listed as an attribute should not be changed by one of the other plugin
117
     * methods. For example, if you want to change the name of a generated example class, you should not simply change
118
     * the Type in the <code>modelExampleClassGenerated()</code> method. If you do, the change will not be reflected
119
     * in other generated artifacts.
120
     *
121
     * @param introspectedTable
122
     *            the introspected table
123
     */
124
    default void initialized(IntrospectedTable introspectedTable) {}
1✔
125

126
    /**
127
     * This method is called after all the setXXX methods are called, but before
128
     * any other method is called. This allows the plugin to determine whether
129
     * it can run or not. For example, if the plugin requires certain properties
130
     * to be set, and the properties are not set, then the plugin is invalid and
131
     * will not run.
132
     *
133
     * @param warnings
134
     *            add strings to this list to specify warnings. For example, if
135
     *            the plugin is invalid, you should specify why. Warnings are
136
     *            reported to users after the completion of the run.
137
     * @return true if the plugin is in a valid state. Invalid plugins will not
138
     *         be called
139
     */
140
    boolean validate(List<String> warnings);
141

142
    /**
143
     * This method can be used to generate any additional Java file needed by
144
     * your implementation. This method is called once, after all other Java
145
     * files have been generated.
146
     *
147
     * @return a List of GeneratedJavaFiles - these files will be saved
148
     *         with the other files from this run.
149
     */
150
    default List<GeneratedJavaFile> contextGenerateAdditionalJavaFiles() {
151
        return Collections.emptyList();
1✔
152
    }
153

154
    /**
155
     * This method can be used to generate additional Java files needed by your
156
     * implementation that might be related to a specific table. This method is
157
     * called once for every table in the configuration.
158
     *
159
     * @param introspectedTable
160
     *            The class containing information about the table as
161
     *            introspected from the database
162
     * @return a List of GeneratedJavaFiles - these files will be saved
163
     *         with the other files from this run.
164
     */
165
    default List<GeneratedJavaFile> contextGenerateAdditionalJavaFiles(IntrospectedTable introspectedTable) {
166
        return Collections.emptyList();
1✔
167
    }
168

169
    default List<GeneratedKotlinFile> contextGenerateAdditionalKotlinFiles() {
170
        return Collections.emptyList();
1✔
171
    }
172

173
    default List<GeneratedKotlinFile> contextGenerateAdditionalKotlinFiles(IntrospectedTable introspectedTable) {
174
        return Collections.emptyList();
1✔
175
    }
176

177
    default List<GenericGeneratedFile> contextGenerateAdditionalFiles() {
178
        return Collections.emptyList();
1✔
179
    }
180

181
    default List<GenericGeneratedFile> contextGenerateAdditionalFiles(IntrospectedTable introspectedTable) {
182
        return Collections.emptyList();
1✔
183
    }
184

185
    /**
186
     * This method can be used to generate any additional XML file needed by
187
     * your implementation. This method is called once, after all other XML
188
     * files have been generated.
189
     *
190
     * @return a List of GeneratedXmlFiles - these files will be saved
191
     *         with the other files from this run.
192
     */
193
    default List<GeneratedXmlFile> contextGenerateAdditionalXmlFiles() {
194
        return Collections.emptyList();
1✔
195
    }
196

197
    /**
198
     * This method can be used to generate additional XML files needed by your
199
     * implementation that might be related to a specific table. This method is
200
     * called once for every table in the configuration.
201
     *
202
     * @param introspectedTable
203
     *            The class containing information about the table as
204
     *            introspected from the database
205
     * @return a List of GeneratedXmlFiles - these files will be saved
206
     *         with the other files from this run.
207
     */
208
    default List<GeneratedXmlFile> contextGenerateAdditionalXmlFiles(IntrospectedTable introspectedTable) {
209
        return Collections.emptyList();
1✔
210
    }
211

212
    /**
213
     * This method is called when the entire client has been generated.
214
     * Implement this method to add additional methods or fields to a generated
215
     * client interface or implementation.
216
     *
217
     * @param interfaze
218
     *            the generated interface if any, may be null
219
     * @param introspectedTable
220
     *            The class containing information about the table as
221
     *            introspected from the database
222
     * @return true if the interface should be generated, false if the generated
223
     *         interface should be ignored. In the case of multiple plugins, the
224
     *         first plugin returning false will disable the calling of further
225
     *         plugins.
226
     */
227
    default boolean clientGenerated(Interface interfaze, IntrospectedTable introspectedTable) {
228
        return true;
1✔
229
    }
230

231
    /**
232
     * This method is called when the insert method has been generated for the mapper interface.
233
     * This method is only called in the MyBatis3DynamicSql runtime. This method is only
234
     * called if the table has generated keys.
235
     *
236
     * @param method
237
     *     the generated insert method
238
     * @param interfaze
239
     *     the partially generated mapper interfaces
240
     * @param introspectedTable
241
     *     The class containing information about the table as introspected from the database
242
     * @return true if the method should be generated, false if the generated
243
     *         method should be ignored. In the case of multiple plugins, the
244
     *         first plugin returning false will disable the calling of further
245
     *         plugins.
246
     */
247
    default boolean clientBasicInsertMethodGenerated(Method method, Interface interfaze,
248
                                                     IntrospectedTable introspectedTable) {
249
        return true;
1✔
250
    }
251

252
    /**
253
     * This method is called when the insert function has been generated for the mapper interface.
254
     * This method is only called in the MyBatis3Kotlin runtime. This method is only
255
     * called if the table has generated keys.
256
     *
257
     * @param kotlinFunction
258
     *     the generated insert function
259
     * @param kotlinFile
260
     *     the partially generated file
261
     * @param introspectedTable
262
     *     The class containing information about the table as introspected from the database
263
     * @return true if the function should be generated, false if the generated
264
     *         function should be ignored. In the case of multiple plugins, the
265
     *         first plugin returning false will disable the calling of further
266
     *         plugins.
267
     */
268
    default boolean clientBasicInsertMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
269
            IntrospectedTable introspectedTable) {
270
        return true;
1✔
271
    }
272

273
    /**
274
     * This method is called when the insert multiple method has been generated for the mapper interface.
275
     * This method is only called in the MyBatis3DynamicSql runtime. This method is only
276
     * called if the table has generated keys.
277
     *
278
     * @param method
279
     *     the generated insert method
280
     * @param interfaze
281
     *     the partially generated mapper interfaces
282
     * @param introspectedTable
283
     *     The class containing information about the table as introspected from the database
284
     * @return true if the method should be generated, false if the generated
285
     *         method should be ignored. In the case of multiple plugins, the
286
     *         first plugin returning false will disable the calling of further
287
     *         plugins.
288
     */
289
    default boolean clientBasicInsertMultipleMethodGenerated(Method method, Interface interfaze,
290
            IntrospectedTable introspectedTable) {
291
        return true;
1✔
292
    }
293

294
    /**
295
     * This method is called when the insert multiple method has been generated for the mapper interface.
296
     * This method is only called in the MyBatis3DynamicSql runtime. This method is only
297
     * called if the table has generated keys.
298
     *
299
     * @param kotlinFunction
300
     *     the generated insert function
301
     * @param kotlinFile
302
     *     the partially generated file
303
     * @param introspectedTable
304
     *     The class containing information about the table as introspected from the database
305
     * @return true if the method should be generated, false if the generated
306
     *         function should be ignored. In the case of multiple plugins, the
307
     *         first plugin returning false will disable the calling of further
308
     *         plugins.
309
     */
310
    default boolean clientBasicInsertMultipleMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
311
            IntrospectedTable introspectedTable) {
312
        return true;
1✔
313
    }
314

315
    /**
316
     * This method is called when the selectMany method has been generated for the mapper interface.
317
     * This method is only called in the MyBatis3DynamicSql runtime.
318
     *
319
     * @param method
320
     *     the generated selectMany method
321
     * @param interfaze
322
     *     the partially generated mapper interfaces
323
     * @param introspectedTable
324
     *     The class containing information about the table as introspected from the database
325
     * @return true if the method should be generated, false if the generated
326
     *         method should be ignored. In the case of multiple plugins, the
327
     *         first plugin returning false will disable the calling of further
328
     *         plugins.
329
     */
330
    default boolean clientBasicSelectManyMethodGenerated(Method method, Interface interfaze,
331
            IntrospectedTable introspectedTable) {
332
        return true;
1✔
333
    }
334

335
    default boolean clientBasicSelectManyMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
336
            IntrospectedTable introspectedTable) {
337
        return true;
1✔
338
    }
339

340
    /**
341
     * This method is called when the selectOne method has been generated for the mapper interface.
342
     * This method is only called in the MyBatis3DynamicSql runtime.
343
     *
344
     * @param method
345
     *     the generated selectOne method
346
     * @param interfaze
347
     *     the partially generated mapper interfaces
348
     * @param introspectedTable
349
     *     The class containing information about the table as introspected from the database
350
     * @return true if the method should be generated, false if the generated
351
     *         method should be ignored. In the case of multiple plugins, the
352
     *         first plugin returning false will disable the calling of further
353
     *         plugins.
354
     */
355
    default boolean clientBasicSelectOneMethodGenerated(Method method, Interface interfaze,
356
            IntrospectedTable introspectedTable) {
357
        return true;
1✔
358
    }
359

360
    default boolean clientBasicSelectOneMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
361
            IntrospectedTable introspectedTable) {
362
        return true;
1✔
363
    }
364

365
    /**
366
     * This method is called when the countByExample method has been generated
367
     * in the client interface.
368
     *
369
     * @param method
370
     *            the generated countByExample method
371
     * @param interfaze
372
     *            the partially implemented client interface. You can add
373
     *            additional imported classes to the interface if
374
     *            necessary.
375
     * @param introspectedTable
376
     *            The class containing information about the table as
377
     *            introspected from the database
378
     * @return true if the method should be generated, false if the generated
379
     *         method should be ignored. In the case of multiple plugins, the
380
     *         first plugin returning false will disable the calling of further
381
     *         plugins.
382
     */
383
    default boolean clientCountByExampleMethodGenerated(Method method,
384
            Interface interfaze, IntrospectedTable introspectedTable) {
385
        return true;
1✔
386
    }
387

388
    /**
389
     * This method is called when the deleteByExample method has been generated
390
     * in the client interface.
391
     *
392
     * @param method
393
     *            the generated deleteByExample method
394
     * @param interfaze
395
     *            the partially implemented client interface. You can add
396
     *            additional imported classes to the interface if
397
     *            necessary.
398
     * @param introspectedTable
399
     *            The class containing information about the table as
400
     *            introspected from the database
401
     * @return true if the method should be generated, false if the generated
402
     *         method should be ignored. In the case of multiple plugins, the
403
     *         first plugin returning false will disable the calling of further
404
     *         plugins.
405
     */
406
    default boolean clientDeleteByExampleMethodGenerated(Method method,
407
            Interface interfaze, IntrospectedTable introspectedTable) {
408
        return true;
1✔
409
    }
410

411
    /**
412
     * This method is called when the deleteByPrimaryKey method has been
413
     * generated in the client interface.
414
     *
415
     * @param method
416
     *            the generated deleteByPrimaryKey method
417
     * @param interfaze
418
     *            the partially implemented client interface. You can add
419
     *            additional imported classes to the interface if
420
     *            necessary.
421
     * @param introspectedTable
422
     *            The class containing information about the table as
423
     *            introspected from the database
424
     * @return true if the method should be generated, false if the generated
425
     *         method should be ignored. In the case of multiple plugins, the
426
     *         first plugin returning false will disable the calling of further
427
     *         plugins.
428
     */
429
    default boolean clientDeleteByPrimaryKeyMethodGenerated(Method method,
430
            Interface interfaze, IntrospectedTable introspectedTable) {
431
        return true;
1✔
432
    }
433

434
    default boolean clientDeleteByPrimaryKeyMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
435
            IntrospectedTable introspectedTable) {
436
        return true;
1✔
437
    }
438

439
    /**
440
     * Called when the general count method has been generated. This is the replacement for countByExample
441
     * in the MyBatis Dynamic SQL V2 runtime.
442
     *
443
     * @param method
444
     *     the generated general count method
445
     * @param interfaze
446
     *     the partially generated mapper interfaces
447
     * @param introspectedTable
448
     *            The class containing information about the table as
449
     *            introspected from the database
450
     * @return true if the method should be generated
451
     */
452
    default boolean clientGeneralCountMethodGenerated(Method method, Interface interfaze,
453
                                                      IntrospectedTable introspectedTable) {
454
        return true;
1✔
455
    }
456

457
    default boolean clientGeneralCountMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
458
            IntrospectedTable introspectedTable) {
459
        return true;
1✔
460
    }
461

462
    /**
463
     * Called when the general delete method has been generated. This is the replacement for deleteByExample
464
     * in the MyBatis Dynamic SQL V2 runtime.
465
     *
466
     * @param method
467
     *     the generated general delete method
468
     * @param interfaze
469
     *     the partially generated mapper interfaces
470
     * @param introspectedTable
471
     *            The class containing information about the table as
472
     *            introspected from the database
473
     * @return true if the method should be generated
474
     */
475
    default boolean clientGeneralDeleteMethodGenerated(Method method, Interface interfaze,
476
                                                       IntrospectedTable introspectedTable) {
477
        return true;
1✔
478
    }
479

480
    default boolean clientGeneralDeleteMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
481
            IntrospectedTable introspectedTable) {
482
        return true;
1✔
483
    }
484

485
    /**
486
     * Called when the general select distinct method has been generated. This is the replacement for
487
     * selectDistinctByExample in the MyBatis Dynamic SQL V2 runtime.
488
     *
489
     * @param method
490
     *     the generated general select distinct method
491
     * @param interfaze
492
     *     the partially generated mapper interfaces
493
     * @param introspectedTable
494
     *            The class containing information about the table as
495
     *            introspected from the database
496
     * @return true if the method should be generated
497
     */
498
    default boolean clientGeneralSelectDistinctMethodGenerated(Method method, Interface interfaze,
499
            IntrospectedTable introspectedTable) {
500
        return true;
1✔
501
    }
502

503
    default boolean clientGeneralSelectDistinctMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
504
            IntrospectedTable introspectedTable) {
505
        return true;
1✔
506
    }
507

508
    /**
509
     * Called when the general select method has been generated. This is the replacement for
510
     * selectByExample in the MyBatis Dynamic SQL V2 runtime.
511
     *
512
     * @param method
513
     *     the generated general select method
514
     * @param interfaze
515
     *     the partially generated mapper interfaces
516
     * @param introspectedTable
517
     *            The class containing information about the table as
518
     *            introspected from the database
519
     * @return true if the method should be generated
520
     */
521
    default boolean clientGeneralSelectMethodGenerated(Method method, Interface interfaze,
522
                                                       IntrospectedTable introspectedTable) {
523
        return true;
1✔
524
    }
525

526
    default boolean clientGeneralSelectMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
527
            IntrospectedTable introspectedTable) {
528
        return true;
1✔
529
    }
530

531
    /**
532
     * Called when the general update method has been generated. This is the replacement for
533
     * updateByExample in the MyBatis Dynamic SQL V2 runtime.
534
     *
535
     * @param method
536
     *     the generated general update method
537
     * @param interfaze
538
     *     the partially generated mapper interfaces
539
     * @param introspectedTable
540
     *            The class containing information about the table as
541
     *            introspected from the database
542
     * @return true if the method should be generated
543
     */
544
    default boolean clientGeneralUpdateMethodGenerated(Method method, Interface interfaze,
545
                                                       IntrospectedTable introspectedTable) {
546
        return true;
1✔
547
    }
548

549
    default boolean clientGeneralUpdateMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
550
            IntrospectedTable introspectedTable) {
551
        return true;
1✔
552
    }
553

554
    /**
555
     * This method is called when the insert method has been generated in the
556
     * client interface.
557
     *
558
     * @param method
559
     *            the generated insert method
560
     * @param interfaze
561
     *            the partially implemented client interface. You can add
562
     *            additional imported classes to the interface if
563
     *            necessary.
564
     * @param introspectedTable
565
     *            The class containing information about the table as
566
     *            introspected from the database
567
     * @return true if the method should be generated, false if the generated
568
     *         method should be ignored. In the case of multiple plugins, the
569
     *         first plugin returning false will disable the calling of further
570
     *         plugins.
571
     */
572
    default boolean clientInsertMethodGenerated(Method method, Interface interfaze,
573
            IntrospectedTable introspectedTable) {
574
        return true;
1✔
575
    }
576

577
    default boolean clientInsertMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
578
            IntrospectedTable introspectedTable) {
579
        return true;
1✔
580
    }
581

582
    /**
583
     * This method is called when the insert multiple method has been generated in the
584
     * client interface.
585
     * This method is only called in the MyBatis3DynamicSql runtime.
586
     *
587
     * @param method
588
     *            the generated insert multiple method
589
     * @param interfaze
590
     *            the partially implemented client interface. You can add
591
     *            additional imported classes to the interface if
592
     *            necessary.
593
     * @param introspectedTable
594
     *            The class containing information about the table as
595
     *            introspected from the database
596
     * @return true if the method should be generated, false if the generated
597
     *         method should be ignored. In the case of multiple plugins, the
598
     *         first plugin returning false will disable the calling of further
599
     *         plugins.
600
     */
601
    default boolean clientInsertMultipleMethodGenerated(Method method, Interface interfaze,
602
            IntrospectedTable introspectedTable) {
603
        return true;
1✔
604
    }
605

606
    default boolean clientInsertMultipleMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
607
            IntrospectedTable introspectedTable) {
608
        return true;
1✔
609
    }
610

611
    /**
612
     * This method is called when the insert selective method has been generated
613
     * in the client interface.
614
     *
615
     * @param method
616
     *            the generated insert method
617
     * @param interfaze
618
     *            the partially implemented client interface. You can add
619
     *            additional imported classes to the interface if
620
     *            necessary.
621
     * @param introspectedTable
622
     *            The class containing information about the table as
623
     *            introspected from the database
624
     * @return true if the method should be generated, false if the generated
625
     *         method should be ignored. In the case of multiple plugins, the
626
     *         first plugin returning false will disable the calling of further
627
     *         plugins.
628
     */
629
    default boolean clientInsertSelectiveMethodGenerated(Method method,
630
            Interface interfaze, IntrospectedTable introspectedTable) {
631
        return true;
1✔
632
    }
633

634
    default boolean clientInsertSelectiveMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
635
            IntrospectedTable introspectedTable) {
636
        return true;
1✔
637
    }
638

639
    /**
640
     * This method is called when the selectByExampleWithBLOBs method has been
641
     * generated in the client interface.
642
     *
643
     * @param method
644
     *            the generated selectByExampleWithBLOBs method
645
     * @param interfaze
646
     *            the partially implemented client interface. You can add
647
     *            additional imported classes to the interface if
648
     *            necessary.
649
     * @param introspectedTable
650
     *            The class containing information about the table as
651
     *            introspected from the database
652
     * @return true if the method should be generated, false if the generated
653
     *         method should be ignored. In the case of multiple plugins, the
654
     *         first plugin returning false will disable the calling of further
655
     *         plugins.
656
     */
657
    default boolean clientSelectByExampleWithBLOBsMethodGenerated(Method method,
658
            Interface interfaze, IntrospectedTable introspectedTable) {
659
        return true;
1✔
660
    }
661

662
    /**
663
     * This method is called when the selectByExampleWithoutBLOBs method has
664
     * been generated in the client interface.
665
     *
666
     * @param method
667
     *            the generated selectByExampleWithoutBLOBs method
668
     * @param interfaze
669
     *            the partially implemented client interface. You can add
670
     *            additional imported classes to the interface if
671
     *            necessary.
672
     * @param introspectedTable
673
     *            The class containing information about the table as
674
     *            introspected from the database
675
     * @return true if the method should be generated, false if the generated
676
     *         method should be ignored. In the case of multiple plugins, the
677
     *         first plugin returning false will disable the calling of further
678
     *         plugins.
679
     */
680
    default boolean clientSelectByExampleWithoutBLOBsMethodGenerated(Method method,
681
            Interface interfaze, IntrospectedTable introspectedTable) {
682
        return true;
1✔
683
    }
684

685
    /**
686
     * This method is called when the selectByPrimaryKey method has been
687
     * generated in the client interface.
688
     *
689
     * @param method
690
     *            the generated selectByPrimaryKey method
691
     * @param interfaze
692
     *            the partially implemented client interface. You can add
693
     *            additional imported classes to the interface if
694
     *            necessary.
695
     * @param introspectedTable
696
     *            The class containing information about the table as
697
     *            introspected from the database
698
     * @return true if the method should be generated, false if the generated
699
     *         method should be ignored. In the case of multiple plugins, the
700
     *         first plugin returning false will disable the calling of further
701
     *         plugins.
702
     */
703
    default boolean clientSelectByPrimaryKeyMethodGenerated(Method method,
704
            Interface interfaze, IntrospectedTable introspectedTable) {
705
        return true;
1✔
706
    }
707

708
    default boolean clientSelectByPrimaryKeyMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
709
            IntrospectedTable introspectedTable) {
710
        return true;
1✔
711
    }
712

713
    /**
714
     * Called when the selectList field is generated in a MyBatis Dynamic SQL V2 runtime.
715
     *
716
     * @param field the generated selectList field
717
     * @param interfaze
718
     *     the partially generated mapper interfaces
719
     * @param introspectedTable
720
     *            The class containing information about the table as
721
     *            introspected from the database
722
     * @return true if the field should be generated
723
     */
724
    default boolean clientSelectListFieldGenerated(Field field, Interface interfaze,
725
                                                   IntrospectedTable introspectedTable) {
726
        return true;
1✔
727
    }
728

729
    /**
730
     * Called when the selectOne method is generated. This is a new method in the MyBatis Dynamic SQL V2 runtime.
731
     *
732
     * @param method
733
     *     the generated selectOne method
734
     * @param interfaze
735
     *     the partially generated mapper interfaces
736
     * @param introspectedTable
737
     *            The class containing information about the table as
738
     *            introspected from the database
739
     * @return true if the method should be generated
740
     */
741
    default boolean clientSelectOneMethodGenerated(Method method, Interface interfaze,
742
                                                   IntrospectedTable introspectedTable) {
743
        return true;
1✔
744
    }
745

746
    default boolean clientSelectOneMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
747
            IntrospectedTable introspectedTable) {
748
        return true;
1✔
749
    }
750

751
    /**
752
     * This method is called when the updateByExampleSelective method has been
753
     * generated in the client interface.
754
     *
755
     * @param method
756
     *            the generated updateByExampleSelective method
757
     * @param interfaze
758
     *            the partially implemented client interface. You can add
759
     *            additional imported classes to the interface if
760
     *            necessary.
761
     * @param introspectedTable
762
     *            The class containing information about the table as
763
     *            introspected from the database
764
     * @return true if the method should be generated, false if the generated
765
     *         method should be ignored. In the case of multiple plugins, the
766
     *         first plugin returning false will disable the calling of further
767
     *         plugins.
768
     */
769
    default boolean clientUpdateByExampleSelectiveMethodGenerated(Method method,
770
            Interface interfaze, IntrospectedTable introspectedTable) {
771
        return true;
1✔
772
    }
773

774
    /**
775
     * Called when the updateAllColumns method is generated. The generated method can be used with the general
776
     * update method to mimic the function of the old updateByExample method.
777
     *
778
     * @param method
779
     *     the generated updateAllColumns method
780
     * @param interfaze
781
     *     the partially generated mapper interfaces
782
     * @param introspectedTable
783
     *            The class containing information about the table as
784
     *            introspected from the database
785
     * @return true if the method should be generated
786
     */
787
    default boolean clientUpdateAllColumnsMethodGenerated(Method method, Interface interfaze,
788
            IntrospectedTable introspectedTable) {
789
        return true;
1✔
790
    }
791

792
    default boolean clientUpdateAllColumnsMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
793
            IntrospectedTable introspectedTable) {
794
        return true;
1✔
795
    }
796

797
    /**
798
     * Called when the updateSelectiveColumns method is generated. The generated method can be used with the general
799
     * update method to mimic the function of the old updateByExampleSelective method.
800
     *
801
     * @param method
802
     *     the generated updateSelectiveColumns method
803
     * @param interfaze
804
     *     the partially generated mapper interfaces
805
     * @param introspectedTable
806
     *            The class containing information about the table as
807
     *            introspected from the database
808
     * @return true if the method should be generated
809
     */
810
    default boolean clientUpdateSelectiveColumnsMethodGenerated(Method method, Interface interfaze,
811
            IntrospectedTable introspectedTable) {
812
        return true;
1✔
813
    }
814

815
    default boolean clientUpdateSelectiveColumnsMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
816
            IntrospectedTable introspectedTable) {
817
        return true;
1✔
818
    }
819

820
    /**
821
     * This method is called when the updateByExampleWithBLOBs method has been
822
     * generated in the client interface.
823
     *
824
     * @param method
825
     *            the generated updateByExampleWithBLOBs method
826
     * @param interfaze
827
     *            the partially implemented client interface. You can add
828
     *            additional imported classes to the interface if
829
     *            necessary.
830
     * @param introspectedTable
831
     *            The class containing information about the table as
832
     *            introspected from the database
833
     * @return true if the method should be generated, false if the generated
834
     *         method should be ignored. In the case of multiple plugins, the
835
     *         first plugin returning false will disable the calling of further
836
     *         plugins.
837
     */
838
    default boolean clientUpdateByExampleWithBLOBsMethodGenerated(Method method,
839
            Interface interfaze, IntrospectedTable introspectedTable) {
840
        return true;
1✔
841
    }
842

843
    /**
844
     * This method is called when the updateByExampleWithoutBLOBs method has
845
     * been generated in the client interface.
846
     *
847
     * @param method
848
     *            the generated updateByExampleWithoutBLOBs method
849
     * @param interfaze
850
     *            the partially implemented client interface. You can add
851
     *            additional imported classes to the interface if
852
     *            necessary.
853
     * @param introspectedTable
854
     *            The class containing information about the table as
855
     *            introspected from the database
856
     * @return true if the method should be generated, false if the generated
857
     *         method should be ignored. In the case of multiple plugins, the
858
     *         first plugin returning false will disable the calling of further
859
     *         plugins.
860
     */
861
    default boolean clientUpdateByExampleWithoutBLOBsMethodGenerated(Method method,
862
            Interface interfaze, IntrospectedTable introspectedTable) {
863
        return true;
1✔
864
    }
865

866
    /**
867
     * This method is called when the updateByPrimaryKeySelective method has
868
     * been generated in the client interface.
869
     *
870
     * @param method
871
     *            the generated updateByPrimaryKeySelective method
872
     * @param interfaze
873
     *            the partially implemented client interface. You can add
874
     *            additional imported classes to the interface if
875
     *            necessary.
876
     * @param introspectedTable
877
     *            The class containing information about the table as
878
     *            introspected from the database
879
     * @return true if the method should be generated, false if the generated
880
     *         method should be ignored. In the case of multiple plugins, the
881
     *         first plugin returning false will disable the calling of further
882
     *         plugins.
883
     */
884
    default boolean clientUpdateByPrimaryKeySelectiveMethodGenerated(Method method,
885
            Interface interfaze, IntrospectedTable introspectedTable) {
886
        return true;
1✔
887
    }
888

889
    default boolean clientUpdateByPrimaryKeySelectiveMethodGenerated(KotlinFunction kotlinFunction,
890
            KotlinFile kotlinFile, IntrospectedTable introspectedTable) {
891
        return true;
1✔
892
    }
893

894
    /**
895
     * This method is called when the updateByPrimaryKeyWithBLOBs method has
896
     * been generated in the client interface.
897
     *
898
     * @param method
899
     *            the generated updateByPrimaryKeyWithBLOBs method
900
     * @param interfaze
901
     *            the partially implemented client interface. You can add
902
     *            additional imported classes to the interface if
903
     *            necessary.
904
     * @param introspectedTable
905
     *            The class containing information about the table as
906
     *            introspected from the database
907
     * @return true if the method should be generated, false if the generated
908
     *         method should be ignored. In the case of multiple plugins, the
909
     *         first plugin returning false will disable the calling of further
910
     *         plugins.
911
     */
912
    default boolean clientUpdateByPrimaryKeyWithBLOBsMethodGenerated(Method method,
913
            Interface interfaze, IntrospectedTable introspectedTable) {
914
        return true;
1✔
915
    }
916

917
    /**
918
     * This method is called when the updateByPrimaryKeyWithoutBLOBs method has
919
     * been generated in the client interface.
920
     *
921
     * @param method
922
     *            the generated updateByPrimaryKeyWithoutBLOBs method
923
     * @param interfaze
924
     *            the partially implemented client interface. You can add
925
     *            additional imported classes to the interface if
926
     *            necessary.
927
     * @param introspectedTable
928
     *            The class containing information about the table as
929
     *            introspected from the database
930
     * @return true if the method should be generated, false if the generated
931
     *         method should be ignored. In the case of multiple plugins, the
932
     *         first plugin returning false will disable the calling of further
933
     *         plugins.
934
     */
935
    default boolean clientUpdateByPrimaryKeyWithoutBLOBsMethodGenerated(Method method,
936
            Interface interfaze, IntrospectedTable introspectedTable) {
937
        return true;
1✔
938
    }
939

940
    /**
941
     * This method is called when the selectAll method has been
942
     * generated in the client interface.  This method is only generated by
943
     * the simple runtime.
944
     *
945
     * @param method
946
     *            the generated selectAll method
947
     * @param interfaze
948
     *            the partially implemented client interface. You can add
949
     *            additional imported classes to the interface if
950
     *            necessary.
951
     * @param introspectedTable
952
     *            The class containing information about the table as
953
     *            introspected from the database
954
     * @return true if the method should be generated, false if the generated
955
     *         method should be ignored. In the case of multiple plugins, the
956
     *         first plugin returning false will disable the calling of further
957
     *         plugins.
958
     */
959
    default boolean clientSelectAllMethodGenerated(Method method,
960
            Interface interfaze, IntrospectedTable introspectedTable) {
961
        return true;
1✔
962
    }
963

964
    /**
965
     * This method is called after the field is generated for a specific column
966
     * in a table.
967
     *
968
     * @param field
969
     *            the field generated for the specified column
970
     * @param topLevelClass
971
     *            the partially implemented model class. You can add additional
972
     *            imported classes to the implementation class if necessary.
973
     * @param introspectedColumn
974
     *            The class containing information about the column related
975
     *            to this field as introspected from the database
976
     * @param introspectedTable
977
     *            The class containing information about the table as
978
     *            introspected from the database
979
     * @param modelClassType
980
     *            the type of class that the field is generated for
981
     * @return true if the field should be generated, false if the generated
982
     *         field should be ignored. In the case of multiple plugins, the
983
     *         first plugin returning false will disable the calling of further
984
     *         plugins.
985
     */
986
    default boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass,
987
            IntrospectedColumn introspectedColumn,
988
            IntrospectedTable introspectedTable, ModelClassType modelClassType) {
989
        return true;
1✔
990
    }
991

992
    /**
993
     * This method is called after the getter, or accessor, method is generated
994
     * for a specific column in a table.
995
     *
996
     * @param method
997
     *            the getter, or accessor, method generated for the specified
998
     *            column
999
     * @param topLevelClass
1000
     *            the partially implemented model class. You can add additional
1001
     *            imported classes to the implementation class if necessary.
1002
     * @param introspectedColumn
1003
     *            The class containing information about the column related
1004
     *            to this field as introspected from the database
1005
     * @param introspectedTable
1006
     *            The class containing information about the table as
1007
     *            introspected from the database
1008
     * @param modelClassType
1009
     *            the type of class that the field is generated for
1010
     * @return true if the method should be generated, false if the generated
1011
     *         method should be ignored. In the case of multiple plugins, the
1012
     *         first plugin returning false will disable the calling of further
1013
     *         plugins.
1014
     */
1015
    default boolean modelGetterMethodGenerated(Method method,
1016
            TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
1017
            IntrospectedTable introspectedTable, ModelClassType modelClassType) {
1018
        return true;
1✔
1019
    }
1020

1021
    /**
1022
     * This method is called after the setter, or mutator, method is generated
1023
     * for a specific column in a table.
1024
     *
1025
     * @param method
1026
     *            the setter, or mutator, method generated for the specified
1027
     *            column
1028
     * @param topLevelClass
1029
     *            the partially implemented model class. You can add additional
1030
     *            imported classes to the implementation class if necessary.
1031
     * @param introspectedColumn
1032
     *            The class containing information about the column related
1033
     *            to this field as introspected from the database
1034
     * @param introspectedTable
1035
     *            The class containing information about the table as
1036
     *            introspected from the database
1037
     * @param modelClassType
1038
     *            the type of class that the field is generated for
1039
     * @return true if the method should be generated, false if the generated
1040
     *         method should be ignored. In the case of multiple plugins, the
1041
     *         first plugin returning false will disable the calling of further
1042
     *         plugins.
1043
     */
1044
    default boolean modelSetterMethodGenerated(Method method,
1045
            TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn,
1046
            IntrospectedTable introspectedTable, ModelClassType modelClassType) {
1047
        return true;
1✔
1048
    }
1049

1050
    /**
1051
     * This method is called after the primary key class is generated by the
1052
     * ModelGenerator. This method will only be called if
1053
     * the table rules call for generation of a primary key class.
1054
     * <br><br>
1055
     * This method is only guaranteed to be called by the Java
1056
     * model generators. Other user supplied generators may, or may not, call
1057
     * this method.
1058
     *
1059
     * @param topLevelClass
1060
     *            the generated primary key class
1061
     * @param introspectedTable
1062
     *            The class containing information about the table as
1063
     *            introspected from the database
1064
     * @return true if the class should be generated, false if the generated
1065
     *         class should be ignored. In the case of multiple plugins, the
1066
     *         first plugin returning false will disable the calling of further
1067
     *         plugins.
1068
     */
1069
    default boolean modelPrimaryKeyClassGenerated(TopLevelClass topLevelClass,
1070
            IntrospectedTable introspectedTable) {
1071
        return true;
1✔
1072
    }
1073

1074
    /**
1075
     * This method is called after the base record class is generated by the
1076
     * ModelGenerator. This method will only be called if
1077
     * the table rules call for generation of a base record class.
1078
     * <br><br>
1079
     * This method is only guaranteed to be called by the default Java
1080
     * model generators. Other user supplied generators may, or may not, call
1081
     * this method.
1082
     *
1083
     * @param topLevelClass
1084
     *            the generated base record class
1085
     * @param introspectedTable
1086
     *            The class containing information about the table as
1087
     *            introspected from the database
1088
     * @return true if the class should be generated, false if the generated
1089
     *         class should be ignored. In the case of multiple plugins, the
1090
     *         first plugin returning false will disable the calling of further
1091
     *         plugins.
1092
     */
1093
    default boolean modelBaseRecordClassGenerated(TopLevelClass topLevelClass,
1094
            IntrospectedTable introspectedTable) {
1095
        return true;
1✔
1096
    }
1097

1098
    /**
1099
     * This method is called after the record with BLOBs class is generated by
1100
     * the ModelGenerator. This method will only be called
1101
     * if the table rules call for generation of a record with BLOBs class.
1102
     * <br><br>
1103
     * This method is only guaranteed to be called by the default Java
1104
     * model generators. Other user supplied generators may, or may not, call
1105
     * this method.
1106
     *
1107
     * @param topLevelClass
1108
     *            the generated record with BLOBs class
1109
     * @param introspectedTable
1110
     *            The class containing information about the table as
1111
     *            introspected from the database
1112
     * @return true if the class should be generated, false if the generated
1113
     *         class should be ignored. In the case of multiple plugins, the
1114
     *         first plugin returning false will disable the calling of further
1115
     *         plugins.
1116
     */
1117
    default boolean modelRecordWithBLOBsClassGenerated(TopLevelClass topLevelClass,
1118
            IntrospectedTable introspectedTable) {
1119
        return true;
×
1120
    }
1121

1122
    /**
1123
     * This method is called after the example class is generated by the
1124
     * ModelGenerator. This method will only be called if the table
1125
     * rules call for generation of an example class.
1126
     * <br><br>
1127
     * This method is only guaranteed to be called by the default Java
1128
     * model generators. Other user supplied generators may, or may not, call
1129
     * this method.
1130
     *
1131
     * @param topLevelClass
1132
     *            the generated example class
1133
     * @param introspectedTable
1134
     *            The class containing information about the table as
1135
     *            introspected from the database
1136
     * @return true if the class should be generated, false if the generated
1137
     *         class should be ignored. In the case of multiple plugins, the
1138
     *         first plugin returning false will disable the calling of further
1139
     *         plugins.
1140
     */
1141
    default boolean modelExampleClassGenerated(TopLevelClass topLevelClass,
1142
            IntrospectedTable introspectedTable) {
1143
        return true;
1✔
1144
    }
1145

1146
    /**
1147
     * This method is called after a record class is generated (when the model type is "record")
1148
     * The record is generated by the
1149
     * ModelGenerator.
1150
     * <br><br>
1151
     * This method is only guaranteed to be called by the default Java
1152
     * model generators. Other user supplied generators may, or may not, call
1153
     * this method.
1154
     *
1155
     * @param topLevelRecord
1156
     *            the generated record
1157
     * @param introspectedTable
1158
     *            The class containing information about the table as
1159
     *            introspected from the database
1160
     * @return true if the record should be generated, false if the generated
1161
     *         record should be ignored. In the case of multiple plugins, the
1162
     *         first plugin returning false will disable the calling of further
1163
     *         plugins.
1164
     */
1165
    default boolean modelRecordGenerated(TopLevelRecord topLevelRecord, IntrospectedTable introspectedTable) {
1166
        return true;
1✔
1167
    }
1168

1169
    /**
1170
     * This method is called when the SqlMap file has been generated.
1171
     *
1172
     * @param sqlMap
1173
     *            the generated file (containing the file name, package name,
1174
     *            and project name)
1175
     * @param introspectedTable
1176
     *            The class containing information about the table as
1177
     *            introspected from the database
1178
     * @return true if the sqlMap should be generated, false if the generated
1179
     *         sqlMap should be ignored. In the case of multiple plugins, the
1180
     *         first plugin returning false will disable the calling of further
1181
     *         plugins.
1182
     */
1183
    default boolean sqlMapGenerated(GeneratedXmlFile sqlMap,
1184
            IntrospectedTable introspectedTable) {
1185
        return true;
1✔
1186
    }
1187

1188
    /**
1189
     * This method is called when the SqlMap document has been generated. This
1190
     * method can be used to add additional XML elements to the generated
1191
     * document.
1192
     *
1193
     * @param document
1194
     *            the generated document (note that this is the MyBatis generator's internal
1195
     *            Document class - not the w3c XML Document class)
1196
     * @param introspectedTable
1197
     *            The class containing information about the table as
1198
     *            introspected from the database
1199
     * @return true if the document should be generated, false if the generated
1200
     *         document should be ignored. In the case of multiple plugins, the
1201
     *         first plugin returning false will disable the calling of further
1202
     *         plugins. Also, if any plugin returns false, then the
1203
     *         <code>sqlMapGenerated</code> method will not be called.
1204
     */
1205
    default boolean sqlMapDocumentGenerated(Document document, IntrospectedTable introspectedTable) {
1206
        return true;
1✔
1207
    }
1208

1209
    /**
1210
     * This method is called when the base resultMap is generated.
1211
     *
1212
     * @param element
1213
     *            the generated &lt;resultMap&gt; element
1214
     * @param introspectedTable
1215
     *            The class containing information about the table as
1216
     *            introspected from the database
1217
     * @return true if the element should be generated, false if the generated
1218
     *         element should be ignored. In the case of multiple plugins, the
1219
     *         first plugin returning false will disable the calling of further
1220
     *         plugins.
1221
     */
1222
    default boolean sqlMapResultMapWithoutBLOBsElementGenerated(XmlElement element,
1223
            IntrospectedTable introspectedTable) {
1224
        return true;
1✔
1225
    }
1226

1227
    /**
1228
     * This method is called when the countByExample element is generated.
1229
     *
1230
     * @param element
1231
     *            the generated &lt;select&gt; element
1232
     * @param introspectedTable
1233
     *            The class containing information about the table as
1234
     *            introspected from the database
1235
     * @return true if the element should be generated, false if the generated
1236
     *         element should be ignored. In the case of multiple plugins, the
1237
     *         first plugin returning false will disable the calling of further
1238
     *         plugins.
1239
     */
1240
    default boolean sqlMapCountByExampleElementGenerated(XmlElement element,
1241
            IntrospectedTable introspectedTable) {
1242
        return true;
1✔
1243
    }
1244

1245
    /**
1246
     * This method is called when the deleteByExample element is generated.
1247
     *
1248
     * @param element
1249
     *            the generated &lt;delete&gt; element
1250
     * @param introspectedTable
1251
     *            The class containing information about the table as
1252
     *            introspected from the database
1253
     * @return true if the element should be generated, false if the generated
1254
     *         element should be ignored. In the case of multiple plugins, the
1255
     *         first plugin returning false will disable the calling of further
1256
     *         plugins.
1257
     */
1258
    default boolean sqlMapDeleteByExampleElementGenerated(XmlElement element,
1259
            IntrospectedTable introspectedTable) {
1260
        return true;
1✔
1261
    }
1262

1263
    /**
1264
     * This method is called when the deleteByPrimaryKey element is generated.
1265
     *
1266
     * @param element
1267
     *            the generated &lt;delete&gt; element
1268
     * @param introspectedTable
1269
     *            The class containing information about the table as
1270
     *            introspected from the database
1271
     * @return true if the element should be generated, false if the generated
1272
     *         element should be ignored. In the case of multiple plugins, the
1273
     *         first plugin returning false will disable the calling of further
1274
     *         plugins.
1275
     */
1276
    default boolean sqlMapDeleteByPrimaryKeyElementGenerated(XmlElement element,
1277
            IntrospectedTable introspectedTable) {
1278
        return true;
1✔
1279
    }
1280

1281
    /**
1282
     * This method is called when the exampleWhereClause element is generated.
1283
     *
1284
     * @param element
1285
     *            the generated &lt;sql&gt; element
1286
     * @param introspectedTable
1287
     *            The class containing information about the table as
1288
     *            introspected from the database
1289
     * @return true if the element should be generated, false if the generated
1290
     *         element should be ignored. In the case of multiple plugins, the
1291
     *         first plugin returning false will disable the calling of further
1292
     *         plugins.
1293
     */
1294
    default boolean sqlMapExampleWhereClauseElementGenerated(XmlElement element,
1295
            IntrospectedTable introspectedTable) {
1296
        return true;
1✔
1297
    }
1298

1299
    /**
1300
     * This method is called when the baseColumnList element is generated.
1301
     *
1302
     * @param element
1303
     *            the generated &lt;sql&gt; element
1304
     * @param introspectedTable
1305
     *            The class containing information about the table as
1306
     *            introspected from the database
1307
     * @return true if the element should be generated, false if the generated
1308
     *         element should be ignored. In the case of multiple plugins, the
1309
     *         first plugin returning false will disable the calling of further
1310
     *         plugins.
1311
     */
1312
    default boolean sqlMapBaseColumnListElementGenerated(XmlElement element,
1313
            IntrospectedTable introspectedTable) {
1314
        return true;
1✔
1315
    }
1316

1317
    /**
1318
     * This method is called when the blobColumnList element is generated.
1319
     *
1320
     * @param element
1321
     *            the generated &lt;sql&gt; element
1322
     * @param introspectedTable
1323
     *            The class containing information about the table as
1324
     *            introspected from the database
1325
     * @return true if the element should be generated, false if the generated
1326
     *         element should be ignored. In the case of multiple plugins, the
1327
     *         first plugin returning false will disable the calling of further
1328
     *         plugins.
1329
     */
1330
    default boolean sqlMapBlobColumnListElementGenerated(XmlElement element,
1331
            IntrospectedTable introspectedTable) {
1332
        return true;
1✔
1333
    }
1334

1335
    /**
1336
     * This method is called when the insert element is generated.
1337
     *
1338
     * @param element
1339
     *            the generated &lt;insert&gt; element
1340
     * @param introspectedTable
1341
     *            The class containing information about the table as
1342
     *            introspected from the database
1343
     * @return true if the element should be generated, false if the generated
1344
     *         element should be ignored. In the case of multiple plugins, the
1345
     *         first plugin returning false will disable the calling of further
1346
     *         plugins.
1347
     */
1348
    default boolean sqlMapInsertElementGenerated(XmlElement element,
1349
            IntrospectedTable introspectedTable) {
1350
        return true;
1✔
1351
    }
1352

1353
    /**
1354
     * This method is called when the insert selective element is generated.
1355
     *
1356
     * @param element
1357
     *            the generated &lt;insert&gt; element
1358
     * @param introspectedTable
1359
     *            The class containing information about the table as
1360
     *            introspected from the database
1361
     * @return true if the element should be generated, false if the generated
1362
     *         element should be ignored. In the case of multiple plugins, the
1363
     *         first plugin returning false will disable the calling of further
1364
     *         plugins.
1365
     */
1366
    default boolean sqlMapInsertSelectiveElementGenerated(XmlElement element,
1367
            IntrospectedTable introspectedTable) {
1368
        return true;
1✔
1369
    }
1370

1371
    /**
1372
     * This method is called when the resultMap with BLOBs element is generated
1373
     * - this resultMap will extend the base resultMap.
1374
     *
1375
     * @param element
1376
     *            the generated &lt;resultMap&gt; element
1377
     * @param introspectedTable
1378
     *            The class containing information about the table as
1379
     *            introspected from the database
1380
     * @return true if the element should be generated, false if the generated
1381
     *         element should be ignored. In the case of multiple plugins, the
1382
     *         first plugin returning false will disable the calling of further
1383
     *         plugins.
1384
     */
1385
    default boolean sqlMapResultMapWithBLOBsElementGenerated(XmlElement element,
1386
            IntrospectedTable introspectedTable) {
1387
        return true;
1✔
1388
    }
1389

1390
    /**
1391
     * This method is called when the selectAll element is generated.
1392
     *
1393
     * @param element
1394
     *            the generated &lt;select&gt; element
1395
     * @param introspectedTable
1396
     *            The class containing information about the table as
1397
     *            introspected from the database
1398
     * @return true if the element should be generated, false if the generated
1399
     *         element should be ignored. In the case of multiple plugins, the
1400
     *         first plugin returning false will disable the calling of further
1401
     *         plugins.
1402
     */
1403
    default boolean sqlMapSelectAllElementGenerated(XmlElement element,
1404
            IntrospectedTable introspectedTable) {
1405
        return true;
1✔
1406
    }
1407

1408
    /**
1409
     * This method is called when the selectByPrimaryKey element is generated.
1410
     *
1411
     * @param element
1412
     *            the generated &lt;select&gt; element
1413
     * @param introspectedTable
1414
     *            The class containing information about the table as
1415
     *            introspected from the database
1416
     * @return true if the element should be generated, false if the generated
1417
     *         element should be ignored. In the case of multiple plugins, the
1418
     *         first plugin returning false will disable the calling of further
1419
     *         plugins.
1420
     */
1421
    default boolean sqlMapSelectByPrimaryKeyElementGenerated(XmlElement element,
1422
            IntrospectedTable introspectedTable) {
1423
        return true;
1✔
1424
    }
1425

1426
    /**
1427
     * This method is called when the selectByExample element is generated.
1428
     *
1429
     * @param element
1430
     *            the generated &lt;select&gt; element
1431
     * @param introspectedTable
1432
     *            The class containing information about the table as
1433
     *            introspected from the database
1434
     * @return true if the element should be generated, false if the generated
1435
     *         element should be ignored. In the case of multiple plugins, the
1436
     *         first plugin returning false will disable the calling of further
1437
     *         plugins.
1438
     */
1439
    default boolean sqlMapSelectByExampleWithoutBLOBsElementGenerated(
1440
            XmlElement element, IntrospectedTable introspectedTable) {
1441
        return true;
1✔
1442
    }
1443

1444
    /**
1445
     * This method is called when the selectByExampleWithBLOBs element is
1446
     * generated.
1447
     *
1448
     * @param element
1449
     *            the generated &lt;select&gt; element
1450
     * @param introspectedTable
1451
     *            The class containing information about the table as
1452
     *            introspected from the database
1453
     * @return true if the element should be generated, false if the generated
1454
     *         element should be ignored. In the case of multiple plugins, the
1455
     *         first plugin returning false will disable the calling of further
1456
     *         plugins.
1457
     */
1458
    default boolean sqlMapSelectByExampleWithBLOBsElementGenerated(XmlElement element,
1459
            IntrospectedTable introspectedTable) {
1460
        return true;
1✔
1461
    }
1462

1463
    /**
1464
     * This method is called when the updateByExampleSelective element is
1465
     * generated.
1466
     *
1467
     * @param element
1468
     *            the generated &lt;update&gt; element
1469
     * @param introspectedTable
1470
     *            The class containing information about the table as
1471
     *            introspected from the database
1472
     * @return true if the element should be generated, false if the generated
1473
     *         element should be ignored. In the case of multiple plugins, the
1474
     *         first plugin returning false will disable the calling of further
1475
     *         plugins.
1476
     */
1477
    default boolean sqlMapUpdateByExampleSelectiveElementGenerated(XmlElement element,
1478
            IntrospectedTable introspectedTable) {
1479
        return true;
1✔
1480
    }
1481

1482
    /**
1483
     * This method is called when the updateByExampleWithBLOBs element is
1484
     * generated.
1485
     *
1486
     * @param element
1487
     *            the generated &lt;update&gt; element
1488
     * @param introspectedTable
1489
     *            The class containing information about the table as
1490
     *            introspected from the database
1491
     * @return true if the element should be generated, false if the generated
1492
     *         element should be ignored. In the case of multiple plugins, the
1493
     *         first plugin returning false will disable the calling of further
1494
     *         plugins.
1495
     */
1496
    default boolean sqlMapUpdateByExampleWithBLOBsElementGenerated(XmlElement element,
1497
            IntrospectedTable introspectedTable) {
1498
        return true;
1✔
1499
    }
1500

1501
    /**
1502
     * This method is called when the updateByExampleWithourBLOBs element is
1503
     * generated.
1504
     *
1505
     * @param element
1506
     *            the generated &lt;update&gt; element
1507
     * @param introspectedTable
1508
     *            The class containing information about the table as
1509
     *            introspected from the database
1510
     * @return true if the element should be generated, false if the generated
1511
     *         element should be ignored. In the case of multiple plugins, the
1512
     *         first plugin returning false will disable the calling of further
1513
     *         plugins.
1514
     */
1515
    default boolean sqlMapUpdateByExampleWithoutBLOBsElementGenerated(
1516
            XmlElement element, IntrospectedTable introspectedTable) {
1517
        return true;
1✔
1518
    }
1519

1520
    /**
1521
     * This method is called when the updateByPrimaryKeySelective element is
1522
     * generated.
1523
     *
1524
     * @param element
1525
     *            the generated &lt;update&gt; element
1526
     * @param introspectedTable
1527
     *            The class containing information about the table as
1528
     *            introspected from the database
1529
     * @return true if the element should be generated, false if the generated
1530
     *         element should be ignored. In the case of multiple plugins, the
1531
     *         first plugin returning false will disable the calling of further
1532
     *         plugins.
1533
     */
1534
    default boolean sqlMapUpdateByPrimaryKeySelectiveElementGenerated(
1535
            XmlElement element, IntrospectedTable introspectedTable) {
1536
        return true;
1✔
1537
    }
1538

1539
    /**
1540
     * This method is called when the updateByPrimaryKeyWithBLOBs element is
1541
     * generated.
1542
     *
1543
     * @param element
1544
     *            the generated &lt;update&gt; element
1545
     * @param introspectedTable
1546
     *            The class containing information about the table as
1547
     *            introspected from the database
1548
     * @return true if the element should be generated, false if the generated
1549
     *         element should be ignored. In the case of multiple plugins, the
1550
     *         first plugin returning false will disable the calling of further
1551
     *         plugins.
1552
     */
1553
    default boolean sqlMapUpdateByPrimaryKeyWithBLOBsElementGenerated(
1554
            XmlElement element, IntrospectedTable introspectedTable) {
1555
        return true;
1✔
1556
    }
1557

1558
    /**
1559
     * This method is called when the updateByPrimaryKeyWithoutBLOBs element is
1560
     * generated.
1561
     *
1562
     * @param element
1563
     *            the generated &lt;update&gt; element
1564
     * @param introspectedTable
1565
     *            The class containing information about the table as
1566
     *            introspected from the database
1567
     * @return true if the element should be generated, false if the generated
1568
     *         element should be ignored. In the case of multiple plugins, the
1569
     *         first plugin returning false will disable the calling of further
1570
     *         plugins.
1571
     */
1572
    default boolean sqlMapUpdateByPrimaryKeyWithoutBLOBsElementGenerated(
1573
            XmlElement element, IntrospectedTable introspectedTable) {
1574
        return true;
1✔
1575
    }
1576

1577
    /**
1578
     * This method is called when the SQL provider has been generated.
1579
     * Implement this method to add additional methods or fields to a generated
1580
     * SQL provider.
1581
     *
1582
     * @param topLevelClass
1583
     *            the generated provider
1584
     * @param introspectedTable
1585
     *            The class containing information about the table as
1586
     *            introspected from the database
1587
     * @return true if the provider should be generated, false if the generated
1588
     *         provider should be ignored. In the case of multiple plugins, the
1589
     *         first plugin returning false will disable the calling of further
1590
     *         plugins.
1591
     */
1592
    default boolean providerGenerated(TopLevelClass topLevelClass,
1593
            IntrospectedTable introspectedTable) {
1594
        return true;
1✔
1595
    }
1596

1597
    /**
1598
     * This method is called when the applyWhere method has
1599
     * been generated in the SQL provider.
1600
     *
1601
     * @param method
1602
     *            the generated applyWhere method
1603
     * @param topLevelClass
1604
     *            the partially generated provider class
1605
     *            You can add additional imported classes to the class
1606
     *            if necessary.
1607
     * @param introspectedTable
1608
     *            The class containing information about the table as
1609
     *            introspected from the database
1610
     * @return true if the method should be generated, false if the generated
1611
     *         method should be ignored. In the case of multiple plugins, the
1612
     *         first plugin returning false will disable the calling of further
1613
     *         plugins.
1614
     */
1615
    default boolean providerApplyWhereMethodGenerated(Method method,
1616
            TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1617
        return true;
1✔
1618
    }
1619

1620
    /**
1621
     * This method is called when the countByExample method has
1622
     * been generated in the SQL provider.
1623
     *
1624
     * @param method
1625
     *            the generated countByExample method
1626
     * @param topLevelClass
1627
     *            the partially generated provider class
1628
     *            You can add additional imported classes to the class
1629
     *            if necessary.
1630
     * @param introspectedTable
1631
     *            The class containing information about the table as
1632
     *            introspected from the database
1633
     * @return true if the method should be generated, false if the generated
1634
     *         method should be ignored. In the case of multiple plugins, the
1635
     *         first plugin returning false will disable the calling of further
1636
     *         plugins.
1637
     */
1638
    default boolean providerCountByExampleMethodGenerated(Method method,
1639
            TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1640
        return true;
1✔
1641
    }
1642

1643
    /**
1644
     * This method is called when the deleteByExample method has
1645
     * been generated in the SQL provider.
1646
     *
1647
     * @param method
1648
     *            the generated deleteByExample method
1649
     * @param topLevelClass
1650
     *            the partially generated provider class
1651
     *            You can add additional imported classes to the class
1652
     *            if necessary.
1653
     * @param introspectedTable
1654
     *            The class containing information about the table as
1655
     *            introspected from the database
1656
     * @return true if the method should be generated, false if the generated
1657
     *         method should be ignored. In the case of multiple plugins, the
1658
     *         first plugin returning false will disable the calling of further
1659
     *         plugins.
1660
     */
1661
    default boolean providerDeleteByExampleMethodGenerated(Method method,
1662
            TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1663
        return true;
1✔
1664
    }
1665

1666
    /**
1667
     * This method is called when the insertSelective method has
1668
     * been generated in the SQL provider.
1669
     *
1670
     * @param method
1671
     *            the generated insertSelective method
1672
     * @param topLevelClass
1673
     *            the partially generated provider class
1674
     *            You can add additional imported classes to the class
1675
     *            if necessary.
1676
     * @param introspectedTable
1677
     *            The class containing information about the table as
1678
     *            introspected from the database
1679
     * @return true if the method should be generated, false if the generated
1680
     *         method should be ignored. In the case of multiple plugins, the
1681
     *         first plugin returning false will disable the calling of further
1682
     *         plugins.
1683
     */
1684
    default boolean providerInsertSelectiveMethodGenerated(Method method,
1685
            TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1686
        return true;
1✔
1687
    }
1688

1689
    /**
1690
     * This method is called when the selectByExampleWithBLOBs method has
1691
     * been generated in the SQL provider.
1692
     *
1693
     * @param method
1694
     *            the generated selectByExampleWithBLOBs method
1695
     * @param topLevelClass
1696
     *            the partially generated provider class
1697
     *            You can add additional imported classes to the class
1698
     *            if necessary.
1699
     * @param introspectedTable
1700
     *            The class containing information about the table as
1701
     *            introspected from the database
1702
     * @return true if the method should be generated, false if the generated
1703
     *         method should be ignored. In the case of multiple plugins, the
1704
     *         first plugin returning false will disable the calling of further
1705
     *         plugins.
1706
     */
1707
    default boolean providerSelectByExampleWithBLOBsMethodGenerated(Method method,
1708
            TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1709
        return true;
1✔
1710
    }
1711

1712
    /**
1713
     * This method is called when the selectByExampleWithoutBLOBs method has
1714
     * been generated in the SQL provider.
1715
     *
1716
     * @param method
1717
     *            the generated selectByExampleWithoutBLOBs method
1718
     * @param topLevelClass
1719
     *            the partially generated provider class
1720
     *            You can add additional imported classes to the class
1721
     *            if necessary.
1722
     * @param introspectedTable
1723
     *            The class containing information about the table as
1724
     *            introspected from the database
1725
     * @return true if the method should be generated, false if the generated
1726
     *         method should be ignored. In the case of multiple plugins, the
1727
     *         first plugin returning false will disable the calling of further
1728
     *         plugins.
1729
     */
1730
    default boolean providerSelectByExampleWithoutBLOBsMethodGenerated(Method method,
1731
            TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1732
        return true;
1✔
1733
    }
1734

1735
    /**
1736
     * This method is called when the updateByExampleSelective method has
1737
     * been generated in the SQL provider.
1738
     *
1739
     * @param method
1740
     *            the generated updateByExampleSelective method
1741
     * @param topLevelClass
1742
     *            the partially generated provider class
1743
     *            You can add additional imported classes to the class
1744
     *            if necessary.
1745
     * @param introspectedTable
1746
     *            The class containing information about the table as
1747
     *            introspected from the database
1748
     * @return true if the method should be generated, false if the generated
1749
     *         method should be ignored. In the case of multiple plugins, the
1750
     *         first plugin returning false will disable the calling of further
1751
     *         plugins.
1752
     */
1753
    default boolean providerUpdateByExampleSelectiveMethodGenerated(Method method,
1754
            TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1755
        return true;
1✔
1756
    }
1757

1758
    /**
1759
     * This method is called when the updateByExampleWithBLOBs method has
1760
     * been generated in the SQL provider.
1761
     *
1762
     * @param method
1763
     *            the generated updateByExampleWithBLOBs method
1764
     * @param topLevelClass
1765
     *            the partially generated provider class
1766
     *            You can add additional imported classes to the class
1767
     *            if necessary.
1768
     * @param introspectedTable
1769
     *            The class containing information about the table as
1770
     *            introspected from the database
1771
     * @return true if the method should be generated, false if the generated
1772
     *         method should be ignored. In the case of multiple plugins, the
1773
     *         first plugin returning false will disable the calling of further
1774
     *         plugins.
1775
     */
1776
    default boolean providerUpdateByExampleWithBLOBsMethodGenerated(Method method,
1777
            TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1778
        return true;
1✔
1779
    }
1780

1781
    /**
1782
     * This method is called when the updateByExampleWithoutBLOBs method has
1783
     * been generated in the SQL provider.
1784
     *
1785
     * @param method
1786
     *            the generated updateByExampleWithoutBLOBs method
1787
     * @param topLevelClass
1788
     *            the partially generated provider class
1789
     *            You can add additional imported classes to the class
1790
     *            if necessary.
1791
     * @param introspectedTable
1792
     *            The class containing information about the table as
1793
     *            introspected from the database
1794
     * @return true if the method should be generated, false if the generated
1795
     *         method should be ignored. In the case of multiple plugins, the
1796
     *         first plugin returning false will disable the calling of further
1797
     *         plugins.
1798
     */
1799
    default boolean providerUpdateByExampleWithoutBLOBsMethodGenerated(Method method,
1800
            TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1801
        return true;
1✔
1802
    }
1803

1804
    /**
1805
     * This method is called when the updateByPrimaryKeySelective method has
1806
     * been generated in the SQL provider.
1807
     *
1808
     * @param method
1809
     *            the generated updateByPrimaryKeySelective method
1810
     * @param topLevelClass
1811
     *            the partially generated provider class
1812
     *            You can add additional imported classes to the class
1813
     *            if necessary.
1814
     * @param introspectedTable
1815
     *            The class containing information about the table as
1816
     *            introspected from the database
1817
     * @return true if the method should be generated, false if the generated
1818
     *         method should be ignored. In the case of multiple plugins, the
1819
     *         first plugin returning false will disable the calling of further
1820
     *         plugins.
1821
     */
1822
    default boolean providerUpdateByPrimaryKeySelectiveMethodGenerated(Method method,
1823
            TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
1824
        return true;
1✔
1825
    }
1826

1827
    /**
1828
     * This method is called when the MyBatis Dynamic SQL support class has
1829
     * been generated in the MyBatis Dynamic SQL runtime.
1830
     *
1831
     * @param supportClass
1832
     *            the generated MyBatis Dynamic SQL support class
1833
     *            You can add additional items to the generated class
1834
     *            if necessary.
1835
     * @param introspectedTable
1836
     *            The class containing information about the table as
1837
     *            introspected from the database
1838
     * @return true if the class should be generated, false if the generated
1839
     *         class should be ignored. In the case of multiple plugins, the
1840
     *         first plugin returning false will disable the calling of further
1841
     *         plugins.
1842
     */
1843
    default boolean dynamicSqlSupportGenerated(TopLevelClass supportClass, IntrospectedTable introspectedTable) {
1844
        return true;
1✔
1845
    }
1846

1847
    /**
1848
     * This method is called when the MyBatis Dynamic SQL support object has been generated. The format of the class
1849
     * is an outer object with an inner class. The inner class contains the table and column definitions. The outer
1850
     * (singleton) object contains a reference to an instance of the inner class, and shortcut properties that
1851
     * reference the columns of that instance.
1852
     *
1853
     * @param kotlinFile the generated Kotlin file containing the outer object and inner class
1854
     * @param outerSupportObject a reference to the outer object in the file
1855
     * @param innerSupportClass a reference to the inner class
1856
     * @param introspectedTable the class containing information about the table as
1857
     *                          introspected from the database
1858
     * @return true if the generated file should be kept
1859
     */
1860
    default boolean dynamicSqlSupportGenerated(KotlinFile kotlinFile, KotlinType outerSupportObject,
1861
                                               KotlinType innerSupportClass, IntrospectedTable introspectedTable) {
1862
        return true;
1✔
1863
    }
1864

1865
    default boolean mapperGenerated(KotlinFile mapperFile, KotlinType mapper, IntrospectedTable introspectedTable) {
1866
        return true;
1✔
1867
    }
1868

1869
    default boolean kotlinDataClassGenerated(KotlinFile kotlinFile, KotlinType dataClass,
1870
            IntrospectedTable introspectedTable) {
1871
        return true;
1✔
1872
    }
1873

1874
    default boolean clientColumnListPropertyGenerated(KotlinProperty kotlinProperty, KotlinFile kotlinFile,
1875
            IntrospectedTable introspectedTable) {
1876
        return true;
1✔
1877
    }
1878

1879
    default boolean clientInsertMultipleVarargMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
1880
            IntrospectedTable introspectedTable) {
1881
        return true;
1✔
1882
    }
1883

1884
    default boolean clientUpdateByPrimaryKeyMethodGenerated(KotlinFunction kotlinFunction, KotlinFile kotlinFile,
1885
            IntrospectedTable introspectedTable) {
1886
        return true;
1✔
1887
    }
1888

1889
    /**
1890
     * The motivation for adding this method can be found in
1891
     * <a href="https://github.com/mybatis/generator/issues/1116">https://github.com/mybatis/generator/issues/1116</a>
1892
     *
1893
     * <p>This method is called when the updateByPrimaryKey method
1894
     * has been generated in the dynamic SQL runtime client interface.
1895
     *
1896
     * @param method
1897
     *            the generated updateByPrimaryKey method
1898
     * @param interfaze
1899
     *            the partially implemented client interface. You can add
1900
     *            additional imported classes to the interface if
1901
     *            necessary.
1902
     * @param introspectedTable
1903
     *            The class containing information about the table as
1904
     *            introspected from the database
1905
     * @return true if the method should be generated, false if the generated
1906
     *         method should be ignored. In the case of multiple plugins, the
1907
     *         first plugin returning false will disable the calling of further
1908
     *         plugins.
1909
     */
1910
    default boolean clientUpdateByPrimaryKeyMethodGenerated(Method method,
1911
            Interface interfaze, IntrospectedTable introspectedTable) {
1912
        return clientUpdateByPrimaryKeyWithBLOBsMethodGenerated(method, interfaze, introspectedTable);
1✔
1913
    }
1914

1915
    /**
1916
     * If false, the table will be skipped in code generation.
1917
     *
1918
     * @param introspectedTable the current table
1919
     * @return true if code should be generated for this table, else false
1920
     */
1921
    default boolean shouldGenerate(IntrospectedTable introspectedTable) {
1922
        return true;
1✔
1923
    }
1924
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc