Small documentation fix.

This commit is contained in:
Kristian S. Stangeland 2013-03-05 16:50:59 +01:00
parent 9f6b4b60e3
commit 9a16143c89
2 changed files with 24 additions and 1 deletions

View File

@ -204,6 +204,29 @@ public class BlockingHashMap<TKey, TValue> {
}
}
/**
* If and only if a key is not present in the map will it be associated with the given value.
* @param key - the key to associate.
* @param value - the value to associate.
* @return The previous value this key has been associated with.
*/
public TValue putIfAbsent(TKey key, TValue value) {
if (value == null)
throw new IllegalArgumentException("This map doesn't support NULL values.");
final TValue previous = backingMap.putIfAbsent(key, value);
// No need to unlock readers if we haven't changed anything
if (previous == null) {
final Object lock = getLock(key);
synchronized (lock) {
lock.notifyAll();
}
}
return previous;
}
public int size() {
return backingMap.size();
}