public ImmutableSet<ClusterBlock> global(ClusterBlockLevel level) { return levelHolders[level.id()].global(); }
public ImmutableMap<String, ImmutableSet<ClusterBlock>> indices(ClusterBlockLevel level) { return levelHolders[level.id()].indices(); }
@Override public void writeTo(StreamOutput out) throws IOException { out.writeVInt(id); out.writeString(description); out.writeVInt(levels.size()); for (ClusterBlockLevel level : levels) { out.writeVInt(level.id()); } out.writeBoolean(retryable); out.writeBoolean(disableStatePersistence); RestStatus.writeTo(out, status); }
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()); } }