public InflatableSet<T> build() { InflatableSet<T> set = new InflatableSet<T>(list); // make sure no further insertions are possible list = Collections.emptyList(); return set; } }
private void toInflatedState() { if (state == State.INFLATED) { return; } state = State.INFLATED; inflateIfNeeded(); invalidateIterators(); }
@Override public boolean contains(Object o) { if (state == State.COMPACT) { toHybridState(); } return inflatedSet.contains(o); }
@Override public Operation createPartitionOperation(int partition) { if (partitionIdToKeysMap == null) { // Index query failed to run because of ongoing migrations or we are // creating an operation on the caller node. return new PartitionWideEntryWithPredicateOperation(name, entryProcessor, predicate); } // index query succeeded List<Data> keyList = partitionIdToKeysMap.get(partition); assert keyList != null : "unexpected partition " + partition + ", expected partitions " + partitionIdToKeysMap.keySet(); Set<Data> keys = keyList.isEmpty() ? Collections.<Data>emptySet() : newBuilder(keyList).build(); return new MultipleEntryWithPredicateOperation(name, keys, entryProcessor, predicate); }
@Override public boolean add(T t) { toInflatedState(); return inflatedSet.add(t); }
private void toHybridState() { if (state == State.HYBRID) { return; } state = State.HYBRID; inflateIfNeeded(); }
@Override public Operation createPartitionOperation(int partition) { if (partitionIdToKeysMap == null) { // Index query failed to run because of ongoing migrations or we are // creating an operation on the caller node. return new PartitionWideEntryWithPredicateOperation(name, entryProcessor, predicate); } // index query succeeded List<Data> keyList = partitionIdToKeysMap.get(partition); assert keyList != null : "unexpected partition " + partition + ", expected partitions " + partitionIdToKeysMap.keySet(); Set<Data> keys = keyList.isEmpty() ? Collections.<Data>emptySet() : newBuilder(keyList).build(); return new MultipleEntryWithPredicateOperation(name, keys, entryProcessor, predicate); }
@Override public boolean add(T t) { toInflatedState(); return inflatedSet.add(t); }
private void toHybridState() { if (state == State.HYBRID) { return; } state = State.HYBRID; inflateIfNeeded(); }
private static Set<Map.Entry<Data, Data>> unpackResults(List<Object> results, int numOfEntries) { InflatableSet.Builder<Map.Entry<Data, Data>> builder = InflatableSet.newBuilder(numOfEntries); for (Object result : results) { for (QueryResultRow row : (QueryResult) result) { builder.add(new AbstractMap.SimpleEntry<Data, Data>(row.getKey(), row.getValue())); } } return builder.build(); }
private void toInflatedState() { if (state == State.INFLATED) { return; } state = State.INFLATED; inflateIfNeeded(); invalidateIterators(); }
public InflatableSet<T> build() { InflatableSet<T> set = new InflatableSet<T>(list); // make sure no further insertions are possible list = Collections.emptyList(); return set; } }
@Override public boolean contains(Object o) { if (state == State.COMPACT) { toHybridState(); } return inflatedSet.contains(o); }
private static Set<Data> unpackResults(List<Object> results, int numOfEntries) { InflatableSet.Builder<Data> builder = InflatableSet.newBuilder(numOfEntries); for (Object result : results) { for (QueryResultRow row : (QueryResult) result) { builder.add(row.getKey()); } } return builder.build(); }
/** * Returns a shallow copy of this <tt>InflatableSet</tt> instance: the keys and * values themselves are not cloned. * * @return a shallow copy of this set */ @Override @SuppressFBWarnings(value = "CN_IDIOM", justification = "Deliberate, documented contract violation") @SuppressWarnings({"checkstyle:superclone", "CloneDoesntCallSuperClone"}) protected Object clone() { return new InflatableSet<T>(this); }
private static Set<Data> unpackResults(List<Object> results, int numOfEntries) { InflatableSet.Builder<Data> builder = InflatableSet.newBuilder(numOfEntries); for (Object result : results) { for (QueryResultRow row : (QueryResult) result) { builder.add(row.getKey()); } } return builder.build(); }
/** * Returns a shallow copy of this <tt>InflatableSet</tt> instance: the keys and * values themselves are not cloned. * * @return a shallow copy of this set */ @Override @SuppressFBWarnings(value = "CN_IDIOM", justification = "Deliberate, documented contract violation") @SuppressWarnings({"checkstyle:superclone", "CloneDoesntCallSuperClone"}) protected Object clone() { return new InflatableSet<T>(this); }
private static Set<Map.Entry<Data, Data>> unpackResults(List<Object> results, int numOfEntries) { InflatableSet.Builder<Map.Entry<Data, Data>> builder = InflatableSet.newBuilder(numOfEntries); for (Object result : results) { for (QueryResultRow row : (QueryResult) result) { builder.add(new AbstractMap.SimpleEntry<Data, Data>(row.getKey(), row.getValue())); } } return builder.build(); }
@Override public Set<Entry<K, V>> entrySet() { ClientMessage request = MapEntrySetCodec.encodeRequest(name); ClientMessage response = invoke(request); MapEntrySetCodec.ResponseParameters resultParameters = MapEntrySetCodec.decodeResponse(response); InflatableSet.Builder<Entry<K, V>> setBuilder = InflatableSet.newBuilder(resultParameters.response.size()); InternalSerializationService serializationService = getContext().getSerializationService(); for (Entry<Data, Data> row : resultParameters.response) { LazyMapEntry<K, V> entry = new LazyMapEntry<K, V>(row.getKey(), row.getValue(), serializationService); setBuilder.add(entry); } return setBuilder.build(); }
@Override public Set<Entry<K, V>> entrySet() { ClientMessage request = MapEntrySetCodec.encodeRequest(name); ClientMessage response = invoke(request); MapEntrySetCodec.ResponseParameters resultParameters = MapEntrySetCodec.decodeResponse(response); InflatableSet.Builder<Entry<K, V>> setBuilder = InflatableSet.newBuilder(resultParameters.response.size()); InternalSerializationService serializationService = ((InternalSerializationService) getContext() .getSerializationService()); for (Entry<Data, Data> row : resultParameters.response) { LazyMapEntry<K, V> entry = new LazyMapEntry<K, V>(row.getKey(), row.getValue(), serializationService); setBuilder.add(entry); } return setBuilder.build(); }