diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema/fieldoperation/SummaryInFieldLongOperation.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/schema/fieldoperation/SummaryInFieldLongOperation.java | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/fieldoperation/SummaryInFieldLongOperation.java b/config-model/src/main/java/com/yahoo/schema/fieldoperation/SummaryInFieldLongOperation.java new file mode 100644 index 00000000000..4576b7a34fe --- /dev/null +++ b/config-model/src/main/java/com/yahoo/schema/fieldoperation/SummaryInFieldLongOperation.java @@ -0,0 +1,70 @@ +// 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.document.DataType; +import com.yahoo.schema.document.SDField; +import com.yahoo.vespa.documentmodel.SummaryField; + +import java.util.Iterator; +import java.util.Set; + +/** + * @author Einar M R Rosenvinge + */ +public class SummaryInFieldLongOperation extends SummaryInFieldOperation { + + private DataType type; + private Boolean bold; + private Set<String> destinations = new java.util.LinkedHashSet<>(); + + public SummaryInFieldLongOperation(String name) { + super(name); + } + + public SummaryInFieldLongOperation() { + super(null); + } + + public void setType(DataType type) { + this.type = type; + } + + public void setBold(Boolean bold) { + this.bold = bold; + } + + public void addDestination(String destination) { + destinations.add(destination); + } + + public Iterator<String> destinationIterator() { + return destinations.iterator(); + } + + public void apply(SDField field) { + if (type == null) { + type = field.getDataType(); + } + SummaryField summary = new SummaryField(name, type); + applyToSummary(summary); + field.addSummaryField(summary); + } + + public void applyToSummary(SummaryField summary) { + if (transform != null) { + summary.setTransform(transform); + } + + if (bold != null) { + summary.setTransform(bold ? summary.getTransform().bold() : summary.getTransform().unbold()); + } + + for (SummaryField.Source source : sources) { + summary.addSource(source); + } + + for (String destination : destinations) { + summary.addDestination(destination); + } + } +} |