25
25
import org .mybatis .dynamic .sql .SqlCriterion ;
26
26
import org .mybatis .dynamic .sql .VisitableCondition ;
27
27
28
- public abstract class AbstractHavingStarter <F extends AbstractHavingFinisher <?>> {
28
+ public interface AbstractHavingStarter <F extends AbstractHavingFinisher <?>> {
29
29
30
- public <T > F having (BindableColumn <T > column , VisitableCondition <T > condition ,
30
+ default <T > F having (BindableColumn <T > column , VisitableCondition <T > condition ,
31
31
AndOrCriteriaGroup ... subCriteria ) {
32
32
return having (column , condition , Arrays .asList (subCriteria ));
33
33
}
34
34
35
- public <T > F having (BindableColumn <T > column , VisitableCondition <T > condition ,
35
+ default <T > F having (BindableColumn <T > column , VisitableCondition <T > condition ,
36
36
List <AndOrCriteriaGroup > subCriteria ) {
37
37
SqlCriterion sqlCriterion = ColumnAndConditionCriterion .withColumn (column )
38
38
.withCondition (condition )
@@ -42,11 +42,11 @@ public <T> F having(BindableColumn<T> column, VisitableCondition<T> condition,
42
42
return initialize (sqlCriterion );
43
43
}
44
44
45
- public F having (SqlCriterion initialCriterion , AndOrCriteriaGroup ... subCriteria ) {
45
+ default F having (SqlCriterion initialCriterion , AndOrCriteriaGroup ... subCriteria ) {
46
46
return having (initialCriterion , Arrays .asList (subCriteria ));
47
47
}
48
48
49
- public F having (SqlCriterion initialCriterion , List <AndOrCriteriaGroup > subCriteria ) {
49
+ default F having (SqlCriterion initialCriterion , List <AndOrCriteriaGroup > subCriteria ) {
50
50
SqlCriterion sqlCriterion = new CriteriaGroup .Builder ()
51
51
.withInitialCriterion (initialCriterion )
52
52
.withSubCriteria (subCriteria )
@@ -55,9 +55,9 @@ public F having(SqlCriterion initialCriterion, List<AndOrCriteriaGroup> subCrite
55
55
return initialize (sqlCriterion );
56
56
}
57
57
58
- protected abstract F having ();
58
+ F having ();
59
59
60
- public F applyHaving (HavingApplier havingApplier ) {
60
+ default F applyHaving (HavingApplier havingApplier ) {
61
61
F finisher = having ();
62
62
havingApplier .accept (finisher );
63
63
return finisher ;
0 commit comments