srcBuff = (T[]) o; srcBuffPos = 0; return get(dstBuff, dstCountLimit); } else { // there are single item has been got from the stream if(dstCountLimit > 0) {
@Override @SuppressWarnings("unchecked") public final T get() throws IOException { if(srcBuff != null && srcBuffPos < srcBuff.length) { return srcBuff[srcBuffPos ++]; } else { try { final Object o = itemsSrc.readUnshared(); if(o instanceof Object[]) { srcBuff = (T[]) o; srcBuffPos = 0; return get(); } else { return (T) o; } } catch(final ClassNotFoundException | ClassCastException e) { throw new InvalidClassException(e.getMessage()); } } }