diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema/fieldoperation/SummaryToOperation.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/schema/fieldoperation/SummaryToOperation.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/fieldoperation/SummaryToOperation.java b/config-model/src/main/java/com/yahoo/schema/fieldoperation/SummaryToOperation.java new file mode 100644 index 00000000000..2d9cf3acf4e --- /dev/null +++ b/config-model/src/main/java/com/yahoo/schema/fieldoperation/SummaryToOperation.java @@ -0,0 +1,41 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.schema.fieldoperation; + +import com.yahoo.schema.document.SDField; +import com.yahoo.vespa.documentmodel.SummaryField; + +import java.util.Set; + +/** + * @author Einar M R Rosenvinge + */ +public class SummaryToOperation implements FieldOperation { + + private Set<String> destinations = new java.util.LinkedHashSet<>(); + private String name; + + public void setName(String name) { + this.name = name; + } + + public void addDestination(String destination) { + destinations.add(destination); + } + + public void apply(SDField field) { + SummaryField summary; + summary = field.getSummaryField(name); + if (summary == null) { + summary = new SummaryField(field); + summary.addSource(field.getName()); + summary.addDestination("default"); + field.addSummaryField(summary); + } + summary.setImplicit(false); + + for (String destination : destinations) { + summary.addDestination(destination); + } + } + +} |