1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.dynamic.sql;
17
18 import java.sql.JDBCType;
19 import java.util.Objects;
20 import java.util.Optional;
21
22 public class SqlTable implements TableExpression {
23
24 protected String tableName;
25
26 protected SqlTable(String tableName) {
27 this.tableName = Objects.requireNonNull(tableName);
28 }
29
30 public String tableName() {
31 return tableName;
32 }
33
34 public BasicColumn allColumns() {
35 return SqlColumn.of("*", this);
36 }
37
38 public <T> SqlColumn<T> column(String name) {
39 return SqlColumn.of(name, this);
40 }
41
42 public <T> SqlColumn<T> column(String name, JDBCType jdbcType) {
43 return SqlColumn.of(name, this, jdbcType);
44 }
45
46 public <T> SqlColumn<T> column(String name, JDBCType jdbcType, String typeHandler) {
47 SqlColumn<T> column = SqlColumn.of(name, this, jdbcType);
48 return column.withTypeHandler(typeHandler);
49 }
50
51 @Override
52 public <R> R accept(TableExpressionVisitor<R> visitor) {
53 return visitor.visit(this);
54 }
55
56 public Optional<String> tableAlias() {
57 return Optional.empty();
58 }
59
60 public static SqlTable of(String name) {
61 return new SqlTable(name);
62 }
63 }