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 @RequiredArgsConstructor
30 @Getter
31 public final class CollectionTableSegment implements TableSegment {
32
33 private final ExpressionSegment expressionSegment;
34
35 @Setter
36 private AliasSegment alias;
37
38 @Override
39 public Optional<String> getAliasName() {
40 return null == alias ? Optional.empty() : Optional.ofNullable(alias.getIdentifier().getValue());
41 }
42
43 @Override
44 public Optional<IdentifierValue> getAlias() {
45 return Optional.ofNullable(alias).map(AliasSegment::getIdentifier);
46 }
47
48
49
50
51
52
53 public Optional<AliasSegment> getAliasSegment() {
54 return Optional.ofNullable(alias);
55 }
56
57 @Override
58 public int getStartIndex() {
59 return expressionSegment.getStartIndex();
60 }
61
62 @Override
63 public int getStopIndex() {
64 return expressionSegment.getStopIndex();
65 }
66 }