1
2
3
4
5
6 package dev.metaschema.core.metapath.cst.items;
7
8 import dev.metaschema.core.metapath.cst.IExpressionVisitor;
9 import dev.metaschema.core.metapath.item.atomic.IStringItem;
10 import edu.umd.cs.findbugs.annotations.NonNull;
11
12
13
14
15
16
17
18 public class StringLiteral
19 extends AbstractLiteralExpression<IStringItem> {
20
21
22
23
24
25
26
27
28 public StringLiteral(@NonNull String text, @NonNull String value) {
29 super(text, IStringItem.valueOf(removeQuotes(value)));
30 }
31
32 @Override
33 public Class<IStringItem> getBaseResultType() {
34 return IStringItem.class;
35 }
36
37 @SuppressWarnings("null")
38 @NonNull
39 private static String removeQuotes(@NonNull String value) {
40 return value.substring(1, value.length() - 1);
41 }
42
43 @Override
44 public <RESULT, CONTEXT> RESULT accept(IExpressionVisitor<RESULT, CONTEXT> visitor, CONTEXT context) {
45 return visitor.visitStringLiteral(this, context);
46 }
47 }