(V value)
| 478 | } |
| 479 | |
| 480 | @Override |
| 481 | public V setValue(V value) { |
| 482 | V oldValue = delegate.value; |
| 483 | int valueHash = smearedHash(value); |
| 484 | if (valueHash == delegate.valueHash && Objects.equal(value, oldValue)) { |
| 485 | return value; |
| 486 | } |
| 487 | checkArgument(seekByValue(value, valueHash) == null, "value already present: %s", value); |
| 488 | delete(delegate); |
| 489 | BiEntry<K, V> newEntry = new BiEntry<K, V>(delegate.key, delegate.keyHash, value, valueHash); |
| 490 | insert(newEntry, delegate); |
| 491 | delegate.prevInKeyInsertionOrder = null; |
| 492 | delegate.nextInKeyInsertionOrder = null; |
| 493 | expectedModCount = modCount; |
| 494 | if (toRemove == delegate) { |
| 495 | toRemove = newEntry; |
| 496 | } |
| 497 | delegate = newEntry; |
| 498 | return oldValue; |
| 499 | } |
| 500 | } |
| 501 | }; |
| 502 | } |
no test coverage detected