summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahooinc.com>2022-04-01 11:51:29 +0000
committerArne H Juul <arnej@yahooinc.com>2022-04-01 11:51:29 +0000
commit430155207f7de4ee54456901803ce8ab1e65209c (patch)
tree2aa2a614ae9527b782f348d310d23518e3814e92
parent1bb3dd192f4bcb91e710fe19ca54b2b8935ffb83 (diff)
remove old document manager config production
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java1
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/Deriver.java1
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java166
-rw-r--r--config-model/src/test/derived/inheritdiamond/documentmanager.cfg299
-rw-r--r--config-model/src/test/derived/multi_struct/documentmanager.cfg217
-rw-r--r--config-model/src/test/derived/reference_from_several/documentmanager.cfg160
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java2
-rw-r--r--config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java49
8 files changed, 327 insertions, 568 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java b/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java
index 704921a3bb7..f013b480ca6 100644
--- a/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java
+++ b/config-model/src/main/java/com/yahoo/config/model/ApplicationConfigProducerRoot.java
@@ -162,7 +162,6 @@ public class ApplicationConfigProducerRoot extends AbstractConfigProducer<Abstra
public void getConfig(DocumentmanagerConfig.Builder builder) {
new DocumentManager()
.useV8GeoPositions(this.useV8GeoPositions)
- .useV8DocManagerCfg(this.useV8DocManagerCfg)
.produce(documentModel, builder);
}
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/Deriver.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/Deriver.java
index bcdc9e656e1..cb6f01d2406 100644
--- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/Deriver.java
+++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/Deriver.java
@@ -39,7 +39,6 @@ public class Deriver {
public static DocumentmanagerConfig.Builder getDocumentManagerConfig(List<String> schemas, boolean useV8DocManagerCfg) {
return new DocumentManager()
- .useV8DocManagerCfg(useV8DocManagerCfg)
.produce(getSchemaBuilder(schemas).getModel(), new DocumentmanagerConfig.Builder());
}
diff --git a/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java b/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java
index 8867ab63e2b..941116bfe21 100644
--- a/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java
+++ b/config-model/src/main/java/com/yahoo/vespa/configmodel/producers/DocumentManager.java
@@ -33,182 +33,18 @@ import java.util.Set;
public class DocumentManager {
private boolean useV8GeoPositions = false;
- private boolean useV8DocManagerCfg = true;
public DocumentManager useV8GeoPositions(boolean value) {
this.useV8GeoPositions = value;
return this;
}
- public DocumentManager useV8DocManagerCfg(boolean value) {
- this.useV8DocManagerCfg = value;
- return this;
- }
public DocumentmanagerConfig.Builder produce(DocumentModel model,
DocumentmanagerConfig.Builder documentConfigBuilder)
{
- if (useV8DocManagerCfg) {
- return produceDocTypes(model, documentConfigBuilder);
- } else {
- return produceDataTypes(model, documentConfigBuilder);
- }
+ return produceDocTypes(model, documentConfigBuilder);
}
- public DocumentmanagerConfig.Builder produceDataTypes(DocumentModel model,
- DocumentmanagerConfig.Builder documentConfigBuilder)
- {
- documentConfigBuilder.enablecompression(false);
- documentConfigBuilder.usev8geopositions(this.useV8GeoPositions);
- Set<DataType> handled = new HashSet<>();
- for(NewDocumentType documentType : model.getDocumentManager().getTypes()) {
- buildConfig(documentType, documentConfigBuilder, handled);
- buildConfig(documentType.getAnnotations(), documentConfigBuilder);
- if (documentType != VespaDocumentType.INSTANCE && ! handled.contains(documentType)) {
- handled.add(documentType);
- DocumentmanagerConfig.Datatype.Builder dataTypeBuilder = new DocumentmanagerConfig.Datatype.Builder();
- documentConfigBuilder.datatype(dataTypeBuilder);
- buildConfig(documentType, dataTypeBuilder);
- }
- }
- return documentConfigBuilder;
- }
-
- @SuppressWarnings("deprecation")
- private void buildConfig(DataTypeCollection type, DocumentmanagerConfig.Builder documentConfigBuilder, Set<DataType> built) {
- List<DataType> todo = new ArrayList<>(type.getTypes());
- Collections.sort(todo, (a, b) -> (a.getName().equals(b.getName())
- ? a.getId() - b.getId()
- : a.getName().compareTo(b.getName())));
- for (DataType dataType : todo) {
- if (built.contains(dataType)) continue;
- built.add(dataType);
- if (dataType instanceof TemporaryStructuredDataType) {
- throw new IllegalArgumentException("Can not create config for temporary data type: " + dataType.getName());
- }
- if (dataType instanceof TemporaryUnknownType) {
- throw new IllegalArgumentException("Can not create config for temporary data type: " + dataType.getName());
- }
- if (dataType instanceof OwnedTemporaryType) {
- throw new IllegalArgumentException("Can not create config for temporary data type: " + dataType.getName());
- }
- if ((dataType.getId() < 0) || (dataType.getId()> DataType.lastPredefinedDataTypeId())) {
- Datatype.Builder dataTypeBuilder = new Datatype.Builder();
- documentConfigBuilder.datatype(dataTypeBuilder);
- buildConfig(dataType, dataTypeBuilder);
- }
- }
- }
-
- private void buildConfig(AnnotationType type, DocumentmanagerConfig.Annotationtype.Builder atb) {
- atb.
- id(type.getId()).
- name(type.getName());
- if (type.getDataType() != null) {
- atb.datatype(type.getDataType().getId());
- }
- if ( ! type.getInheritedTypes().isEmpty()) {
- for (AnnotationType inherited : type.getInheritedTypes()) {
- atb.inherits(new DocumentmanagerConfig.Annotationtype.Inherits.Builder().id(inherited.getId()));
- }
- }
- }
-
- private void buildConfig(Collection<AnnotationType> types, DocumentmanagerConfig.Builder builder) {
- for (AnnotationType type : types) {
- DocumentmanagerConfig.Annotationtype.Builder atb = new DocumentmanagerConfig.Annotationtype.Builder();
- buildConfig(type, atb);
- builder.annotationtype(atb);
- }
- }
-
- @SuppressWarnings("deprecation")
- private void buildConfig(DataType type, Datatype.Builder builder) {
- builder.id(type.getId());
- if (type instanceof ArrayDataType) {
- CollectionDataType dt = (CollectionDataType) type;
- builder.arraytype(new Datatype.Arraytype.Builder().datatype(dt.getNestedType().getId()));
- } else if (type instanceof WeightedSetDataType) {
- WeightedSetDataType dt = (WeightedSetDataType) type;
- builder.weightedsettype(new Datatype.Weightedsettype.Builder().
- datatype(dt.getNestedType().getId()).
- createifnonexistant(dt.createIfNonExistent()).
- removeifzero(dt.removeIfZero()));
- } else if (type instanceof MapDataType) {
- MapDataType mtype = (MapDataType) type;
- builder.maptype(new Datatype.Maptype.Builder().
- keytype(mtype.getKeyType().getId()).
- valtype(mtype.getValueType().getId()));
- } else if (type instanceof DocumentType) {
- throw new IllegalArgumentException("Can not create config for unadorned document type: " + type.getName());
- } else if (type instanceof NewDocumentType) {
- NewDocumentType dt = (NewDocumentType) type;
- Datatype.Documenttype.Builder doc = new Datatype.Documenttype.Builder();
- builder.documenttype(doc);
- doc.
- name(dt.getName()).
- headerstruct(dt.getContentStruct().getId());
- for (NewDocumentType inherited : dt.getInherited()) {
- doc.inherits(new Datatype.Documenttype.Inherits.Builder().name(inherited.getName()));
- }
- buildConfig(dt.getFieldSets(), doc);
- buildImportedFieldsConfig(dt.getImportedFieldNames(), doc);
- } else if (type instanceof StructDataType) {
- StructDataType structType = (StructDataType) type;
- Datatype.Structtype.Builder structBuilder = new Datatype.Structtype.Builder();
- builder.structtype(structBuilder);
- structBuilder.name(structType.getName());
- for (com.yahoo.document.Field field : structType.getFieldsThisTypeOnly()) {
- Datatype.Structtype.Field.Builder fieldBuilder = new Datatype.Structtype.Field.Builder();
- structBuilder.field(fieldBuilder);
- fieldBuilder.name(field.getName());
- if (field.hasForcedId()) {
- fieldBuilder.id(new Datatype.Structtype.Field.Id.Builder().id(field.getId()));
- }
- fieldBuilder.datatype(field.getDataType().getId());
-
- if (field.getDataType() instanceof TensorDataType)
- fieldBuilder.detailedtype(((TensorDataType)field.getDataType()).getTensorType().toString());
- }
- for (StructDataType inherited : structType.getInheritedTypes()) {
- structBuilder.inherits(new Datatype.Structtype.Inherits.Builder().name(inherited.getName()));
- }
- } else if (type instanceof AnnotationReferenceDataType) {
- AnnotationReferenceDataType annotationRef = (AnnotationReferenceDataType) type;
- builder.annotationreftype(new Datatype.Annotationreftype.Builder().annotation(annotationRef.getAnnotationType().getName()));
- } else if (type instanceof TensorDataType) {
- // Nothing to do; the type of the tensor is instead stored in each field as detailed type information
- // to provide better compatibility. A tensor field can have its tensorType changed (in compatible ways)
- // without changing the field type and thus requiring data refeed
- } else if (type instanceof NewDocumentReferenceDataType) {
- NewDocumentReferenceDataType refType = (NewDocumentReferenceDataType) type;
- if (refType.isTemporary()) {
- throw new IllegalArgumentException("Still temporary: " + refType);
- }
- builder.referencetype(new Datatype.Referencetype.Builder().target_type_id(refType.getTargetTypeId()));
- } else {
- throw new IllegalArgumentException("Can not create config for data type " + type + " of class " + type.getClass());
- }
- }
-
- private void buildConfig(Set<FieldSet> fieldSets, Datatype.Documenttype.Builder doc) {
- for (FieldSet builtinFs : fieldSets) {
- buildConfig(builtinFs, doc);
- }
- }
-
- private void buildConfig(FieldSet fs, Datatype.Documenttype.Builder doc) {
- doc.fieldsets(fs.getName(), new Datatype.Documenttype.Fieldsets.Builder().fields(fs.getFieldNames()));
- }
-
- private void buildImportedFieldsConfig(Collection<String> fieldNames, Datatype.Documenttype.Builder builder) {
- for (String fieldName : fieldNames) {
- var ib = new DocumentmanagerConfig.Datatype.Documenttype.Importedfield.Builder();
- ib.name(fieldName);
- builder.importedfield(ib);
- }
- }
-
-
// Alternate (new) way to build config:
public DocumentmanagerConfig.Builder produceDocTypes(DocumentModel model, DocumentmanagerConfig.Builder builder) {
diff --git a/config-model/src/test/derived/inheritdiamond/documentmanager.cfg b/config-model/src/test/derived/inheritdiamond/documentmanager.cfg
index 06169c09969..10fdcf50026 100644
--- a/config-model/src/test/derived/inheritdiamond/documentmanager.cfg
+++ b/config-model/src/test/derived/inheritdiamond/documentmanager.cfg
@@ -1,198 +1,105 @@
enablecompression false
usev8geopositions false
-datatype[].id 336538650
-datatype[].structtype[].name "child_struct"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "child_field"
-datatype[].structtype[].field[].datatype 2
-datatype[].id 81425825
-datatype[].structtype[].name "child.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "foo"
-datatype[].structtype[].field[].datatype 1246084544
-datatype[].structtype[].field[].name "bar"
-datatype[].structtype[].field[].datatype 1561776723
-datatype[].structtype[].field[].name "baz"
-datatype[].structtype[].field[].datatype -1913265190
-datatype[].structtype[].field[].name "cox"
-datatype[].structtype[].field[].datatype 336538650
-datatype[].id 746267614
-datatype[].documenttype[].name "child"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "mother"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].inherits[].name "father"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct 81425825
-datatype[].documenttype[].bodystruct 0
-datatype[].id -1913265190
-datatype[].structtype[].name "father_struct"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "father_field"
-datatype[].structtype[].field[].datatype 2
-datatype[].id 1246084544
-datatype[].structtype[].name "grandparent_struct"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "grandparent_field"
-datatype[].structtype[].field[].datatype 2
-datatype[].id -1962244686
-datatype[].structtype[].name "father_search.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].id 1464571117
-datatype[].documenttype[].name "father_search"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct -1962244686
-datatype[].documenttype[].bodystruct 0
-datatype[].id -384824039
-datatype[].structtype[].name "mother_search.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].id 1561776723
-datatype[].structtype[].name "mother_struct"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "mother_field"
-datatype[].structtype[].field[].datatype 2
-datatype[].id 644645734
-datatype[].documenttype[].name "mother_search"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct -384824039
-datatype[].documenttype[].bodystruct 0
-datatype[].id 1306663898
-datatype[].structtype[].name "mother.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].id -158393403
-datatype[].documenttype[].name "mother"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "grandparent"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct 1306663898
-datatype[].documenttype[].bodystruct 0
-datatype[].id -205818510
-datatype[].structtype[].name "child_search.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].id -580592339
-datatype[].documenttype[].name "child_search"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct -205818510
-datatype[].documenttype[].bodystruct 0
-datatype[].id 111553393
-datatype[].structtype[].name "url"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "all"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].name "scheme"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].name "host"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].name "port"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].name "path"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].name "query"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].name "fragment"
-datatype[].structtype[].field[].datatype 2
-datatype[].id 1381038251
-datatype[].structtype[].name "position"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "x"
-datatype[].structtype[].field[].datatype 0
-datatype[].structtype[].field[].name "y"
-datatype[].structtype[].field[].datatype 0
-datatype[].id 1530060044
-datatype[].structtype[].name "grandparent_search.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].id 328953555
-datatype[].documenttype[].name "grandparent_search"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct 1530060044
-datatype[].documenttype[].bodystruct 0
-datatype[].id 990971719
-datatype[].structtype[].name "grandparent.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].id -154107656
-datatype[].documenttype[].name "grandparent"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct 990971719
-datatype[].documenttype[].bodystruct 0
-datatype[].id 2126589281
-datatype[].structtype[].name "father.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].id 986686494
-datatype[].documenttype[].name "father"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "grandparent"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct 2126589281
-datatype[].documenttype[].bodystruct 0
+doctype[].name "document"
+doctype[].idx 10000
+doctype[].contentstruct 10001
+doctype[].primitivetype[].idx 10002
+doctype[].primitivetype[].name "bool"
+doctype[].primitivetype[].idx 10003
+doctype[].primitivetype[].name "byte"
+doctype[].primitivetype[].idx 10004
+doctype[].primitivetype[].name "double"
+doctype[].primitivetype[].idx 10005
+doctype[].primitivetype[].name "float"
+doctype[].primitivetype[].idx 10006
+doctype[].primitivetype[].name "float16"
+doctype[].primitivetype[].idx 10007
+doctype[].primitivetype[].name "int"
+doctype[].primitivetype[].idx 10008
+doctype[].primitivetype[].name "long"
+doctype[].primitivetype[].idx 10010
+doctype[].primitivetype[].name "predicate"
+doctype[].primitivetype[].idx 10011
+doctype[].primitivetype[].name "raw"
+doctype[].primitivetype[].idx 10012
+doctype[].primitivetype[].name "string"
+doctype[].primitivetype[].idx 10014
+doctype[].primitivetype[].name "uri"
+doctype[].wsettype[].idx 10013
+doctype[].wsettype[].elementtype 10012
+doctype[].wsettype[].createifnonexistent true
+doctype[].wsettype[].removeifzero true
+doctype[].structtype[].idx 10001
+doctype[].structtype[].name "document.header"
+doctype[].structtype[].idx 10009
+doctype[].structtype[].name "position"
+doctype[].structtype[].field[].name "x"
+doctype[].structtype[].field[].internalid 914677694
+doctype[].structtype[].field[].type 10007
+doctype[].structtype[].field[].name "y"
+doctype[].structtype[].field[].internalid 900009410
+doctype[].structtype[].field[].type 10007
+doctype[].name "grandparent"
+doctype[].idx 10015
+doctype[].inherits[].idx 10000
+doctype[].contentstruct 10016
+doctype[].structtype[].idx 10016
+doctype[].structtype[].name "grandparent.header"
+doctype[].structtype[].idx 10017
+doctype[].structtype[].name "grandparent_struct"
+doctype[].structtype[].field[].name "grandparent_field"
+doctype[].structtype[].field[].internalid 18801796
+doctype[].structtype[].field[].type 10012
+doctype[].name "mother"
+doctype[].idx 10018
+doctype[].inherits[].idx 10000
+doctype[].inherits[].idx 10015
+doctype[].contentstruct 10019
+doctype[].structtype[].idx 10019
+doctype[].structtype[].name "mother.header"
+doctype[].structtype[].idx 10020
+doctype[].structtype[].name "mother_struct"
+doctype[].structtype[].field[].name "mother_field"
+doctype[].structtype[].field[].internalid 1801531770
+doctype[].structtype[].field[].type 10012
+doctype[].name "father"
+doctype[].idx 10021
+doctype[].inherits[].idx 10000
+doctype[].inherits[].idx 10015
+doctype[].contentstruct 10022
+doctype[].structtype[].idx 10022
+doctype[].structtype[].name "father.header"
+doctype[].structtype[].idx 10023
+doctype[].structtype[].name "father_struct"
+doctype[].structtype[].field[].name "father_field"
+doctype[].structtype[].field[].internalid 465213152
+doctype[].structtype[].field[].type 10012
+doctype[].name "child"
+doctype[].idx 10024
+doctype[].inherits[].idx 10000
+doctype[].inherits[].idx 10018
+doctype[].inherits[].idx 10021
+doctype[].contentstruct 10025
+doctype[].fieldsets{[document]}.fields[] "bar"
+doctype[].fieldsets{[document]}.fields[] "baz"
+doctype[].fieldsets{[document]}.fields[] "cox"
+doctype[].fieldsets{[document]}.fields[] "foo"
+doctype[].structtype[].idx 10026
+doctype[].structtype[].name "child_struct"
+doctype[].structtype[].field[].name "child_field"
+doctype[].structtype[].field[].internalid 1373649209
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].idx 10025
+doctype[].structtype[].name "child.header"
+doctype[].structtype[].field[].name "foo"
+doctype[].structtype[].field[].internalid 1009524757
+doctype[].structtype[].field[].type 10017
+doctype[].structtype[].field[].name "bar"
+doctype[].structtype[].field[].internalid 441572371
+doctype[].structtype[].field[].type 10020
+doctype[].structtype[].field[].name "baz"
+doctype[].structtype[].field[].internalid 971444170
+doctype[].structtype[].field[].type 10023
+doctype[].structtype[].field[].name "cox"
+doctype[].structtype[].field[].internalid 592669560
+doctype[].structtype[].field[].type 10026
diff --git a/config-model/src/test/derived/multi_struct/documentmanager.cfg b/config-model/src/test/derived/multi_struct/documentmanager.cfg
index 58775331d58..dbf753c6bc3 100644
--- a/config-model/src/test/derived/multi_struct/documentmanager.cfg
+++ b/config-model/src/test/derived/multi_struct/documentmanager.cfg
@@ -1,109 +1,112 @@
enablecompression false
usev8geopositions false
-datatype[].id 1381038251
-datatype[].structtype[].name "position"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "x"
-datatype[].structtype[].field[].datatype 0
-datatype[].structtype[].field[].detailedtype ""
-datatype[].structtype[].field[].name "y"
-datatype[].structtype[].field[].datatype 0
-datatype[].structtype[].field[].detailedtype ""
-datatype[].id 959075962
-datatype[].structtype[].name "ad.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "e"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].detailedtype ""
-datatype[].id 2987301
-datatype[].documenttype[].name "ad"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct 959075962
-datatype[].documenttype[].bodystruct 0
-datatype[].documenttype[].fieldsets{[document]}.fields[] "e"
-datatype[].id -420192670
-datatype[].maptype[].keytype 2
-datatype[].maptype[].valtype -2092985853
-datatype[].id -2092985853
-datatype[].structtype[].name "mystruct"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "zero"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].detailedtype ""
-datatype[].structtype[].field[].name "one"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].detailedtype ""
-datatype[].structtype[].field[].name "two"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].detailedtype ""
-datatype[].structtype[].field[].name "three"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].detailedtype ""
-datatype[].id -107300050
-datatype[].structtype[].name "product.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "more_stuff"
-datatype[].structtype[].field[].datatype -420192670
-datatype[].structtype[].field[].detailedtype ""
-datatype[].id -1051831567
-datatype[].documenttype[].name "product"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct -107300050
-datatype[].documenttype[].bodystruct 0
-datatype[].documenttype[].fieldsets{[document]}.fields[] "more_stuff"
-datatype[].id 371492103
-datatype[].structtype[].name "shop.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "some_stuff"
-datatype[].structtype[].field[].datatype -420192670
-datatype[].structtype[].field[].detailedtype ""
-datatype[].id -903152840
-datatype[].documenttype[].name "shop"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct 371492103
-datatype[].documenttype[].bodystruct 0
-datatype[].documenttype[].fieldsets{[document]}.fields[] "some_stuff"
-datatype[].id 1601213394
-datatype[].structtype[].name "user.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "a"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].detailedtype ""
-datatype[].id -836031795
-datatype[].documenttype[].name "user"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct 1601213394
-datatype[].documenttype[].bodystruct 0
-datatype[].documenttype[].fieldsets{[document]}.fields[] "a"
+doctype[].name "document"
+doctype[].idx 10000
+doctype[].contentstruct 10001
+doctype[].primitivetype[].idx 10002
+doctype[].primitivetype[].name "bool"
+doctype[].primitivetype[].idx 10003
+doctype[].primitivetype[].name "byte"
+doctype[].primitivetype[].idx 10004
+doctype[].primitivetype[].name "double"
+doctype[].primitivetype[].idx 10005
+doctype[].primitivetype[].name "float"
+doctype[].primitivetype[].idx 10006
+doctype[].primitivetype[].name "float16"
+doctype[].primitivetype[].idx 10007
+doctype[].primitivetype[].name "int"
+doctype[].primitivetype[].idx 10008
+doctype[].primitivetype[].name "long"
+doctype[].primitivetype[].idx 10010
+doctype[].primitivetype[].name "predicate"
+doctype[].primitivetype[].idx 10011
+doctype[].primitivetype[].name "raw"
+doctype[].primitivetype[].idx 10012
+doctype[].primitivetype[].name "string"
+doctype[].primitivetype[].idx 10014
+doctype[].primitivetype[].name "uri"
+doctype[].wsettype[].idx 10013
+doctype[].wsettype[].elementtype 10012
+doctype[].wsettype[].createifnonexistent true
+doctype[].wsettype[].removeifzero true
+doctype[].structtype[].idx 10001
+doctype[].structtype[].name "document.header"
+doctype[].structtype[].idx 10009
+doctype[].structtype[].name "position"
+doctype[].structtype[].field[].name "x"
+doctype[].structtype[].field[].internalid 914677694
+doctype[].structtype[].field[].type 10007
+doctype[].structtype[].field[].name "y"
+doctype[].structtype[].field[].internalid 900009410
+doctype[].structtype[].field[].type 10007
+doctype[].name "ad"
+doctype[].idx 10015
+doctype[].inherits[].idx 10000
+doctype[].contentstruct 10016
+doctype[].fieldsets{[document]}.fields[] "e"
+doctype[].structtype[].idx 10016
+doctype[].structtype[].name "ad.header"
+doctype[].structtype[].field[].name "e"
+doctype[].structtype[].field[].internalid 970377814
+doctype[].structtype[].field[].type 10012
+doctype[].name "product"
+doctype[].idx 10017
+doctype[].inherits[].idx 10000
+doctype[].contentstruct 10018
+doctype[].fieldsets{[document]}.fields[] "more_stuff"
+doctype[].maptype[].idx 10019
+doctype[].maptype[].keytype 10012
+doctype[].maptype[].valuetype 10020
+doctype[].structtype[].idx 10020
+doctype[].structtype[].name "mystruct"
+doctype[].structtype[].field[].name "zero"
+doctype[].structtype[].field[].internalid 2128579715
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "one"
+doctype[].structtype[].field[].internalid 997119011
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "two"
+doctype[].structtype[].field[].internalid 2054688289
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "three"
+doctype[].structtype[].field[].internalid 814368361
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].idx 10018
+doctype[].structtype[].name "product.header"
+doctype[].structtype[].field[].name "more_stuff"
+doctype[].structtype[].field[].internalid 278342855
+doctype[].structtype[].field[].type 10019
+doctype[].name "shop"
+doctype[].idx 10021
+doctype[].inherits[].idx 10000
+doctype[].contentstruct 10022
+doctype[].fieldsets{[document]}.fields[] "some_stuff"
+doctype[].maptype[].idx 10023
+doctype[].maptype[].keytype 10012
+doctype[].maptype[].valuetype 10024
+doctype[].structtype[].idx 10024
+doctype[].structtype[].name "mystruct"
+doctype[].structtype[].field[].name "one"
+doctype[].structtype[].field[].internalid 997119011
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "two"
+doctype[].structtype[].field[].internalid 2054688289
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].field[].name "three"
+doctype[].structtype[].field[].internalid 814368361
+doctype[].structtype[].field[].type 10012
+doctype[].structtype[].idx 10022
+doctype[].structtype[].name "shop.header"
+doctype[].structtype[].field[].name "some_stuff"
+doctype[].structtype[].field[].internalid 1543312381
+doctype[].structtype[].field[].type 10023
+doctype[].name "user"
+doctype[].idx 10025
+doctype[].inherits[].idx 10000
+doctype[].contentstruct 10026
+doctype[].fieldsets{[document]}.fields[] "a"
+doctype[].structtype[].idx 10026
+doctype[].structtype[].name "user.header"
+doctype[].structtype[].field[].name "a"
+doctype[].structtype[].field[].internalid 493339625
+doctype[].structtype[].field[].type 10012
diff --git a/config-model/src/test/derived/reference_from_several/documentmanager.cfg b/config-model/src/test/derived/reference_from_several/documentmanager.cfg
index 88dee077539..0418b05d9d6 100644
--- a/config-model/src/test/derived/reference_from_several/documentmanager.cfg
+++ b/config-model/src/test/derived/reference_from_several/documentmanager.cfg
@@ -1,81 +1,83 @@
enablecompression false
usev8geopositions false
-datatype[].id 1381038251
-datatype[].structtype[].name "position"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "x"
-datatype[].structtype[].field[].datatype 0
-datatype[].structtype[].field[].detailedtype ""
-datatype[].structtype[].field[].name "y"
-datatype[].structtype[].field[].datatype 0
-datatype[].structtype[].field[].detailedtype ""
-datatype[].id 427398467
-datatype[].referencetype[].target_type_id 1175161836
-datatype[].id -2026908534
-datatype[].structtype[].name "bar.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "bpref"
-datatype[].structtype[].field[].datatype 427398467
-datatype[].structtype[].field[].detailedtype ""
-datatype[].structtype[].field[].name "bartitle"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].detailedtype ""
-datatype[].id 93505813
-datatype[].documenttype[].name "bar"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct -2026908534
-datatype[].documenttype[].bodystruct 0
-datatype[].documenttype[].fieldsets{[document]}.fields[] "bartitle"
-datatype[].documenttype[].fieldsets{[document]}.fields[] "bpref"
-datatype[].documenttype[].importedfield[].name "barsximp"
-datatype[].id -308552393
-datatype[].structtype[].name "foo.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "myref"
-datatype[].structtype[].field[].datatype 427398467
-datatype[].structtype[].field[].detailedtype ""
-datatype[].structtype[].field[].name "foo"
-datatype[].structtype[].field[].datatype 2
-datatype[].structtype[].field[].detailedtype ""
-datatype[].id 97614088
-datatype[].documenttype[].name "foo"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct -308552393
-datatype[].documenttype[].bodystruct 0
-datatype[].documenttype[].fieldsets{[document]}.fields[] "foo"
-datatype[].documenttype[].fieldsets{[document]}.fields[] "myref"
-datatype[].documenttype[].importedfield[].name "myx"
-datatype[].id 836075987
-datatype[].structtype[].name "parent.header"
-datatype[].structtype[].version 0
-datatype[].structtype[].compresstype NONE
-datatype[].structtype[].compresslevel 0
-datatype[].structtype[].compressthreshold 95
-datatype[].structtype[].compressminsize 800
-datatype[].structtype[].field[].name "x"
-datatype[].structtype[].field[].datatype 0
-datatype[].structtype[].field[].detailedtype ""
-datatype[].id 1175161836
-datatype[].documenttype[].name "parent"
-datatype[].documenttype[].version 0
-datatype[].documenttype[].inherits[].name "document"
-datatype[].documenttype[].inherits[].version 0
-datatype[].documenttype[].headerstruct 836075987
-datatype[].documenttype[].bodystruct 0
-datatype[].documenttype[].fieldsets{[document]}.fields[] "x"
+doctype[].name "document"
+doctype[].idx 10000
+doctype[].contentstruct 10001
+doctype[].primitivetype[].idx 10002
+doctype[].primitivetype[].name "bool"
+doctype[].primitivetype[].idx 10003
+doctype[].primitivetype[].name "byte"
+doctype[].primitivetype[].idx 10004
+doctype[].primitivetype[].name "double"
+doctype[].primitivetype[].idx 10005
+doctype[].primitivetype[].name "float"
+doctype[].primitivetype[].idx 10006
+doctype[].primitivetype[].name "float16"
+doctype[].primitivetype[].idx 10007
+doctype[].primitivetype[].name "int"
+doctype[].primitivetype[].idx 10008
+doctype[].primitivetype[].name "long"
+doctype[].primitivetype[].idx 10010
+doctype[].primitivetype[].name "predicate"
+doctype[].primitivetype[].idx 10011
+doctype[].primitivetype[].name "raw"
+doctype[].primitivetype[].idx 10012
+doctype[].primitivetype[].name "string"
+doctype[].primitivetype[].idx 10014
+doctype[].primitivetype[].name "uri"
+doctype[].wsettype[].idx 10013
+doctype[].wsettype[].elementtype 10012
+doctype[].wsettype[].createifnonexistent true
+doctype[].wsettype[].removeifzero true
+doctype[].structtype[].idx 10001
+doctype[].structtype[].name "document.header"
+doctype[].structtype[].idx 10009
+doctype[].structtype[].name "position"
+doctype[].structtype[].field[].name "x"
+doctype[].structtype[].field[].internalid 914677694
+doctype[].structtype[].field[].type 10007
+doctype[].structtype[].field[].name "y"
+doctype[].structtype[].field[].internalid 900009410
+doctype[].structtype[].field[].type 10007
+doctype[].name "bar"
+doctype[].idx 10015
+doctype[].inherits[].idx 10000
+doctype[].contentstruct 10016
+doctype[].fieldsets{[document]}.fields[] "bartitle"
+doctype[].fieldsets{[document]}.fields[] "bpref"
+doctype[].importedfield[].name "barsximp"
+doctype[].documentref[].idx 10017
+doctype[].documentref[].targettype 10018
+doctype[].structtype[].idx 10016
+doctype[].structtype[].name "bar.header"
+doctype[].structtype[].field[].name "bpref"
+doctype[].structtype[].field[].internalid 1709838545
+doctype[].structtype[].field[].type 10017
+doctype[].structtype[].field[].name "bartitle"
+doctype[].structtype[].field[].internalid 1554393914
+doctype[].structtype[].field[].type 10012
+doctype[].name "foo"
+doctype[].idx 10019
+doctype[].inherits[].idx 10000
+doctype[].contentstruct 10020
+doctype[].fieldsets{[document]}.fields[] "foo"
+doctype[].fieldsets{[document]}.fields[] "myref"
+doctype[].importedfield[].name "myx"
+doctype[].structtype[].idx 10020
+doctype[].structtype[].name "foo.header"
+doctype[].structtype[].field[].name "myref"
+doctype[].structtype[].field[].internalid 598565475
+doctype[].structtype[].field[].type 10017
+doctype[].structtype[].field[].name "foo"
+doctype[].structtype[].field[].internalid 846279091
+doctype[].structtype[].field[].type 10012
+doctype[].name "parent"
+doctype[].idx 10018
+doctype[].inherits[].idx 10000
+doctype[].contentstruct 10021
+doctype[].fieldsets{[document]}.fields[] "x"
+doctype[].structtype[].idx 10021
+doctype[].structtype[].name "parent.header"
+doctype[].structtype[].field[].name "x"
+doctype[].structtype[].field[].internalid 914677694
+doctype[].structtype[].field[].type 10007
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java
index e1cc42ba9c5..b8ad3c24ed7 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/AbstractExportingTestCase.java
@@ -66,7 +66,7 @@ public abstract class AbstractExportingTestCase extends AbstractSchemaTestCase {
private DerivedConfiguration export(String name, ApplicationBuilder builder, DerivedConfiguration config) throws IOException {
String path = exportConfig(name, config);
- DerivedConfiguration.exportDocuments(new DocumentManager().useV8DocManagerCfg(useV8DocManagerCfg())
+ DerivedConfiguration.exportDocuments(new DocumentManager()
.produce(builder.getModel(), new DocumentmanagerConfig.Builder()), path);
DerivedConfiguration.exportDocuments(new DocumentTypes().produce(builder.getModel(), new DocumenttypesConfig.Builder()), path);
DerivedConfiguration.exportQueryProfiles(builder.getQueryProfileRegistry(), path);
diff --git a/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java b/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java
index 10616731499..d27c081ce30 100644
--- a/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java
+++ b/config-model/src/test/java/com/yahoo/searchdefinition/derived/InheritanceTestCase.java
@@ -62,6 +62,16 @@ public class InheritanceTestCase extends AbstractExportingTestCase {
@Test
public void requireThatStructTypesAreInheritedThroughDiamond() throws IOException, ParseException {
String dir = "src/test/derived/inheritdiamond/";
+ {
+ ApplicationBuilder builder = new ApplicationBuilder();
+ builder.addSchemaFile(dir + "grandparent.sd");
+ builder.addSchemaFile(dir + "mother.sd");
+ builder.addSchemaFile(dir + "father.sd");
+ builder.addSchemaFile(dir + "child.sd");
+ builder.build(true);
+ derive("inheritdiamond", builder, builder.getSchema("child"));
+ assertCorrectConfigFiles("inheritdiamond");
+ }
List<String> files = Arrays.asList("grandparent.sd", "mother.sd", "father.sd", "child.sd");
File outDir = tmpDir.newFolder("out");
for (int startIdx = 0; startIdx < files.size(); ++startIdx) {
@@ -74,40 +84,43 @@ public class InheritanceTestCase extends AbstractExportingTestCase {
builder.build(true);
DocumentmanagerConfig.Builder b = new DocumentmanagerConfig.Builder();
DerivedConfiguration.exportDocuments(new DocumentManager().
- useV8DocManagerCfg(false).
produce(builder.getModel(), b), outDir.getPath());
DocumentmanagerConfig dc = b.build();
- assertEquals(13, dc.datatype().size());
+ assertEquals(5, dc.doctype().size());
+
assertNull(structType("child.body", dc));
- DocumentmanagerConfig.Datatype.Structtype childHeader = structType("child.header", dc);
+ var childHeader = structType("child.header", dc);
assertEquals(childHeader.field(0).name(), "foo");
assertEquals(childHeader.field(1).name(), "bar");
assertEquals(childHeader.field(2).name(), "baz");
assertEquals(childHeader.field(3).name(), "cox");
- DocumentmanagerConfig.Datatype.Documenttype child = documentType("child", dc);
- assertEquals(child.inherits(0).name(), "document");
- assertEquals(child.inherits(1).name(), "mother");
- assertEquals(child.inherits(2).name(), "father");
- DocumentmanagerConfig.Datatype.Documenttype mother = documentType("mother", dc);
- assertEquals(mother.inherits(0).name(), "document");
- assertEquals(mother.inherits(1).name(), "grandparent");
+
+ var root = documentType("document", dc);
+ var child = documentType("child", dc);
+ var mother = documentType("mother", dc);
+ var father = documentType("father", dc);
+ var grandparent = documentType("grandparent", dc);
+
+ assertEquals(child.inherits(0).idx(), root.idx());
+ assertEquals(child.inherits(1).idx(), mother.idx());
+ assertEquals(child.inherits(2).idx(), father.idx());
+ assertEquals(mother.inherits(0).idx(), root.idx());
+ assertEquals(mother.inherits(1).idx(), grandparent.idx());
}
}
- private DocumentmanagerConfig.Datatype.Structtype structType(String name, DocumentmanagerConfig dc) {
- for (DocumentmanagerConfig.Datatype dt : dc.datatype()) {
- for (DocumentmanagerConfig.Datatype.Structtype st : dt.structtype()) {
+ private DocumentmanagerConfig.Doctype.Structtype structType(String name, DocumentmanagerConfig dc) {
+ for (var dt : dc.doctype()) {
+ for (var st : dt.structtype()) {
if (name.equals(st.name())) return st;
}
}
return null;
}
- private DocumentmanagerConfig.Datatype.Documenttype documentType(String name, DocumentmanagerConfig dc) {
- for (DocumentmanagerConfig.Datatype dt : dc.datatype()) {
- for (DocumentmanagerConfig.Datatype.Documenttype dot : dt.documenttype()) {
- if (name.equals(dot.name())) return dot;
- }
+ private DocumentmanagerConfig.Doctype documentType(String name, DocumentmanagerConfig dc) {
+ for (var dot : dc.doctype()) {
+ if (name.equals(dot.name())) return dot;
}
return null;
}