/** * @see java.util.Hashtable#put(java.lang.Object, java.lang.Object) */ @Override public synchronized V put(K key, V value) { V oldValue = this.getDelegate().put(key, value); if (oldValue != null){ raiseRemoveChangeEvent(key, oldValue); } raiseAddChangeEvent(key, value); return oldValue; }
/** * @see java.util.Hashtable#put(java.lang.Object, java.lang.Object) */ @Override public synchronized V put(K key, V value) { V oldValue = this.getDelegate().put(key, value); if (oldValue != null){ raiseRemoveChangeEvent(key, oldValue); } raiseAddChangeEvent(key, value); return oldValue; }
/** * @see java.util.Hashtable#put(java.lang.Object, java.lang.Object) */ public synchronized Object put(Object key, Object value) { Object oldValue = this.getDelegate().put(key, value); if (oldValue != null){ raiseRemoveChangeEvent(key, oldValue); } raiseAddChangeEvent(key, value); return oldValue; }
@Override public synchronized void replaceAll(BiFunction<? super K,? super V,? extends V> function) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { getDelegate().entrySet().stream().forEach((entry) -> { K key = entry.getKey(); V oldValue = entry.getValue(); entry.setValue(function.apply(key, entry.getValue())); raiseRemoveChangeEvent(key, oldValue); raiseAddChangeEvent(key, entry.getValue()); }); return; } getDelegate().replaceAll(function); }
@Override public synchronized V putIfAbsent(K key, V value) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { V current = getDelegate().get(key); if (current == null) { V v = getDelegate().put(key, value); raiseAddChangeEvent(key, value); return v; } return current; } return getDelegate().putIfAbsent(key, value); }