@Override public LinkedPropertyEntry getEntry(Object key) { LinkedPropertyEntry entry = root.find(key, hash(key)); assert entry == null || entry.getKey().equals(key); return entry; }
@Override public LinkedPropertyEntry getEntry(Object key) { LinkedPropertyEntry entry = root.find(key, hash(key)); assert entry == null || entry.getKey().equals(key); return entry; }
@Override public TriePropertyMap copyAndRemove(Object key) { int hash = hash(key); LinkedPropertyEntry existing = root.find(key, hash); if (existing == null) { LinkedPropertyEntry existingPrev = getEntry(prevKey); LinkedPropertyEntry newPrev = existingPrev.withNextKey(existing.getNextKey()); newRoot = newRoot.put(prevKey, hash(prevKey), newPrev); if (existing == tail) { newTail = newPrev; LinkedPropertyEntry existingNext = getEntry(nextKey); LinkedPropertyEntry newNext = existingNext.withPrevKey(existing.getPrevKey()); newRoot = newRoot.put(nextKey, hash(nextKey), newNext); if (existing == head) { newHead = newNext;
@Override public TriePropertyMap copyAndRemove(Object key) { int hash = hash(key); LinkedPropertyEntry existing = root.find(key, hash); if (existing == null) { LinkedPropertyEntry existingPrev = getEntry(prevKey); LinkedPropertyEntry newPrev = existingPrev.withNextKey(existing.getNextKey()); newRoot = newRoot.put(prevKey, hash(prevKey), newPrev); if (existing == tail) { newTail = newPrev; LinkedPropertyEntry existingNext = getEntry(nextKey); LinkedPropertyEntry newNext = existingNext.withPrevKey(existing.getPrevKey()); newRoot = newRoot.put(nextKey, hash(nextKey), newNext); if (existing == head) { newHead = newNext;
private TriePropertyMap copyAndPutImpl(Object key, Property value) { int hash = hash(key); LinkedPropertyEntry existing = root.find(key, hash); TrieNode<Object, Property, LinkedPropertyEntry> newRoot = root; newRoot = newRoot.put(tailKey, hash(tailKey), tailWithNext); if (head == tail) { newHead = tailWithNext;
private TriePropertyMap copyAndPutImpl(Object key, Property value) { int hash = hash(key); LinkedPropertyEntry existing = root.find(key, hash); TrieNode<Object, Property, LinkedPropertyEntry> newRoot = root; newRoot = newRoot.put(tailKey, hash(tailKey), tailWithNext); if (head == tail) { newHead = tailWithNext;