MCPcopy Create free account
hub / github.com/crate/crate / AliasSymbol

Class AliasSymbol

server/src/main/java/io/crate/expression/symbol/AliasSymbol.java:36–137  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

34import io.crate.types.DataType;
35
36public final class AliasSymbol implements Symbol {
37
38 private static final long SHALLOW_SIZE = RamUsageEstimator.shallowSizeOfInstance(AliasSymbol.class);
39
40 private final String alias;
41 private final Symbol symbol;
42
43 public AliasSymbol(String alias, Symbol symbol) {
44 this.alias = alias;
45 this.symbol = symbol;
46 }
47
48 public AliasSymbol(StreamInput in) throws IOException {
49 alias = in.readString();
50 symbol = Symbol.fromStream(in);
51 }
52
53 public Symbol symbol() {
54 return symbol;
55 }
56
57 public String alias() {
58 return alias;
59 }
60
61 @Override
62 public boolean isDeterministic() {
63 return symbol.isDeterministic();
64 }
65
66 @Override
67 public boolean any(Predicate<? super Symbol> predicate) {
68 return predicate.test(this) || symbol.any(predicate);
69 }
70
71 @Override
72 public ColumnIdent toColumn() {
73 return ColumnIdent.of(alias);
74 }
75
76 @Override
77 public void writeTo(StreamOutput out) throws IOException {
78 out.writeString(alias);
79 Symbol.toStream(symbol, out);
80 }
81
82 @Override
83 public SymbolType symbolType() {
84 return SymbolType.ALIAS;
85 }
86
87 @Override
88 public <C, R> R accept(SymbolVisitor<C, R> visitor, C context) {
89 return visitor.visitAlias(this, context);
90 }
91
92 @Override
93 public DataType<?> valueType() {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected