1
2
3
4
5
6 package dev.metaschema.core.metapath.cst.path;
7
8 import dev.metaschema.core.metapath.DynamicContext;
9 import dev.metaschema.core.metapath.IExpression;
10 import dev.metaschema.core.metapath.cst.IExpressionVisitor;
11 import dev.metaschema.core.metapath.item.ISequence;
12 import dev.metaschema.core.metapath.item.ItemUtils;
13 import edu.umd.cs.findbugs.annotations.NonNull;
14
15
16
17
18
19
20
21
22
23 public class RootDoubleSlashPath
24 extends AbstractRootPathExpression {
25
26
27
28
29
30
31
32
33
34
35 public RootDoubleSlashPath(@NonNull String text, @NonNull IExpression node) {
36 super(text, node);
37 }
38
39 @Override
40 public <RESULT, CONTEXT> RESULT accept(IExpressionVisitor<RESULT, CONTEXT> visitor, CONTEXT context) {
41 return visitor.visitRootDoubleSlashPath(this, context);
42 }
43
44 @Override
45 protected ISequence<?> evaluate(DynamicContext dynamicContext, ISequence<?> focus) {
46 return ISequence.of(search(
47 getExpression(),
48 dynamicContext,
49 ItemUtils.getDocumentNodeItems(dynamicContext, focus)));
50 }
51 }