1
2
3
4
5
6 package dev.metaschema.core.metapath.cst.path;
7
8 import java.util.List;
9
10 import dev.metaschema.core.metapath.IExpression;
11 import dev.metaschema.core.metapath.cst.ExpressionUtils;
12 import dev.metaschema.core.metapath.item.node.INodeItem;
13 import edu.umd.cs.findbugs.annotations.NonNull;
14
15
16
17
18
19
20 public abstract class AbstractRelativePathExpression
21 extends AbstractSearchPathExpression {
22 @NonNull
23 private final IExpression left;
24 @NonNull
25 private final IExpression right;
26
27
28
29
30
31
32
33
34
35
36
37 @SuppressWarnings("null")
38 public AbstractRelativePathExpression(
39 @NonNull String text,
40 @NonNull IExpression left,
41 @NonNull IExpression right) {
42 super(text, ExpressionUtils.analyzeStaticResultType(INodeItem.class, List.of(left, right)));
43 this.left = left;
44 this.right = right;
45 }
46
47
48
49
50
51
52 @NonNull
53 public IExpression getLeft() {
54 return left;
55 }
56
57
58
59
60
61
62 @NonNull
63 public IExpression getRight() {
64 return right;
65 }
66
67 @SuppressWarnings("null")
68 @Override
69 public List<? extends IExpression> getChildren() {
70 return List.of(left, right);
71 }
72 }