/** * @see java.util.Hashtable#putAll(java.util.Map) */ @Override public synchronized void putAll(Map<? extends K,? extends V> t) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { t.entrySet().stream().forEach((newEntry) -> { this.put(newEntry.getKey(), newEntry.getValue()); }); }else{ this.getDelegate().putAll(t); } }
/** * @see java.util.Hashtable#putAll(java.util.Map) */ public synchronized void putAll(Map t) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { Iterator objects = t.keySet().iterator(); while (objects.hasNext()) { Object key = objects.next(); this.put(key, t.get(key)); } }else{ this.getDelegate().putAll(t); } }
/** * @see java.util.Hashtable#putAll(java.util.Map) */ @Override public synchronized void putAll(Map<? extends K,? extends V> t) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { Iterator<? extends K> objects = t.keySet().iterator(); while (objects.hasNext()) { K key = objects.next(); this.put(key, t.get(key)); } }else{ this.getDelegate().putAll(t); } }
/** * @see java.util.Hashtable#clear() */ @Override public synchronized void clear() { if (hasTrackedPropertyChangeListener()) { Iterator<K> objects = this.keySet().iterator(); while (objects.hasNext()) { K o = objects.next(); objects.remove(); } } else { this.getDelegate().clear(); } }
@Override public synchronized boolean remove(Object key, Object value) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { Map<K, V> del = getDelegate(); if (del.containsKey(key) && Objects.equals(del.get(key), value)) { del.remove(key); raiseRemoveChangeEvent(key, value); return true; } return false; } return getDelegate().remove(key, value); }
@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); }
/** * @see java.util.Hashtable#clear() */ public synchronized void clear() { if (hasTrackedPropertyChangeListener()) { Iterator objects = this.keySet().iterator(); while (objects.hasNext()) { Object o = objects.next(); objects.remove(); this.raiseRemoveChangeEvent(o, this.get(o)); } } else { this.getDelegate().clear(); } }
/** * Raise the remove change event. */ protected void raiseRemoveChangeEvent(Object key, Object value) { if (hasTrackedPropertyChangeListener()) { _persistence_getPropertyChangeListener().propertyChange(new MapChangeEvent(this, getTrackedAttributeName(), this, key, value, CollectionChangeEvent.REMOVE, true)); } // this is where relationship maintenance would go }
/** * Raise the remove change event. */ protected void raiseRemoveChangeEvent(Object key, Object value) { if (hasTrackedPropertyChangeListener()) { _persistence_getPropertyChangeListener().propertyChange(new MapChangeEvent(this, getTrackedAttributeName(), this, key, value, CollectionChangeEvent.REMOVE, true)); } // this is where relationship maintenance would go }
/** * Raise the remove change event. */ protected void raiseRemoveChangeEvent(Object key, Object value) { if (hasTrackedPropertyChangeListener()) { _persistence_getPropertyChangeListener().propertyChange(new MapChangeEvent(this, getTrackedAttributeName(), this, key, value, CollectionChangeEvent.REMOVE)); } // this is where relationship maintenance would go }
@Override public synchronized boolean replace(K key, V oldValue, V newValue) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { Map<K, V> del = getDelegate(); if (del.containsKey(key) && Objects.equals(del.get(key), oldValue)) { put(key, newValue); return true; } return false; } return getDelegate().replace(key, oldValue, newValue); }
/** * Raise the add change event and relationship maintainence. */ protected void raiseAddChangeEvent(Object key, Object value) { if (hasTrackedPropertyChangeListener()) { _persistence_getPropertyChangeListener().propertyChange(new MapChangeEvent(this, getTrackedAttributeName(), this, key, value, CollectionChangeEvent.ADD, true)); } // this is where relationship maintenance would go }
/** * Raise the add change event and relationship maintainence. */ protected void raiseAddChangeEvent(Object key, Object value) { if (hasTrackedPropertyChangeListener()) { _persistence_getPropertyChangeListener().propertyChange(new MapChangeEvent(this, getTrackedAttributeName(), this, key, value, CollectionChangeEvent.ADD)); } // this is where relationship maintenance would go }
/** * Raise the add change event and relationship maintainence. */ protected void raiseAddChangeEvent(Object key, Object value) { if (hasTrackedPropertyChangeListener()) { _persistence_getPropertyChangeListener().propertyChange(new MapChangeEvent(this, getTrackedAttributeName(), this, key, value, CollectionChangeEvent.ADD, true)); } // this is where relationship maintenance would go }
/** * @see java.util.Hashtable#clear() */ @Override public synchronized void clear() { if (hasTrackedPropertyChangeListener()) { Iterator<K> objects = this.keySet().iterator(); while (objects.hasNext()) { K o = objects.next(); objects.remove(); // should remove this to not fire same event twice this.raiseRemoveChangeEvent(o, this.get(o)); } } else { this.getDelegate().clear(); } }
@Override public synchronized V replace(K key, V value) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { Map<K, V> del = getDelegate(); if (del.containsKey(key)) { return put(key, value); } return null; } return getDelegate().replace(key, value); }
@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); }
@Override public synchronized V computeIfAbsent(K key, Function<? super K,? extends V> mappingFunction) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { V oldValue = get(key); if (oldValue == null) { V newValue = mappingFunction.apply(key); if (newValue != null) { put(key, newValue); } return newValue; } return oldValue; } return getDelegate().computeIfAbsent(key, mappingFunction); }
@Override public synchronized V merge(K key, V value, BiFunction<? super V,? super V,? extends V> remappingFunction) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { V oldValue = get(key); V newValue = (oldValue == null) ? value : remappingFunction.apply(oldValue, value); if (newValue == null) { remove(key); } else { put(key, newValue); } return newValue; } return getDelegate().merge(key, value, remappingFunction); }
@Override public synchronized V computeIfPresent(K key, BiFunction<? super K,? super V,? extends V> remappingFunction) { // Must trigger add events if tracked or uow. if (hasTrackedPropertyChangeListener()) { if (get(key) != null) { V oldValue = get(key); V newValue = remappingFunction.apply(key, oldValue); if (newValue != null) { put(key, newValue); return newValue; } remove(key); } return null; } return getDelegate().computeIfPresent(key, remappingFunction); }