@Override public boolean hasNext() { // http://code.google.com/p/google-collections/issues/detail?id=151 // current.hasNext() might be relatively expensive, worth minimizing. boolean currentHasNext; // checkNotNull eager for GWT // note: it must be here & not where 'current' is assigned, // because otherwise we'll have called inputs.next() before throwing // the first NPE, and the next time around we'll call inputs.next() // again, incorrectly moving beyond the error. while (!(currentHasNext = Preconditions.checkNotNull(current).hasNext()) && inputs.hasNext()) { current = inputs.next(); } return currentHasNext; } @Override
@Override public void remove() { Preconditions.checkState(removeFrom != null, "no calls to next() since last call to remove()"); removeFrom.remove(); removeFrom = null; } };
@Override public void close() { if (curr != null) { curr.close(); } }
@Override public ByteBuf nextChunk() throws Exception { ByteBuf startBuffer = Unpooled.EMPTY_BUFFER; if (!hasStarted) { hasStarted = true; startBuffer = Unpooled.copiedBuffer(onWriteStart()); } if (logEventIter.hasNext()) { ByteBuf eventsBuffer = writeLogEvents(logEventIter); return startBuffer.isReadable() ? Unpooled.wrappedBuffer(startBuffer, eventsBuffer) : eventsBuffer; } if (!hasFinished) { hasFinished = true; return Unpooled.wrappedBuffer(startBuffer, onWriteFinish()); } return Unpooled.EMPTY_BUFFER; }
@Override public T next() { if (!hasNext()) { throw new NoSuchElementException(); } removeFrom = current; return current.next(); } @Override
@Override public void close() { rawIterator.close(); } }
@Override public ByteBuf nextChunk() throws Exception { ByteBuf startBuffer = Unpooled.EMPTY_BUFFER; if (!hasStarted) { hasStarted = true; startBuffer = Unpooled.copiedBuffer(onWriteStart()); } if (logEventIter.hasNext()) { ByteBuf eventsBuffer = writeLogEvents(logEventIter); return startBuffer.isReadable() ? Unpooled.wrappedBuffer(startBuffer, eventsBuffer) : eventsBuffer; } if (!hasFinished) { hasFinished = true; return Unpooled.wrappedBuffer(startBuffer, onWriteFinish()); } return Unpooled.EMPTY_BUFFER; }
@Override public T next() { if (!hasNext()) { throw new NoSuchElementException(); } removeFrom = current; return current.next(); } @Override
@Override public boolean hasNext() { // http://code.google.com/p/google-collections/issues/detail?id=151 // current.hasNext() might be relatively expensive, worth minimizing. boolean currentHasNext; // checkNotNull eager for GWT // note: it must be here & not where 'current' is assigned, // because otherwise we'll have called inputs.next() before throwing // the first NPE, and the next time around we'll call inputs.next() // again, incorrectly moving beyond the error. while (!(currentHasNext = Preconditions.checkNotNull(current).hasNext()) && inputs.hasNext()) { current = inputs.next(); } return currentHasNext; } @Override
@Override public void close() { if (curr != null) { curr.close(); } }
private void assertDatasetIsEmpty(NamespaceId namespaceId, String datasetName) throws Exception { DataSetManager<KeyValueTable> outTableManager = getDataset(namespaceId.dataset(datasetName)); KeyValueTable outputTable = outTableManager.get(); try (CloseableIterator<KeyValue<byte[], byte[]>> scanner = outputTable.scan(null, null)) { Assert.assertFalse(scanner.hasNext()); } }
@Override public void remove() { Preconditions.checkState(removeFrom != null, "no calls to next() since last call to remove()"); removeFrom.remove(); removeFrom = null; } };
@Override protected Message computeNext() { if (!rawIterator.hasNext()) { return endOfData(); } final RawMessage rawMessage = rawIterator.next(); return new Message() { @Override public String getId() { return Bytes.toHexString(rawMessage.getId()); } @Override public String getPayloadAsString(Charset charset) { return new String(getPayload(), charset); } @Override public String getPayloadAsString() { return getPayloadAsString(StandardCharsets.UTF_8); } @Override public byte[] getPayload() { return rawMessage.getPayload(); } @Override public String toString() { return "Message{" + "id=" + getId() + ",payload=" + getPayloadAsString() + "}"; } }; }
@Override public void close() { rawIterator.close(); } }
@Override protected Message computeNext() { if (!rawIterator.hasNext()) { return endOfData(); } final RawMessage rawMessage = rawIterator.next(); return new Message() { @Override public String getId() { return Bytes.toHexString(rawMessage.getId()); } @Override public String getPayloadAsString(Charset charset) { return new String(getPayload(), charset); } @Override public String getPayloadAsString() { return getPayloadAsString(StandardCharsets.UTF_8); } @Override public byte[] getPayload() { return rawMessage.getPayload(); } @Override public String toString() { return "Message{" + "id=" + getId() + ",payload=" + getPayloadAsString() + "}"; } }; }
private Set<Job> toSet(CloseableIterator<Job> jobIter, boolean includeToBeDeleted) { try { Set<Job> jobList = new HashSet<>(); while (jobIter.hasNext()) { Job job = jobIter.next(); if (includeToBeDeleted || !job.isToBeDeleted()) { jobList.add(job); } } return jobList; } finally { jobIter.close(); } } }
public void close() { logEventIter.close(); }