1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 package org.apache.shardingsphere.sql.parser.sql.common.segment.generic.table;
19
20 import lombok.Getter;
21 import lombok.RequiredArgsConstructor;
22 import lombok.Setter;
23 import org.apache.shardingsphere.sql.parser.sql.common.segment.dml.expr.ExpressionSegment;
24 import org.apache.shardingsphere.sql.parser.sql.common.segment.generic.AliasSegment;
25 import org.apache.shardingsphere.sql.parser.sql.common.value.identifier.IdentifierValue;
26
27 import java.util.Optional;
28
29
30
31
32 @RequiredArgsConstructor
33 @Getter
34 @Setter
35 public final class FunctionTableSegment implements TableSegment {
36
37 private final int startIndex;
38
39 private final int stopIndex;
40
41 private final ExpressionSegment tableFunction;
42
43 @Setter
44 private AliasSegment alias;
45
46 public Optional<String> getAliasName() {
47 return null == alias ? Optional.empty() : Optional.ofNullable(alias.getIdentifier().getValue());
48 }
49
50 @Override
51 public Optional<IdentifierValue> getAlias() {
52 return Optional.ofNullable(alias).map(AliasSegment::getIdentifier);
53 }
54
55
56
57
58
59
60 public Optional<AliasSegment> getAliasSegment() {
61 return Optional.ofNullable(alias);
62 }
63 }