public HollowOrdinalIterator potentialMatchOrdinalIterator(int ordinal, int hashCode) { return getTypeDataAccess().potentialMatchOrdinalIterator(ordinal, hashCode); }
@Override public HollowOrdinalIterator potentialMatchOrdinalIterator(int ordinal, int hashCode) { sampler().recordIterator(); recordStackTrace(); if(!ordinalIsPresent(ordinal)) return ((HollowSetTypeDataAccess)dataAccess.getTypeDataAccess(getSchema().getName(), ordinal)).potentialMatchOrdinalIterator(ordinal, hashCode); return removedRecords().potentialMatchOrdinalIterator(getMappedOrdinal(ordinal), hashCode); }
private void assertRecord(HollowDataAccess dataAccess, int ordinal, int... expectedElements) { HollowSetTypeDataAccess typeDataAccess = (HollowSetTypeDataAccess)dataAccess.getTypeDataAccess("TestSet"); test: for(int expected : expectedElements) { HollowOrdinalIterator iter = typeDataAccess.potentialMatchOrdinalIterator(ordinal, expected); int actual = iter.next(); while(actual != HollowOrdinalIterator.NO_MORE_ORDINALS) { if(actual == expected) continue test; actual = iter.next(); } Assert.fail("Did not find expected element " + expected + " for ordinal " + ordinal); } }
@Override public boolean contains(HollowSet<T> set, int ordinal, Object o) { HollowOrdinalIterator iter; if(getSchema().getHashKey() != null) { iter = dataAccess.ordinalIterator(ordinal); } else { int hashCode = dataAccess.getDataAccess().getHashCodeFinder().hashCode(o); iter = dataAccess.potentialMatchOrdinalIterator(ordinal, hashCode); } int potentialOrdinal = iter.next(); while(potentialOrdinal != HollowOrdinalIterator.NO_MORE_ORDINALS) { if(set.equalsElement(potentialOrdinal, o)) return true; potentialOrdinal = iter.next(); } return false; }