/** Get and remove first element in queue; override FastQueue.remove(); * it's the same, just checks for backtracking. */ public T remove() { T o = elementAt(0); p++; // have we hit end of buffer and not backtracking? if ( p == data.size() && markDepth==0 ) { // if so, it's an opportunity to start filling at index 0 again clear(); // size goes to 0, but retains memory } return o; }
/** Make sure we have 'need' elements from current position p. Last valid * p index is data.size()-1. p+need-1 is the data index 'need' elements * ahead. If we need 1 element, (p+1-1)==p must be < data.size(). */ protected void syncAhead(int need) { int n = (p+need-1) - data.size() + 1; // how many more elements we need? if ( n > 0 ) fill(n); // out of elements? }
/** add n elements to buffer */ public void fill(int n) { for (int i=1; i<=n; i++) { T o = nextElement(); if ( isEOF(o) ) eof = o; data.add(o); } }
@Override public void reset() { super.reset(); it.reset(); hasNilRoot = false; level = 0; previousLocationElement = null; if ( calls != null ) calls.clear(); }
@Override public Object remove() { Object result = super.remove(); if (p == 0 && hasPositionInformation(prevElement)) { previousLocationElement = prevElement; } return result; }
/** add n elements to buffer */ public void fill(int n) { for (int i=1; i<=n; i++) { T o = nextElement(); if ( isEOF(o) ) eof = o; data.add(o); } }
@Override public void reset() { super.reset(); it.reset(); hasNilRoot = false; level = 0; previousLocationElement = null; if ( calls != null ) calls.clear(); }
@Override public Object remove() { Object result = super.remove(); if (p == 0 && hasPositionInformation(prevElement)) { previousLocationElement = prevElement; } return result; }
/** add n elements to buffer */ public void fill(int n) { for (int i=1; i<=n; i++) { T o = nextElement(); if ( isEOF(o) ) eof = o; data.add(o); } }
/** * Get and remove first element in queue; override * {@link FastQueue#remove()}; it's the same, just checks for backtracking. */ @Override public T remove() { T o = elementAt(0); p++; // have we hit end of buffer and not backtracking? if ( p == data.size() && markDepth==0 ) { prevElement = o; // if so, it's an opportunity to start filling at index 0 again clear(); // size goes to 0, but retains memory } return o; }
@Override public void reset() { super.reset(); it.reset(); hasNilRoot = false; level = 0; previousLocationElement = null; if ( calls != null ) calls.clear(); }
/** Make sure we have 'need' elements from current position p. Last valid * p index is data.size()-1. p+need-1 is the data index 'need' elements * ahead. If we need 1 element, (p+1-1)==p must be < data.size(). */ protected void syncAhead(int need) { int n = (p+need-1) - data.size() + 1; // how many more elements we need? if ( n > 0 ) fill(n); // out of elements? }
@Override public Object remove() { Object result = super.remove(); if (p == 0 && hasPositionInformation(prevElement)) { previousLocationElement = prevElement; } return result; }
/** add n elements to buffer */ public void fill(int n) { for (int i=1; i<=n; i++) { T o = nextElement(); if ( isEOF(o) ) eof = o; data.add(o); } }