private HollowListCachedDelegate(HollowListTypeDataAccess dataAccess, HollowListTypeAPI typeAPI, int ordinal) { int ordinals[] = new int[dataAccess.size(ordinal)]; for(int i=0;i<ordinals.length;i++) ordinals[i] = dataAccess.getElementOrdinal(ordinal, i); this.ordinals = ordinals; this.dataAccess = dataAccess; this.typeAPI = typeAPI; }
@Override public int next() { if(currentElement == size) return NO_MORE_ORDINALS; return dataAccess.getElementOrdinal(listOrdinal, currentElement++); }
@Override public int next() { int bucketValue; bucketValue = ORDINAL_NONE; while(bucketValue == ORDINAL_NONE) { currentBucket++; if(currentBucket >= numBuckets) return NO_MORE_ORDINALS; bucketValue = dataAccess.relativeBucketValue(setOrdinal, currentBucket); } return bucketValue; }
@Override public Collection<HBoolean> getAllHBoolean() { return new AllHollowRecordCollection<HBoolean>(getDataAccess().getTypeDataAccess("Boolean").getTypeState()) { @Override protected HBoolean getForOrdinal(int ordinal) { return getHBoolean(ordinal); } }; } @Override
private void assertRecord(HollowDataAccess dataAccess, int ordinal, int... expectedElements) { HollowListTypeDataAccess typeDataAccess = (HollowListTypeDataAccess)dataAccess.getTypeDataAccess("TestList"); for(int i=0;i<expectedElements.length;i++) { Assert.assertEquals(expectedElements[i], typeDataAccess.getElementOrdinal(ordinal, i)); } }
@Override public int readInt(int ordinal, int fieldIndex) { return ((HollowObjectTypeDataAccess) currentDataAccess).readInt(ordinal, fieldIndex); }
@Override public HollowSchema getSchema() { return dataAccess.getSchema(); }
@Override public int size(int ordinal) { return dataAccess.size(ordinal); }
@Override public byte[] readBytes(int ordinal, int fieldIndex) { return ((HollowObjectTypeDataAccess) currentDataAccess).readBytes(ordinal, fieldIndex); }
public HollowListOrdinalIterator(int listOrdinal, HollowListTypeDataAccess dataAccess) { this.listOrdinal = listOrdinal; this.dataAccess = dataAccess; this.size = dataAccess.size(listOrdinal); }
@Override public boolean next() { long currentBucketValue = dataAccess.relativeBucket(mapOrdinal, currentBucket); int currentBucketKey = (int)(currentBucketValue >>> 32); if(currentBucketKey == ORDINAL_NONE) return false; key = currentBucketKey; value = (int)currentBucketValue; currentBucket++; currentBucket &= numBuckets - 1; return true; }
@Override public int findVarLengthFieldHashCode(int ordinal, int fieldIndex) { return ((HollowObjectTypeDataAccess) currentDataAccess).findVarLengthFieldHashCode(ordinal, fieldIndex); }
@Override public HollowSetSchema getSchema() { return dataAccess.getSchema(); }
@Override public Collection<HDouble> getAllHDouble() { return new AllHollowRecordCollection<HDouble>(getDataAccess().getTypeDataAccess("Double").getTypeState()) { @Override protected HDouble getForOrdinal(int ordinal) { return getHDouble(ordinal); } }; } @Override
@Override public int next() { int currentBucketValue; currentBucketValue = dataAccess.relativeBucketValue(setOrdinal, currentBucket); if(currentBucketValue == ORDINAL_NONE) { return NO_MORE_ORDINALS; } currentBucket++; currentBucket &= (numBuckets - 1); return currentBucketValue; }
@Override public int size(int ordinal) { return dataAccess.size(ordinal); }
@Override public Collection<HInteger> getAllHInteger() { return new AllHollowRecordCollection<HInteger>(getDataAccess().getTypeDataAccess("Integer").getTypeState()) { @Override protected HInteger getForOrdinal(int ordinal) { return getHInteger(ordinal); } }; } @Override
@Override public Collection<HFloat> getAllHFloat() { return new AllHollowRecordCollection<HFloat>(getDataAccess().getTypeDataAccess("Float").getTypeState()) { @Override protected HFloat getForOrdinal(int ordinal) { return getHFloat(ordinal); } }; } @Override
@Override public Collection<HLong> getAllHLong() { return new AllHollowRecordCollection<HLong>(getDataAccess().getTypeDataAccess("Long").getTypeState()) { @Override protected HLong getForOrdinal(int ordinal) { return getHLong(ordinal); } }; } @Override
@Override public Collection<HString> getAllHString() { return new AllHollowRecordCollection<HString>(getDataAccess().getTypeDataAccess("String").getTypeState()) { @Override protected HString getForOrdinal(int ordinal) { return getHString(ordinal); } }; } @Override