Optional<Tuple<Map<String, BytesReference>, Set<String>>> calculateTemplateChanges( ImmutableOpenMap<String, IndexTemplateMetaData> templates) { // collect current templates Map<String, IndexTemplateMetaData> existingMap = new HashMap<>(); for (ObjectObjectCursor<String, IndexTemplateMetaData> customCursor : templates) { existingMap.put(customCursor.key, customCursor.value); } // upgrade global custom meta data Map<String, IndexTemplateMetaData> upgradedMap = indexTemplateMetaDataUpgraders.apply(existingMap); if (upgradedMap.equals(existingMap) == false) { Set<String> deletes = new HashSet<>(); Map<String, BytesReference> changes = new HashMap<>(); // remove templates if needed existingMap.keySet().forEach(s -> { if (upgradedMap.containsKey(s) == false) { deletes.add(s); } }); upgradedMap.forEach((key, value) -> { if (value.equals(existingMap.get(key)) == false) { changes.put(key, toBytesReference(value)); } }); return Optional.of(new Tuple<>(changes, deletes)); } return Optional.empty(); }
Optional<Tuple<Map<String, BytesReference>, Set<String>>> calculateTemplateChanges( ImmutableOpenMap<String, IndexTemplateMetaData> templates) { // collect current templates Map<String, IndexTemplateMetaData> existingMap = new HashMap<>(); for (ObjectObjectCursor<String, IndexTemplateMetaData> customCursor : templates) { existingMap.put(customCursor.key, customCursor.value); } // upgrade global custom meta data Map<String, IndexTemplateMetaData> upgradedMap = indexTemplateMetaDataUpgraders.apply(existingMap); if (upgradedMap.equals(existingMap) == false) { Set<String> deletes = new HashSet<>(); Map<String, BytesReference> changes = new HashMap<>(); // remove templates if needed existingMap.keySet().forEach(s -> { if (upgradedMap.containsKey(s) == false) { deletes.add(s); } }); upgradedMap.forEach((key, value) -> { if (value.equals(existingMap.get(key)) == false) { changes.put(key, toBytesReference(value)); } }); return Optional.of(new Tuple<>(changes, deletes)); } return Optional.empty(); }
Optional<Tuple<Map<String, BytesReference>, Set<String>>> calculateTemplateChanges( ImmutableOpenMap<String, IndexTemplateMetaData> templates) { // collect current templates Map<String, IndexTemplateMetaData> existingMap = new HashMap<>(); for (ObjectObjectCursor<String, IndexTemplateMetaData> customCursor : templates) { existingMap.put(customCursor.key, customCursor.value); } // upgrade global custom meta data Map<String, IndexTemplateMetaData> upgradedMap = indexTemplateMetaDataUpgraders.apply(existingMap); if (upgradedMap.equals(existingMap) == false) { Set<String> deletes = new HashSet<>(); Map<String, BytesReference> changes = new HashMap<>(); // remove templates if needed existingMap.keySet().forEach(s -> { if (upgradedMap.containsKey(s) == false) { deletes.add(s); } }); upgradedMap.forEach((key, value) -> { if (value.equals(existingMap.get(key)) == false) { changes.put(key, toBytesReference(value)); } }); return Optional.of(new Tuple<>(changes, deletes)); } return Optional.empty(); }