@Override public K findKey(HollowMap<K, V> map, int ordinal, Object... hashKey) { int keyOrdinal = dataAccess.findKey(ordinal, hashKey); if(keyOrdinal != -1) return map.instantiateKey(keyOrdinal); return null; }
@Override public V findValue(HollowMap<K, V> map, int ordinal, Object... hashKey) { int valueOrdinal = dataAccess.findValue(ordinal, hashKey); if(valueOrdinal != -1) return map.instantiateValue(valueOrdinal); return null; }
@Override public V get(HollowMap<K, V> map, int ordinal, Object key) { if(getSchema().getHashKey() != null) { for(int i=0;i<ordinals.length;i+=2) { if(ordinals[i] != -1 && map.equalsKey(ordinals[i], key)) return map.instantiateValue(ordinals[i+1]); } } else { int hashCode = dataAccess.getDataAccess().getHashCodeFinder().hashCode(key); int bucket = (HashCodes.hashInt(hashCode) & hashMask) * 2; while(ordinals[bucket] != -1) { if(map.equalsKey(ordinals[bucket], key)) { return map.instantiateValue(ordinals[bucket + 1]); } bucket += 2; bucket &= ordinals.length - 1; } } return null; }
@Override public boolean containsValue(HollowMap<K, V> map, int ordinal, Object value) { HollowMapEntryOrdinalIterator iter = iterator(ordinal); while(iter.next()) { if(map.equalsValue(iter.getValue(), value)) return true; } return false; }
@Override public boolean containsKey(HollowMap<K, V> map, int ordinal, Object key) { if(getSchema().getHashKey() != null) { for(int i=0;i<ordinals.length;i+=2) { if(ordinals[i] != -1 && map.equalsKey(ordinals[i], key)) return true; } } else { int hashCode = dataAccess.getDataAccess().getHashCodeFinder().hashCode(key); int bucket = (HashCodes.hashInt(hashCode) & hashMask) * 2; while(ordinals[bucket] != -1) { if(map.equalsKey(ordinals[bucket], key)) { return true; } bucket += 2; bucket &= ordinals.length - 1; } } return false; }
@Override public V get(HollowMap<K, V> map, int ordinal, Object key) { HollowMapEntryOrdinalIterator iter; if(getSchema().getHashKey() != null) { iter = dataAccess.ordinalIterator(ordinal); } else { int hashCode = dataAccess.getDataAccess().getHashCodeFinder().hashCode(key); iter = dataAccess.potentialMatchOrdinalIterator(ordinal, hashCode); } while(iter.next()) { if(map.equalsKey(iter.getKey(), key)) return map.instantiateValue(iter.getValue()); } return null; }
@Override public boolean containsValue(HollowMap<K, V> map, int ordinal, Object value) { HollowMapEntryOrdinalIterator iter = iterator(ordinal); while(iter.next()) { if(map.equalsValue(iter.getValue(), value)) return true; } return false; }
@Override public boolean containsKey(HollowMap<K, V> map, int ordinal, Object key) { HollowMapEntryOrdinalIterator iter; if(getSchema().getHashKey() != null) { iter = dataAccess.ordinalIterator(ordinal); } else { int hashCode = dataAccess.getDataAccess().getHashCodeFinder().hashCode(key); iter = dataAccess.potentialMatchOrdinalIterator(ordinal, hashCode); } while(iter.next()) { if(map.equalsKey(iter.getKey(), key)) return true; } return false; }
@Override public V findValue(HollowMap<K, V> map, int ordinal, Object... hashKey) { int valueOrdinal = dataAccess.findValue(ordinal, hashKey); if(valueOrdinal != -1) return map.instantiateValue(valueOrdinal); return null; }
@Override public K findKey(HollowMap<K, V> map, int ordinal, Object... hashKey) { int keyOrdinal = dataAccess.findKey(ordinal, hashKey); if(keyOrdinal != -1) return map.instantiateKey(keyOrdinal); return null; }