/** * @param key must not be null * @return {@literal <0 if less than end (in range), 0 if equal (in range), >0 if higher} */ int endRangeCompare(byte[] key) { byte[] end = mEnd; return end == null ? -1 : endRangeCompare(end, key); }
/** * @param key must not be null * @return <0 if less than end (in range), 0 if equal (in range), >0 if higher */ int endRangeCompare(byte[] key) { byte[] end = mEnd; return end == null ? -1 : endRangeCompare(end, key); }
/** * @param key must not be null * @return <0 if less than end (in range), 0 if equal (in range), >0 if higher */ int endRangeCompare(byte[] key) { byte[] end = mEnd; return end == null ? -1 : endRangeCompare(end, key); }
byte[] adjustHighKey(byte[] highKey) { byte[] end = mEnd; if (end != null && (highKey == null || endRangeCompare(end, highKey) > 0)) { highKey = end; if ((mMode & END_EXCLUSIVE) == 0) { // Switch to inclusive end behavior. highKey = ViewUtils.appendZero(highKey); } } return highKey; } }
@Override boolean inRange(byte[] key) { return startRangeCompare(key) >= 0 && endRangeCompare(key) <= 0; }
byte[] adjustHighKey(byte[] highKey) { byte[] end = mEnd; if (end != null && (highKey == null || endRangeCompare(end, highKey) > 0)) { highKey = end; if ((mMode & END_EXCLUSIVE) == 0) { // Switch to inclusive end behavior. highKey = ViewUtils.appendZero(highKey); } } return highKey; } }
@Override boolean inRange(byte[] key) { return startRangeCompare(key) >= 0 && endRangeCompare(key) <= 0; }
@Override boolean inRange(byte[] key) { return startRangeCompare(key) >= 0 && endRangeCompare(key) <= 0; }
@Override public LockResult nextLe(byte[] limitKey) throws IOException { if (mView.endRangeCompare(limitKey) <= 0) { return mSource.nextLe(limitKey); } else { return next(); } }
@Override public View viewLt(byte[] key) { keyCheck(key); if (endRangeCompare(key) > 0) { return this; } return new BoundedView(mSource, mStart, key, mMode | END_EXCLUSIVE); }
@Override public LockResult nextLe(byte[] limitKey) throws IOException { if (mView.endRangeCompare(limitKey) <= 0) { LockResult result = mSource.nextLe(limitKey); mOutOfBounds = false; return result; } else { return next(); } }
@Override public View viewLt(byte[] key) { keyCheck(key); if (endRangeCompare(key) > 0) { return this; } return new BoundedView(mSource, mStart, key, mMode | END_EXCLUSIVE); }
@Override public LockResult nextLt(byte[] limitKey) throws IOException { if (mView.endRangeCompare(limitKey) <= 0) { return mSource.nextLt(limitKey); } else { return next(); } }
@Override public View viewLe(byte[] key) { keyCheck(key); if (endRangeCompare(key) >= 0) { return this; } return new BoundedView(mSource, mStart, key, mMode & ~END_EXCLUSIVE); }
@Override public View viewLe(byte[] key) { keyCheck(key); if (endRangeCompare(key) >= 0) { return this; } return new BoundedView(mSource, mStart, key, mMode & ~END_EXCLUSIVE); }
@Override public View viewLt(byte[] key) { keyCheck(key); if (endRangeCompare(key) > 0) { return this; } return new BoundedView(mSource, mStart, key, mMode | END_EXCLUSIVE); }
@Override public LockResult nextLe(byte[] limitKey) throws IOException { if (mView.endRangeCompare(limitKey) <= 0) { return mSource.nextLe(limitKey); } else { return next(); } }
@Override public LockResult nextLt(byte[] limitKey) throws IOException { if (mView.endRangeCompare(limitKey) <= 0) { return mSource.nextLt(limitKey); } else { return next(); } }
@Override public LockResult nextLt(byte[] limitKey) throws IOException { if (mView.endRangeCompare(limitKey) <= 0) { LockResult result = mSource.nextLt(limitKey); mOutOfBounds = false; return result; } else { return next(); } }
@Override public View viewLe(byte[] key) { keyCheck(key); if (endRangeCompare(key) >= 0) { return this; } return new BoundedView(mSource, mStart, key, mMode & ~END_EXCLUSIVE); }