package org.infinispan.server.hotrod.iteration;
import java.util.BitSet;
import java.util.List;
import java.util.Set;
import org.infinispan.container.entries.CacheEntry;
import org.infinispan.server.hotrod.OperationStatus;
/**
* @author wburns
* @since 9.0
*/
public class IterableIterationResult {
private final Set<Integer> finishedSegments;
private final OperationStatus statusCode;
private final List<CacheEntry> entries;
private final CompatInfo compatInfo;
private final boolean metadata;
IterableIterationResult(Set<Integer> finishedSegments, OperationStatus statusCode, List<CacheEntry> entries, CompatInfo compatInfo, boolean metadata) {
this.finishedSegments = finishedSegments;
this.statusCode = statusCode;
this.entries = entries;
this.compatInfo = compatInfo;
this.metadata = metadata;
}
public OperationStatus getStatusCode() {
return statusCode;
}
public List<CacheEntry> getEntries() {
return entries;
}
public boolean isMetadata() {
return metadata;
}
public boolean isCompatEnabled() {
return compatInfo.enabled;
}
public byte[] segmentsToBytes() {
BitSet bs = new BitSet();
finishedSegments.stream().forEach(bs::set);
return bs.toByteArray();
}
public Object unbox(Object value) {
return compatInfo.hotRodTypeConverter.get().unboxValue(value);
}
}