private SortedMap<String, AliasOrIndex> buildAliasAndIndexLookup() { SortedMap<String, AliasOrIndex> aliasAndIndexLookup = new TreeMap<>(); for (ObjectCursor<IndexMetaData> cursor : indices.values()) { IndexMetaData indexMetaData = cursor.value; AliasOrIndex existing = aliasAndIndexLookup.put(indexMetaData.getIndex().getName(), new AliasOrIndex.Index(indexMetaData)); assert existing == null : "duplicate for " + indexMetaData.getIndex(); for (ObjectObjectCursor<String, AliasMetaData> aliasCursor : indexMetaData.getAliases()) { AliasMetaData aliasMetaData = aliasCursor.value; aliasAndIndexLookup.compute(aliasMetaData.getAlias(), (aliasName, alias) -> { if (alias == null) { return new AliasOrIndex.Alias(aliasMetaData, indexMetaData); } else { assert alias instanceof AliasOrIndex.Alias : alias.getClass().getName(); ((AliasOrIndex.Alias) alias).addIndex(indexMetaData); return alias; } }); } } aliasAndIndexLookup.values().stream().filter(AliasOrIndex::isAlias) .forEach(alias -> ((AliasOrIndex.Alias) alias).computeAndValidateWriteIndex()); return aliasAndIndexLookup; }
for (ObjectCursor<IndexMetaData> cursor : indices.values()) { IndexMetaData indexMetaData = cursor.value; aliasAndIndexLookup.put(indexMetaData.getIndex().getName(), new AliasOrIndex.Index(indexMetaData)); } else if (aliasOrIndex instanceof AliasOrIndex.Index) { AliasOrIndex.Index index = (AliasOrIndex.Index) aliasOrIndex; throw new IllegalStateException("index and alias names need to be unique, but alias [" + aliasMetaData.getAlias() + "] and index " + index.getIndex().getIndex() + " have the same name"); } else { throw new IllegalStateException("unexpected alias [" + aliasMetaData.getAlias() + "][" + aliasOrIndex + "]");
for (ObjectCursor<IndexMetaData> cursor : indices.values()) { IndexMetaData indexMetaData = cursor.value; aliasAndIndexLookup.put(indexMetaData.getIndex(), new AliasOrIndex.Index(indexMetaData)); } else if (aliasOrIndex instanceof AliasOrIndex.Index) { AliasOrIndex.Index index = (AliasOrIndex.Index) aliasOrIndex; throw new IllegalStateException("index and alias names need to be unique, but alias [" + aliasMetaData.getAlias() + "] and index [" + index.getIndex().getIndex() + "] have the same name"); } else { throw new IllegalStateException("unexpected alias [" + aliasMetaData.getAlias() + "][" + aliasOrIndex + "]");
private SortedMap<String, AliasOrIndex> buildAliasAndIndexLookup() { SortedMap<String, AliasOrIndex> aliasAndIndexLookup = new TreeMap<>(); for (ObjectCursor<IndexMetaData> cursor : indices.values()) { IndexMetaData indexMetaData = cursor.value; AliasOrIndex existing = aliasAndIndexLookup.put(indexMetaData.getIndex().getName(), new AliasOrIndex.Index(indexMetaData)); assert existing == null : "duplicate for " + indexMetaData.getIndex(); for (ObjectObjectCursor<String, AliasMetaData> aliasCursor : indexMetaData.getAliases()) { AliasMetaData aliasMetaData = aliasCursor.value; aliasAndIndexLookup.compute(aliasMetaData.getAlias(), (aliasName, alias) -> { if (alias == null) { return new AliasOrIndex.Alias(aliasMetaData, indexMetaData); } else { assert alias instanceof AliasOrIndex.Alias : alias.getClass().getName(); ((AliasOrIndex.Alias) alias).addIndex(indexMetaData); return alias; } }); } } aliasAndIndexLookup.values().stream().filter(AliasOrIndex::isAlias) .forEach(alias -> ((AliasOrIndex.Alias) alias).computeAndValidateWriteIndex()); return aliasAndIndexLookup; }
private SortedMap<String, AliasOrIndex> buildAliasAndIndexLookup() { SortedMap<String, AliasOrIndex> aliasAndIndexLookup = new TreeMap<>(); for (ObjectCursor<IndexMetaData> cursor : indices.values()) { IndexMetaData indexMetaData = cursor.value; AliasOrIndex existing = aliasAndIndexLookup.put(indexMetaData.getIndex().getName(), new AliasOrIndex.Index(indexMetaData)); assert existing == null : "duplicate for " + indexMetaData.getIndex(); for (ObjectObjectCursor<String, AliasMetaData> aliasCursor : indexMetaData.getAliases()) { AliasMetaData aliasMetaData = aliasCursor.value; aliasAndIndexLookup.compute(aliasMetaData.getAlias(), (aliasName, alias) -> { if (alias == null) { return new AliasOrIndex.Alias(aliasMetaData, indexMetaData); } else { assert alias instanceof AliasOrIndex.Alias : alias.getClass().getName(); ((AliasOrIndex.Alias) alias).addIndex(indexMetaData); return alias; } }); } } aliasAndIndexLookup.values().stream().filter(AliasOrIndex::isAlias) .forEach(alias -> ((AliasOrIndex.Alias) alias).computeAndValidateWriteIndex()); return aliasAndIndexLookup; }