summaryrefslogtreecommitdiffstats
path: root/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinition.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-04-12 20:47:19 +0200
committerJon Bratseth <bratseth@oath.com>2018-04-12 20:47:19 +0200
commitac1c5c234d8388ffcbd1da3a9ba492e3dcfc9dac (patch)
tree56fe231dc70881800b198d6b66717874ad2aa73c /container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinition.java
parentcd2d2d63c4962ef98c4da0c3db3ec1d6170b1cbf (diff)
Decode docsums the old fashioned way
Diffstat (limited to 'container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinition.java')
-rw-r--r--container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinition.java26
1 files changed, 20 insertions, 6 deletions
diff --git a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinition.java b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinition.java
index 4fd0f884903..d50006fb82c 100644
--- a/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinition.java
+++ b/container-search/src/main/java/com/yahoo/prelude/fastsearch/DocsumDefinition.java
@@ -21,20 +21,33 @@ import java.util.Map;
*/
public class DocsumDefinition {
- private String name;
- private final List<DocsumField> fields;
+ private final String name;
+ private final ImmutableList<DocsumField> fields;
/** True if this contains dynamic fields */
- private boolean dynamic = false;
+ private final boolean dynamic;
// Mapping between field names and their index in this.fields
- private final Map<String,Integer> fieldNameToIndex;
+ private final ImmutableMap<String, Integer> fieldNameToIndex;
+
+ public DocsumDefinition(String name, List<DocsumField> fields) {
+ this.name = name;
+ this.dynamic = false;
+ this.fields = ImmutableList.copyOf(fields);
+ ImmutableMap.Builder<String, Integer> fieldNameToIndexBuilder = new ImmutableMap.Builder<>();
+ int i = 0;
+ for (DocsumField field : fields)
+ fieldNameToIndexBuilder.put(field.name, i++);
+ this.fieldNameToIndex = fieldNameToIndexBuilder.build();
+ }
+ // TODO: Remove LegacyEmulationConfig (the config, not just the usage) on Vespa 7
DocsumDefinition(DocumentdbInfoConfig.Documentdb.Summaryclass config, LegacyEmulationConfig emulConfig) {
this.name = config.name();
- List<DocsumField> fieldsBuilder = new ArrayList<>();
- Map<String,Integer> fieldNameToIndexBuilder = new HashMap<>();
+ List<DocsumField> fieldsBuilder = new ArrayList<>();
+ Map<String, Integer> fieldNameToIndexBuilder = new HashMap<>();
+ boolean dynamic = false;
for (DocumentdbInfoConfig.Documentdb.Summaryclass.Fields field : config.fields()) {
// no, don't switch the order of the two next lines :)
fieldNameToIndexBuilder.put(field.name(), fieldsBuilder.size());
@@ -42,6 +55,7 @@ public class DocsumDefinition {
if (field.dynamic())
dynamic = true;
}
+ this.dynamic = dynamic;
fields = ImmutableList.copyOf(fieldsBuilder);
fieldNameToIndex = ImmutableMap.copyOf(fieldNameToIndexBuilder);
}