diff options
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema')
9 files changed, 69 insertions, 60 deletions
diff --git a/config-model/src/main/java/com/yahoo/schema/derived/ImportedFields.java b/config-model/src/main/java/com/yahoo/schema/derived/ImportedFields.java index 765ad858535..a781adcefb7 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/ImportedFields.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/ImportedFields.java @@ -9,6 +9,8 @@ import com.yahoo.schema.document.ImportedComplexField; import com.yahoo.schema.document.ImportedField; import com.yahoo.vespa.config.search.ImportedFieldsConfig; +import java.util.ArrayList; +import java.util.List; import java.util.Optional; import static com.yahoo.schema.document.ComplexAttributeFieldUtils.isArrayOfSimpleStruct; @@ -40,8 +42,11 @@ public class ImportedFields extends Derived implements ImportedFieldsConfig.Prod @Override public void getConfig(ImportedFieldsConfig.Builder builder) { + // Replace if (importedFields.isPresent()) { - importedFields.get().fields().forEach( (name, field) -> considerField(builder, field)); + List<ImportedField> imported = new ArrayList<>(); + importedFields.get().fields().forEach( (name, field) -> considerField(imported, field)); + builder.attribute(imported.stream().map(ImportedFields::createAttributeBuilder).toList()); } } @@ -49,47 +54,46 @@ public class ImportedFields extends Derived implements ImportedFieldsConfig.Prod return fieldName.indexOf('.') != -1; } - private static void considerField(ImportedFieldsConfig.Builder builder, ImportedField field) { + private static void considerField(List<ImportedField> importedFields, ImportedField field) { if (field instanceof ImportedComplexField) { - considerComplexField(builder, (ImportedComplexField) field); + considerComplexField(importedFields, (ImportedComplexField) field); } else { - considerSimpleField(builder, field); + considerSimpleField(importedFields, field); } } - private static void considerComplexField(ImportedFieldsConfig.Builder builder, ImportedComplexField field) { + private static void considerComplexField(List<ImportedField> importedFields, ImportedComplexField field) { ImmutableSDField targetField = field.targetField(); if (GeoPos.isAnyPos(targetField)) { // no action needed } else if (isArrayOfSimpleStruct(targetField)) { - considerNestedFields(builder, field); + considerNestedFields(importedFields, field); } else if (isMapOfSimpleStruct(targetField)) { - considerSimpleField(builder, field.getNestedField("key")); - considerNestedFields(builder, field.getNestedField("value")); + considerSimpleField(importedFields, field.getNestedField("key")); + considerNestedFields(importedFields, field.getNestedField("value")); } else if (isMapOfPrimitiveType(targetField)) { - considerSimpleField(builder, field.getNestedField("key")); - considerSimpleField(builder, field.getNestedField("value")); + considerSimpleField(importedFields, field.getNestedField("key")); + considerSimpleField(importedFields, field.getNestedField("value")); } } - private static void considerNestedFields(ImportedFieldsConfig.Builder builder, ImportedField field) { - if (field instanceof ImportedComplexField) { - ImportedComplexField complexField = (ImportedComplexField) field; - complexField.getNestedFields().forEach(nestedField -> considerSimpleField(builder, nestedField)); + private static void considerNestedFields(List<ImportedField> importedFields, ImportedField field) { + if (field instanceof ImportedComplexField complexField) { + complexField.getNestedFields().forEach(nestedField -> considerSimpleField(importedFields, nestedField)); } } - private static void considerSimpleField(ImportedFieldsConfig.Builder builder, ImportedField field) { + private static void considerSimpleField(List<ImportedField> importedFields, ImportedField field) { ImmutableSDField targetField = field.targetField(); String targetFieldName = targetField.getName(); if (!isNestedFieldName(targetFieldName)) { if (targetField.doesAttributing()) { - builder.attribute.add(createAttributeBuilder(field)); + importedFields.add(field); } } else { Attribute attribute = targetField.getAttribute(); if (attribute != null) { - builder.attribute.add(createAttributeBuilder(field)); + importedFields.add(field); } } } diff --git a/config-model/src/main/java/com/yahoo/schema/derived/IndexInfo.java b/config-model/src/main/java/com/yahoo/schema/derived/IndexInfo.java index 34f485b7f02..b0cf4a0013c 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/IndexInfo.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/IndexInfo.java @@ -316,6 +316,7 @@ public class IndexInfo extends Derived implements IndexInfoConfig.Producer { @Override public void getConfig(IndexInfoConfig.Builder builder) { + // Append IndexInfoConfig.Indexinfo.Builder iiB = new IndexInfoConfig.Indexinfo.Builder(); iiB.name(getName()); for (IndexCommand command : commands) { diff --git a/config-model/src/main/java/com/yahoo/schema/derived/IndexSchema.java b/config-model/src/main/java/com/yahoo/schema/derived/IndexSchema.java index d25ada26c6c..1c22e80e579 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/IndexSchema.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/IndexSchema.java @@ -109,30 +109,33 @@ public class IndexSchema extends Derived implements IndexschemaConfig.Producer { return "indexschema"; } - @Override - public void getConfig(IndexschemaConfig.Builder icB) { - for (IndexField f : fields) { - IndexschemaConfig.Indexfield.Builder ifB = new IndexschemaConfig.Indexfield.Builder() + private static IndexschemaConfig.Indexfield.Builder createIndexFieldConfig(IndexField f) { + var ifB = new IndexschemaConfig.Indexfield.Builder() .name(f.getName()) .datatype(IndexschemaConfig.Indexfield.Datatype.Enum.valueOf(f.getType())) .prefix(f.hasPrefix()) .phrases(false) .positions(true) .interleavedfeatures(f.useInterleavedFeatures()); - if (!f.getCollectionType().equals("SINGLE")) { - ifB.collectiontype(IndexschemaConfig.Indexfield.Collectiontype.Enum.valueOf(f.getCollectionType())); - } - icB.indexfield(ifB); - } - for (FieldSet fieldSet : fieldSets.values()) { - IndexschemaConfig.Fieldset.Builder fsB = new IndexschemaConfig.Fieldset.Builder() - .name(fieldSet.getName()); - for (String f : fieldSet.getFieldNames()) { - fsB.field(new IndexschemaConfig.Fieldset.Field.Builder() - .name(f)); - } - icB.fieldset(fsB); + if (!f.getCollectionType().equals("SINGLE")) { + ifB.collectiontype(IndexschemaConfig.Indexfield.Collectiontype.Enum.valueOf(f.getCollectionType())); } + return ifB; + } + + private static IndexschemaConfig.Fieldset.Builder createFieldSetConfig(FieldSet fieldSet) { + var fsB = new IndexschemaConfig.Fieldset.Builder().name(fieldSet.getName()); + for (String f : fieldSet.getFieldNames()) { + fsB.field(new IndexschemaConfig.Fieldset.Field.Builder().name(f)); + } + return fsB; + } + + @Override + public void getConfig(IndexschemaConfig.Builder icB) { + // Replace + icB.indexfield(fields.stream().map(IndexSchema::createIndexFieldConfig).toList()); + icB.fieldset(fieldSets.values().stream().map(IndexSchema::createFieldSetConfig).toList()); } static List<Field> flattenField(Field field) { diff --git a/config-model/src/main/java/com/yahoo/schema/derived/IndexingScript.java b/config-model/src/main/java/com/yahoo/schema/derived/IndexingScript.java index 9f41f4d3542..7245e3f266d 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/IndexingScript.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/IndexingScript.java @@ -95,6 +95,7 @@ public final class IndexingScript extends Derived implements IlscriptsConfig.Pro @Override public void getConfig(IlscriptsConfig.Builder configBuilder) { + // Append IlscriptsConfig.Ilscript.Builder ilscriptBuilder = new IlscriptsConfig.Ilscript.Builder(); ilscriptBuilder.doctype(getName()); ilscriptBuilder.docfield(docFields); diff --git a/config-model/src/main/java/com/yahoo/schema/derived/Juniperrc.java b/config-model/src/main/java/com/yahoo/schema/derived/Juniperrc.java index ab1bd256ef9..7eefb9e3396 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/Juniperrc.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/Juniperrc.java @@ -44,18 +44,21 @@ public class Juniperrc extends Derived implements JuniperrcConfig.Producer { @Override protected String getDerivedName() { return "juniperrc"; } + private static JuniperrcConfig.Override.Builder createOverride(String name) { + return new JuniperrcConfig.Override.Builder() + .fieldname(name) + .length(64*Mb) + .max_matches(1) + .min_length(8192) + .surround_max(64*Mb); + } + @Override public void getConfig(JuniperrcConfig.Builder builder) { - if (boldingFields.size() != 0) { + // Replace + if (!boldingFields.isEmpty()) { builder.prefix(true); - for (String name : boldingFields) { - builder.override(new JuniperrcConfig.Override.Builder() - .fieldname(name) - .length(64*Mb) - .max_matches(1) - .min_length(8192) - .surround_max(64*Mb)); - } + builder.override(boldingFields.stream().map(Juniperrc::createOverride).toList()); } } diff --git a/config-model/src/main/java/com/yahoo/schema/derived/SchemaInfo.java b/config-model/src/main/java/com/yahoo/schema/derived/SchemaInfo.java index d51526a4ed4..fb6d7fb70ec 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/SchemaInfo.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/SchemaInfo.java @@ -65,6 +65,7 @@ public final class SchemaInfo extends Derived implements SchemaInfoConfig.Produc @Override public void getConfig(SchemaInfoConfig.Builder builder) { + // Append var schemaBuilder = new SchemaInfoConfig.Schema.Builder(); schemaBuilder.name(schema.getName()); addFieldsConfig(schemaBuilder); diff --git a/config-model/src/main/java/com/yahoo/schema/derived/Summaries.java b/config-model/src/main/java/com/yahoo/schema/derived/Summaries.java index 7b96f5ab654..51c648aa1be 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/Summaries.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/Summaries.java @@ -41,11 +41,10 @@ public class Summaries extends Derived implements SummaryConfig.Producer { @Override public void getConfig(SummaryConfig.Builder builder) { + // Replace builder.defaultsummaryid(summaries.isEmpty() ? -1 : summaries.get(0).hashCode()); builder.usev8geopositions(useV8GeoPositions); - for (SummaryClass summaryClass : summaries) { - builder.classes(summaryClass.getSummaryClassConfig()); - } + builder.classes(summaries.stream().map(SummaryClass::getSummaryClassConfig).toList()); } } diff --git a/config-model/src/main/java/com/yahoo/schema/derived/VsmFields.java b/config-model/src/main/java/com/yahoo/schema/derived/VsmFields.java index f2ad6a3ba2f..b2b2e9d3a14 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/VsmFields.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/VsmFields.java @@ -108,12 +108,9 @@ public class VsmFields extends Derived implements VsmfieldsConfig.Producer { @Override public void getConfig(VsmfieldsConfig.Builder vsB) { - for (StreamingField streamingField : fields.values()) { - vsB.fieldspec(streamingField.getFieldSpecConfig()); - } - for (StreamingDocumentType streamingDocType : doctypes.values()) { - vsB.documenttype(streamingDocType.getDocTypeConfig()); - } + // Replace + vsB.fieldspec(fields.values().stream().map(StreamingField::getFieldSpecConfig).toList()); + vsB.documenttype(doctypes.values().stream().map(StreamingDocumentType::getDocTypeConfig).toList()); } private static boolean isAttributeField(ImmutableSDField field, boolean isStructField, boolean ignoreAttributeAspect) { diff --git a/config-model/src/main/java/com/yahoo/schema/derived/VsmSummary.java b/config-model/src/main/java/com/yahoo/schema/derived/VsmSummary.java index e3d7becd86a..248cca33bc6 100644 --- a/config-model/src/main/java/com/yahoo/schema/derived/VsmSummary.java +++ b/config-model/src/main/java/com/yahoo/schema/derived/VsmSummary.java @@ -96,14 +96,14 @@ public class VsmSummary extends Derived implements VsmsummaryConfig.Producer { @Override public void getConfig(VsmsummaryConfig.Builder vB) { - for (Map.Entry<SummaryField, List<String>> entry : summaryMap.entrySet()) { - VsmsummaryConfig.Fieldmap.Builder fmB = new VsmsummaryConfig.Fieldmap.Builder().summary(entry.getKey().getName()); - for (String field : entry.getValue()) { - fmB.document(new VsmsummaryConfig.Fieldmap.Document.Builder().field(field)); - } - fmB.command(VsmsummaryConfig.Fieldmap.Command.Enum.valueOf(entry.getKey().getVsmCommand().toString())); - vB.fieldmap(fmB); - } + // Replace + vB.fieldmap( + summaryMap.entrySet().stream().map(entry -> new VsmsummaryConfig.Fieldmap.Builder() + .summary(entry.getKey().getName()) + .document(entry.getValue().stream().map(field -> new VsmsummaryConfig.Fieldmap.Document.Builder().field(field)).toList()) + .command(VsmsummaryConfig.Fieldmap.Command.Enum.valueOf(entry.getKey().getVsmCommand().toString())) + ).toList() + ); } } |