Skip to content

Commit e331b60

Browse files
committed
Copy/paste reduction
1 parent 38710e1 commit e331b60

File tree

2 files changed

+8
-22
lines changed

2 files changed

+8
-22
lines changed

src/main/java/org/mybatis/dynamic/sql/CriteriaGroup.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
public class CriteriaGroup extends SqlCriterion {
2929
private final SqlCriterion initialCriterion;
3030

31-
private CriteriaGroup(Builder builder) {
31+
protected CriteriaGroup(AbstractGroupBuilder<?> builder) {
3232
super(builder);
3333
initialCriterion = Objects.requireNonNull(builder.initialCriterion);
3434
}
@@ -42,14 +42,16 @@ public <R> R accept(SqlCriterionVisitor<R> visitor) {
4242
return visitor.visit(this);
4343
}
4444

45-
public static class Builder extends AbstractBuilder<Builder> {
45+
public abstract static class AbstractGroupBuilder<T extends AbstractGroupBuilder<T>> extends AbstractBuilder<T> {
4646
private SqlCriterion initialCriterion;
4747

48-
public Builder withInitialCriterion(SqlCriterion initialCriterion) {
48+
public T withInitialCriterion(SqlCriterion initialCriterion) {
4949
this.initialCriterion = initialCriterion;
50-
return this;
50+
return getThis();
5151
}
52+
}
5253

54+
public static class Builder extends AbstractGroupBuilder<Builder> {
5355
public CriteriaGroup build() {
5456
return new CriteriaGroup(this);
5557
}

src/main/java/org/mybatis/dynamic/sql/NotCriterion.java

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -15,39 +15,23 @@
1515
*/
1616
package org.mybatis.dynamic.sql;
1717

18-
import java.util.Objects;
19-
2018
/**
2119
* This class represents a criteria group with a NOT.
2220
*
2321
* @author Jeff Butler
2422
* @since 1.4.0
2523
*/
26-
public class NotCriterion extends SqlCriterion {
27-
private final SqlCriterion initialCriterion;
28-
24+
public class NotCriterion extends CriteriaGroup {
2925
private NotCriterion(Builder builder) {
3026
super(builder);
31-
initialCriterion = Objects.requireNonNull(builder.initialCriterion);
32-
}
33-
34-
public SqlCriterion initialCriterion() {
35-
return initialCriterion;
3627
}
3728

3829
@Override
3930
public <R> R accept(SqlCriterionVisitor<R> visitor) {
4031
return visitor.visit(this);
4132
}
4233

43-
public static class Builder extends AbstractBuilder<Builder> {
44-
private SqlCriterion initialCriterion;
45-
46-
public Builder withInitialCriterion(SqlCriterion initialCriterion) {
47-
this.initialCriterion = initialCriterion;
48-
return this;
49-
}
50-
34+
public static class Builder extends AbstractGroupBuilder<Builder> {
5135
public NotCriterion build() {
5236
return new NotCriterion(this);
5337
}

0 commit comments

Comments
 (0)