2525import org .mybatis .dynamic .sql .SqlCriterion ;
2626import org .mybatis .dynamic .sql .VisitableCondition ;
2727
28- public abstract class AbstractHavingStarter <F extends AbstractHavingFinisher <?>> {
28+ public interface AbstractHavingStarter <F extends AbstractHavingFinisher <?>> {
2929
30- public <T > F having (BindableColumn <T > column , VisitableCondition <T > condition ,
30+ default <T > F having (BindableColumn <T > column , VisitableCondition <T > condition ,
3131 AndOrCriteriaGroup ... subCriteria ) {
3232 return having (column , condition , Arrays .asList (subCriteria ));
3333 }
3434
35- public <T > F having (BindableColumn <T > column , VisitableCondition <T > condition ,
35+ default <T > F having (BindableColumn <T > column , VisitableCondition <T > condition ,
3636 List <AndOrCriteriaGroup > subCriteria ) {
3737 SqlCriterion sqlCriterion = ColumnAndConditionCriterion .withColumn (column )
3838 .withCondition (condition )
@@ -42,11 +42,11 @@ public <T> F having(BindableColumn<T> column, VisitableCondition<T> condition,
4242 return initialize (sqlCriterion );
4343 }
4444
45- public F having (SqlCriterion initialCriterion , AndOrCriteriaGroup ... subCriteria ) {
45+ default F having (SqlCriterion initialCriterion , AndOrCriteriaGroup ... subCriteria ) {
4646 return having (initialCriterion , Arrays .asList (subCriteria ));
4747 }
4848
49- public F having (SqlCriterion initialCriterion , List <AndOrCriteriaGroup > subCriteria ) {
49+ default F having (SqlCriterion initialCriterion , List <AndOrCriteriaGroup > subCriteria ) {
5050 SqlCriterion sqlCriterion = new CriteriaGroup .Builder ()
5151 .withInitialCriterion (initialCriterion )
5252 .withSubCriteria (subCriteria )
@@ -55,9 +55,9 @@ public F having(SqlCriterion initialCriterion, List<AndOrCriteriaGroup> subCrite
5555 return initialize (sqlCriterion );
5656 }
5757
58- protected abstract F having ();
58+ F having ();
5959
60- public F applyHaving (HavingApplier havingApplier ) {
60+ default F applyHaving (HavingApplier havingApplier ) {
6161 F finisher = having ();
6262 havingApplier .accept (finisher );
6363 return finisher ;
0 commit comments