1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.tikv.common.expression;
19
20 import java.io.Serializable;
21 import java.util.List;
22 import org.tikv.common.types.DataType;
23
24 public abstract class Expression implements Serializable {
25 protected DataType dataType;
26 protected boolean resolved;
27
28 public Expression(DataType dataType) {
29 this.dataType = dataType;
30 this.resolved = true;
31 }
32
33 public Expression() {
34 this.resolved = false;
35 }
36
37 public abstract List<Expression> getChildren();
38
39 public abstract <R, C> R accept(Visitor<R, C> visitor, C context);
40
41 public boolean isResolved() {
42 return getChildren().stream().allMatch(Expression::isResolved);
43 }
44
45 public DataType getDataType() {
46 return dataType;
47 }
48
49 public void setDataType(DataType dataType) {
50 this.dataType = dataType;
51 }
52 }