1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.dynamic.sql.select.aggregate;
17
18 import java.util.Objects;
19
20 import org.mybatis.dynamic.sql.BasicColumn;
21 import org.mybatis.dynamic.sql.render.RenderingContext;
22 import org.mybatis.dynamic.sql.util.FragmentAndParameters;
23
24 public class Count extends AbstractCount {
25
26 private final BasicColumn column;
27
28 private Count(BasicColumn column) {
29 this.column = Objects.requireNonNull(column);
30 }
31
32 private Count(BasicColumn column, String alias) {
33 super(alias);
34 this.column = Objects.requireNonNull(column);
35 }
36
37 @Override
38 public FragmentAndParameters render(RenderingContext renderingContext) {
39 return column.render(renderingContext).mapFragment(s -> "count(" + s + ")");
40 }
41
42 @Override
43 public Count as(String alias) {
44 return new Count(column, alias);
45 }
46
47 public static Count of(BasicColumn column) {
48 return new Count(column);
49 }
50 }