From 335802427f7eebbe6ac5c4b0414617c34e48bb5f Mon Sep 17 00:00:00 2001 From: Rustam_Lotsmanenko <Rustam_Lotsmanenko@epam.com> Date: Thu, 22 Apr 2021 17:16:08 +0400 Subject: [PATCH] Change hint structure --- .../schema/converter/PropertiesProcessor.java | 10 +++++----- .../converter/config/SchemaConverterConfig.java | 2 +- .../config/SchemaConverterPropertiesConfig.java | 16 ++++++---------- .../schema/converter/tags/TypeProperty.java | 2 +- 4 files changed, 13 insertions(+), 17 deletions(-) diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessor.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessor.java index d0dd334ca..2731083d9 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessor.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/PropertiesProcessor.java @@ -40,6 +40,7 @@ public class PropertiesProcessor { private JaxRsDpsLog log; private SchemaConverterConfig schemaConverterConfig; + private static final String TYPE_KEY = "type"; private static final String DEF_PREFIX = "#/definitions/"; private static final String LINK_PREFIX = "^srn"; private static final String LINK_TYPE = "link"; @@ -174,7 +175,10 @@ public class PropertiesProcessor { Items items = entry.getValue().getItems(); if(Objects.nonNull(items.getProperties()) && !items.getProperties().isEmpty()){ - String indexingType = getFromIndexingType(entry.getValue().getIndexingType()); + Map<String, String> type = entry.getValue().getIndexingType(); + String indexingType = Objects.isNull(type) ? + schemaConverterConfig.getDefaultObjectArraysType() : + type.getOrDefault(TYPE_KEY,schemaConverterConfig.getDefaultObjectArraysType()); /*Schema item inner properties will be processed if they are present & indexingType in schema configured for processing result ex: { @@ -331,8 +335,4 @@ public class PropertiesProcessor { }; } - private String getFromIndexingType(String indexingType) { - return schemaConverterConfig.getArraysTypesMap().getOrDefault(indexingType, "[]object"); - } - } diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterConfig.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterConfig.java index 5e945aa52..f31c28b66 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterConfig.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterConfig.java @@ -11,6 +11,6 @@ public interface SchemaConverterConfig { Set<String> getSupportedArrayTypes(); Map<String, String> getSpecialDefinitionsMap(); Map<String, String> getPrimitiveTypesMap(); - Map<String, String> getArraysTypesMap(); Set<String> getProcessedArraysTypes(); + String getDefaultObjectArraysType(); } diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterPropertiesConfig.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterPropertiesConfig.java index bfcbec649..e969f8e31 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterPropertiesConfig.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/config/SchemaConverterPropertiesConfig.java @@ -20,14 +20,13 @@ public class SchemaConverterPropertiesConfig implements SchemaConverterConfig { private Set<String> supportedArrayTypes = getDefaultSupportedArrayTypes(); private Map<String, String> specialDefinitionsMap = getDefaultSpecialDefinitionsMap(); private Map<String, String> primitiveTypesMap = getDefaultPrimitiveTypesMap(); - private Map<String, String> arraysTypesMap = getDefaultArraysTypesMap(); private Set<String> processedArraysTypes = getDefaultArraysTypesForProcessing(); - + private String defaultObjectArraysType = getObjectArraysDefaultType(); private Set<String> getDefaultSkippedDefinitions() { return new HashSet<>(Arrays.asList("AbstractAnyCrsFeatureCollection", - "anyCrsGeoJsonFeatureCollection")); + "anyCrsGeoJsonFeatureCollection")); } private Set<String> getDefaultSupportedArrayTypes() { @@ -59,14 +58,11 @@ public class SchemaConverterPropertiesConfig implements SchemaConverterConfig { return defaultPrimitiveTypesMap; } - private Map<String, String> getDefaultArraysTypesMap() { - Map<String, String> defaultArrayTypesMap = new HashMap<>(); - defaultArrayTypesMap.put("x-type-flattened","flattened"); - defaultArrayTypesMap.put("x-type-nested","nested"); - return defaultArrayTypesMap; + private Set<String> getDefaultArraysTypesForProcessing() { + return new HashSet<>(Arrays.asList("nested")); } - private Set<String> getDefaultArraysTypesForProcessing(){ - return new HashSet<>(Arrays.asList("nested")); + private String getObjectArraysDefaultType() { + return "[]object"; } } diff --git a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/tags/TypeProperty.java b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/tags/TypeProperty.java index af9ec6bd7..91d10c555 100644 --- a/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/tags/TypeProperty.java +++ b/indexer-core/src/main/java/org/opengroup/osdu/indexer/schema/converter/tags/TypeProperty.java @@ -22,7 +22,7 @@ import lombok.Data; @Data public class TypeProperty { @JsonProperty("x-osdu-indexing") - private String indexingType; + private Map<String, String> indexingType; private String type; private String pattern; private String format; -- GitLab