aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/schema
diff options
context:
space:
mode:
Diffstat (limited to 'config-model/src/main/java/com/yahoo/schema')
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/ImportedFields.java38
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/IndexInfo.java1
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/IndexSchema.java37
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/IndexingScript.java1
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/Juniperrc.java21
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/SchemaInfo.java1
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/Summaries.java5
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/VsmFields.java9
-rw-r--r--config-model/src/main/java/com/yahoo/schema/derived/VsmSummary.java16
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()
+ );
}
}