Skip to content

Commit a5c53eb

Browse files
committed
Remove some useles abstraction in the count functions
1 parent 9a18d5f commit a5c53eb

File tree

4 files changed

+22
-17
lines changed

4 files changed

+22
-17
lines changed

src/main/java/org/mybatis/dynamic/sql/select/aggregate/AbstractCount.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,13 @@
2626
*
2727
* @param <T> the subtype of this class
2828
*/
29-
public abstract class AbstractCount<T extends AbstractCount<T>> implements BindableColumn<Long> {
29+
public abstract class AbstractCount implements BindableColumn<Long> {
3030
private final String alias;
3131

32+
protected AbstractCount() {
33+
this(null);
34+
}
35+
3236
protected AbstractCount(String alias) {
3337
this.alias = alias;
3438
}
@@ -37,11 +41,4 @@ protected AbstractCount(String alias) {
3741
public Optional<String> alias() {
3842
return Optional.ofNullable(alias);
3943
}
40-
41-
@Override
42-
public T as(String alias) {
43-
return copyWithAlias(alias);
44-
}
45-
46-
protected abstract T copyWithAlias(String alias);
4744
}

src/main/java/org/mybatis/dynamic/sql/select/aggregate/Count.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,14 @@
2020
import org.mybatis.dynamic.sql.BasicColumn;
2121
import org.mybatis.dynamic.sql.render.TableAliasCalculator;
2222

23-
public class Count extends AbstractCount<Count> {
23+
public class Count extends AbstractCount {
2424

2525
private final BasicColumn column;
2626

27+
private Count(BasicColumn column) {
28+
this.column = Objects.requireNonNull(column);
29+
}
30+
2731
private Count(BasicColumn column, String alias) {
2832
super(alias);
2933
this.column = Objects.requireNonNull(column);
@@ -35,11 +39,11 @@ public String renderWithTableAlias(TableAliasCalculator tableAliasCalculator) {
3539
}
3640

3741
@Override
38-
protected Count copyWithAlias(String alias) {
42+
public Count as(String alias) {
3943
return new Count(column, alias);
4044
}
4145

4246
public static Count of(BasicColumn column) {
43-
return new Count(column, null);
47+
return new Count(column);
4448
}
4549
}

src/main/java/org/mybatis/dynamic/sql/select/aggregate/CountAll.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,10 +17,10 @@
1717

1818
import org.mybatis.dynamic.sql.render.TableAliasCalculator;
1919

20-
public class CountAll extends AbstractCount<CountAll> {
20+
public class CountAll extends AbstractCount {
2121

2222
public CountAll() {
23-
super(null);
23+
super();
2424
}
2525

2626
private CountAll(String alias) {
@@ -33,7 +33,7 @@ public String renderWithTableAlias(TableAliasCalculator tableAliasCalculator) {
3333
}
3434

3535
@Override
36-
protected CountAll copyWithAlias(String alias) {
36+
public CountAll as(String alias) {
3737
return new CountAll(alias);
3838
}
3939
}

src/main/java/org/mybatis/dynamic/sql/select/aggregate/CountDistinct.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,14 @@
2020
import org.mybatis.dynamic.sql.BasicColumn;
2121
import org.mybatis.dynamic.sql.render.TableAliasCalculator;
2222

23-
public class CountDistinct extends AbstractCount<CountDistinct> {
23+
public class CountDistinct extends AbstractCount {
2424

2525
private final BasicColumn column;
2626

27+
private CountDistinct(BasicColumn column) {
28+
this.column = Objects.requireNonNull(column);
29+
}
30+
2731
private CountDistinct(BasicColumn column, String alias) {
2832
super(alias);
2933
this.column = Objects.requireNonNull(column);
@@ -35,11 +39,11 @@ public String renderWithTableAlias(TableAliasCalculator tableAliasCalculator) {
3539
}
3640

3741
@Override
38-
public CountDistinct copyWithAlias(String alias) {
42+
public CountDistinct as(String alias) {
3943
return new CountDistinct(column, alias);
4044
}
4145

4246
public static CountDistinct of(BasicColumn column) {
43-
return new CountDistinct(column, null);
47+
return new CountDistinct(column);
4448
}
4549
}

0 commit comments

Comments
 (0)