diff options
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/hitfield/AnnotateStringFieldPart.java')
-rw-r--r-- | container-search/src/main/java/com/yahoo/prelude/hitfield/AnnotateStringFieldPart.java | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/hitfield/AnnotateStringFieldPart.java b/container-search/src/main/java/com/yahoo/prelude/hitfield/AnnotateStringFieldPart.java new file mode 100644 index 00000000000..8361cb722e9 --- /dev/null +++ b/container-search/src/main/java/com/yahoo/prelude/hitfield/AnnotateStringFieldPart.java @@ -0,0 +1,45 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.prelude.hitfield; + +/** TODO: Class header! */ +public class AnnotateStringFieldPart implements FieldPart { + + public static final char RAW_ANNOTATE_BEGIN_CHAR = '\uFFF9'; + public static final char RAW_ANNOTATE_SEPARATOR_CHAR = '\uFFFA'; + public static final char RAW_ANNOTATE_END_CHAR = '\uFFFB'; + + private String content; + private String rawContent; + + public AnnotateStringFieldPart(String source, int index) { + content = ""; + rawContent = ""; + if (source.charAt(index) == RAW_ANNOTATE_BEGIN_CHAR) { + int sep = source.indexOf(RAW_ANNOTATE_SEPARATOR_CHAR, index); + int end = source.indexOf(RAW_ANNOTATE_END_CHAR, index); + + if (sep != -1) { + rawContent = source.substring(index + 1, sep); + if (end != -1 && end > sep) { + content = source.substring(sep + 1, end); + } + else { + content = rawContent; + } + } + } + } + + public boolean isFinal() { return false; } + + public boolean isToken() { return true; } + + public String getContent() { return rawContent; } + + public void setContent(String content) { + this.content = content; + } + + public String toString() { return content; } + +} |