diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java')
-rw-r--r-- | config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java new file mode 100644 index 00000000000..476275ca290 --- /dev/null +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/chains/docproc/DomDocprocChainBuilder.java @@ -0,0 +1,33 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.model.builder.xml.dom.chains.docproc; + +import com.yahoo.collections.Pair; +import com.yahoo.component.chain.model.ChainSpecification; +import com.yahoo.config.model.producer.AbstractConfigProducer; +import com.yahoo.vespa.model.builder.xml.dom.chains.ComponentsBuilder; +import com.yahoo.vespa.model.builder.xml.dom.chains.DomChainBuilderBase; +import com.yahoo.vespa.model.container.docproc.DocprocChain; +import com.yahoo.vespa.model.container.docproc.DocumentProcessor; +import org.w3c.dom.Element; + +import java.util.Arrays; +import java.util.Map; + +/** + * Builds a docproc chain from xml + * + * @author gjoranv + */ +public class DomDocprocChainBuilder extends DomChainBuilderBase<DocumentProcessor, DocprocChain> { + + public DomDocprocChainBuilder(Map<String, ComponentsBuilder.ComponentType> outerComponentTypeByComponentName) { + super(Arrays.asList(ComponentsBuilder.ComponentType.documentprocessor), outerComponentTypeByComponentName); + } + + protected DocprocChain buildChain(AbstractConfigProducer ancestor, Element producerSpec, + ChainSpecification specWithoutInnerComponents) { + Map<Pair<String, String>, String> fieldNameSchemaMap = DocumentProcessorModelBuilder.parseFieldNameSchemaMap(producerSpec); + return new DocprocChain(specWithoutInnerComponents, fieldNameSchemaMap); + } + +} |