|
@@ -19,31 +19,34 @@ public final class MappingVisitor {
|
|
|
visitMapping(mapping, "", fieldMappingConsumer);
|
|
|
}
|
|
|
|
|
|
- private static void visitMapping(Map<String, ?> mapping, String path, BiConsumer<String, Map<String, ?>> fieldMappingConsumer) {
|
|
|
+ private static void visitMapping(final Map<String, ?> mapping,
|
|
|
+ final String path,
|
|
|
+ final BiConsumer<String, Map<String, ?>> fieldMappingConsumer) {
|
|
|
Object properties = mapping.get("properties");
|
|
|
if (properties instanceof Map) {
|
|
|
@SuppressWarnings("unchecked")
|
|
|
Map<String, ?> propertiesAsMap = (Map<String, ?>) properties;
|
|
|
- for (String field : propertiesAsMap.keySet()) {
|
|
|
- Object v = propertiesAsMap.get(field);
|
|
|
+ for (Map.Entry<String, ?> entry : propertiesAsMap.entrySet()) {
|
|
|
+ final Object v = entry.getValue();
|
|
|
if (v instanceof Map) {
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
Map<String, ?> fieldMapping = (Map<String, ?>) v;
|
|
|
- fieldMappingConsumer.accept(path + field, fieldMapping);
|
|
|
- visitMapping(fieldMapping, path + field + ".", fieldMappingConsumer);
|
|
|
+ final String prefix = path + entry.getKey();
|
|
|
+ fieldMappingConsumer.accept(prefix, fieldMapping);
|
|
|
+ visitMapping(fieldMapping, prefix + ".", fieldMappingConsumer);
|
|
|
|
|
|
// Multi fields
|
|
|
Object fieldsO = fieldMapping.get("fields");
|
|
|
if (fieldsO instanceof Map) {
|
|
|
@SuppressWarnings("unchecked")
|
|
|
Map<String, ?> fields = (Map<String, ?>) fieldsO;
|
|
|
- for (String subfield : fields.keySet()) {
|
|
|
- Object v2 = fields.get(subfield);
|
|
|
+ for (Map.Entry<String, ?> subfieldEntry : fields.entrySet()) {
|
|
|
+ Object v2 = subfieldEntry.getValue();
|
|
|
if (v2 instanceof Map) {
|
|
|
@SuppressWarnings("unchecked")
|
|
|
Map<String, ?> fieldMapping2 = (Map<String, ?>) v2;
|
|
|
- fieldMappingConsumer.accept(path + field + "." + subfield, fieldMapping2);
|
|
|
+ fieldMappingConsumer.accept(prefix + "." + subfieldEntry.getKey(), fieldMapping2);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -59,14 +62,14 @@ public final class MappingVisitor {
|
|
|
}
|
|
|
@SuppressWarnings("unchecked")
|
|
|
Map<String, ?> runtimeMappings = (Map<String, ?>) runtimeObject;
|
|
|
- for (String runtimeFieldName : runtimeMappings.keySet()) {
|
|
|
- Object runtimeFieldMappingObject = runtimeMappings.get(runtimeFieldName);
|
|
|
+ for (Map.Entry<String, ?> entry : runtimeMappings.entrySet()) {
|
|
|
+ final Object runtimeFieldMappingObject = entry.getValue();
|
|
|
if (runtimeFieldMappingObject instanceof Map == false) {
|
|
|
continue;
|
|
|
}
|
|
|
@SuppressWarnings("unchecked")
|
|
|
Map<String, ?> runtimeFieldMapping = (Map<String, ?>) runtimeFieldMappingObject;
|
|
|
- runtimeFieldMappingConsumer.accept(runtimeFieldName, runtimeFieldMapping);
|
|
|
+ runtimeFieldMappingConsumer.accept(entry.getKey(), runtimeFieldMapping);
|
|
|
}
|
|
|
}
|
|
|
}
|