private static EnumMap<ClusterBlockLevel, ImmutableLevelHolder> generateLevelHolders(Set<ClusterBlock> global, ImmutableOpenMap<String, Set<ClusterBlock>> indicesBlocks) { EnumMap<ClusterBlockLevel, ImmutableLevelHolder> levelHolders = new EnumMap<>(ClusterBlockLevel.class); for (final ClusterBlockLevel level : ClusterBlockLevel.values()) { Predicate<ClusterBlock> containsLevel = block -> block.contains(level); Set<ClusterBlock> newGlobal = unmodifiableSet(global.stream() .filter(containsLevel) .collect(toSet())); ImmutableOpenMap.Builder<String, Set<ClusterBlock>> indicesBuilder = ImmutableOpenMap.builder(); for (ObjectObjectCursor<String, Set<ClusterBlock>> entry : indicesBlocks) { indicesBuilder.put(entry.key, unmodifiableSet(entry.value.stream() .filter(containsLevel) .collect(toSet()))); } levelHolders.put(level, new ImmutableLevelHolder(newGlobal, indicesBuilder.build())); } return levelHolders; }
private static EnumMap<ClusterBlockLevel, ImmutableLevelHolder> generateLevelHolders(Set<ClusterBlock> global, ImmutableOpenMap<String, Set<ClusterBlock>> indicesBlocks) { EnumMap<ClusterBlockLevel, ImmutableLevelHolder> levelHolders = new EnumMap<>(ClusterBlockLevel.class); for (final ClusterBlockLevel level : ClusterBlockLevel.values()) { Predicate<ClusterBlock> containsLevel = block -> block.contains(level); Set<ClusterBlock> newGlobal = unmodifiableSet(global.stream() .filter(containsLevel) .collect(toSet())); ImmutableOpenMap.Builder<String, Set<ClusterBlock>> indicesBuilder = ImmutableOpenMap.builder(); for (ObjectObjectCursor<String, Set<ClusterBlock>> entry : indicesBlocks) { indicesBuilder.put(entry.key, unmodifiableSet(entry.value.stream() .filter(containsLevel) .collect(toSet()))); } levelHolders.put(level, new ImmutableLevelHolder(newGlobal, indicesBuilder.build())); } return levelHolders; }
private static EnumMap<ClusterBlockLevel, ImmutableLevelHolder> generateLevelHolders(Set<ClusterBlock> global, ImmutableOpenMap<String, Set<ClusterBlock>> indicesBlocks) { EnumMap<ClusterBlockLevel, ImmutableLevelHolder> levelHolders = new EnumMap<>(ClusterBlockLevel.class); for (final ClusterBlockLevel level : ClusterBlockLevel.values()) { Predicate<ClusterBlock> containsLevel = block -> block.contains(level); Set<ClusterBlock> newGlobal = unmodifiableSet(global.stream() .filter(containsLevel) .collect(toSet())); ImmutableOpenMap.Builder<String, Set<ClusterBlock>> indicesBuilder = ImmutableOpenMap.builder(); for (ObjectObjectCursor<String, Set<ClusterBlock>> entry : indicesBlocks) { indicesBuilder.put(entry.key, unmodifiableSet(entry.value.stream() .filter(containsLevel) .collect(toSet()))); } levelHolders.put(level, new ImmutableLevelHolder(newGlobal, indicesBuilder.build())); } return levelHolders; }
private static ImmutableLevelHolder[] generateLevelHolders(Set<ClusterBlock> global, ImmutableOpenMap<String, Set<ClusterBlock>> indicesBlocks) { ImmutableLevelHolder[] levelHolders = new ImmutableLevelHolder[ClusterBlockLevel.values().length]; for (final ClusterBlockLevel level : ClusterBlockLevel.values()) { Predicate<ClusterBlock> containsLevel = block -> block.contains(level); Set<ClusterBlock> newGlobal = unmodifiableSet(global.stream() .filter(containsLevel) .collect(toSet())); ImmutableOpenMap.Builder<String, Set<ClusterBlock>> indicesBuilder = ImmutableOpenMap.builder(); for (ObjectObjectCursor<String, Set<ClusterBlock>> entry : indicesBlocks) { indicesBuilder.put(entry.key, unmodifiableSet(entry.value.stream() .filter(containsLevel) .collect(toSet()))); } levelHolders[level.ordinal()] = new ImmutableLevelHolder(newGlobal, indicesBuilder.build()); } return levelHolders; }
ClusterBlocks(ImmutableSet<ClusterBlock> global, ImmutableMap<String, ImmutableSet<ClusterBlock>> indicesBlocks) { this.global = global; this.indicesBlocks = indicesBlocks; levelHolders = new ImmutableLevelHolder[ClusterBlockLevel.values().length]; for (ClusterBlockLevel level : ClusterBlockLevel.values()) { ImmutableSet.Builder<ClusterBlock> globalBuilder = ImmutableSet.builder(); for (ClusterBlock block : global) { if (block.contains(level)) { globalBuilder.add(block); } } ImmutableMap.Builder<String, ImmutableSet<ClusterBlock>> indicesBuilder = ImmutableMap.builder(); for (Map.Entry<String, ImmutableSet<ClusterBlock>> entry : indicesBlocks.entrySet()) { ImmutableSet.Builder<ClusterBlock> indexBuilder = ImmutableSet.builder(); for (ClusterBlock block : entry.getValue()) { if (block.contains(level)) { indexBuilder.add(block); } } indicesBuilder.put(entry.getKey(), indexBuilder.build()); } levelHolders[level.id()] = new ImmutableLevelHolder(globalBuilder.build(), indicesBuilder.build()); } }