/** * INTERNAL: * Return if any elements that have been added or removed before instantiation. */ public boolean hasDeferredChanges() { return hasRemovedElements() || hasAddedElements(); }
/** * INTERNAL: * Return if any elements that have been added or removed before instantiation. */ @Override public boolean hasDeferredChanges() { return hasRemovedElements() || hasAddedElements(); }
/** * INTERNAL: * Return if any elements that have been added or removed before instantiation. */ @Override public boolean hasDeferredChanges() { return hasRemovedElements() || hasAddedElements(); }
/** * @see java.util.Set#contains(java.lang.Object) */ public boolean contains(Object element) { // PERF: Avoid instantiation if not required. if (hasAddedElements()) { if (getAddedElements().contains(element)) { return true; } } if (hasRemovedElements()) { if (getRemovedElements().contains(element)) { return false; } } return this.getDelegate().contains(element); }
/** * @see java.util.Set#contains(java.lang.Object) */ @Override public boolean contains(Object element) { // PERF: Avoid instantiation if not required. if (hasAddedElements()) { if (getAddedElements().contains(element)) { return true; } } if (hasRemovedElements()) { if (getRemovedElements().contains(element)) { return false; } } return this.getDelegate().contains(element); }
/** * @see java.util.Set#contains(java.lang.Object) */ @Override public boolean contains(Object element) { // PERF: Avoid instantiation if not required. if (hasAddedElements()) { if (getAddedElements().contains(element)) { return true; } } if (hasRemovedElements()) { if (getRemovedElements().contains(element)) { return false; } } return this.getDelegate().contains(element); }
/** * INTERNAL: * Return the freshly-built delegate. */ protected Set<E> buildDelegate() { Set<E> newDelegate = (Set<E>)getValueHolder().getValue(); if (newDelegate == null) { newDelegate = new HashSet<>(this.initialCapacity, this.loadFactor); } // This can either be another indirect set or a HashSet. // It can be another indirect list because the mapping's query uses the same container policy. // Unwrap any redundant indirection layers, which can cause issues and impact performance. while (newDelegate instanceof IndirectSet) { newDelegate = ((IndirectSet) newDelegate).getDelegate(); } // First add/remove any cached changes. if (hasAddedElements()) { for (Iterator<E> iterator = getAddedElements().iterator(); iterator.hasNext(); ) { newDelegate.add(iterator.next()); } this.addedElements = null; } if (hasRemovedElements()) { for (Iterator<E> iterator = getRemovedElements().iterator(); iterator.hasNext(); ) { newDelegate.remove(iterator.next()); } this.removedElements = null; } return newDelegate; }
/** * INTERNAL: * Return the freshly-built delegate. */ protected Set buildDelegate() { Set delegate = (Set)getValueHolder().getValue(); // This can either be another indirect set or a HashSet. // It can be another indirect list because the mapping's query uses the same container policy. // Unwrap any redundent indirection layers, which can cause issues and impact performance. while (delegate instanceof IndirectSet) { delegate = ((IndirectSet) delegate).getDelegate(); } // First add/remove any cached changes. if (hasAddedElements()) { for (Iterator iterator = getAddedElements().iterator(); iterator.hasNext(); ) { delegate.add(iterator.next()); } this.addedElements = null; } if (hasRemovedElements()) { for (Iterator iterator = getRemovedElements().iterator(); iterator.hasNext(); ) { delegate.remove(iterator.next()); } this.removedElements = null; } return delegate; }
/** * INTERNAL: * Return the freshly-built delegate. */ protected Set<E> buildDelegate() { Set delegate = (Set)getValueHolder().getValue(); if (delegate == null) { delegate = new HashSet<>(this.initialCapacity, this.loadFactor); } // This can either be another indirect set or a HashSet. // It can be another indirect list because the mapping's query uses the same container policy. // Unwrap any redundent indirection layers, which can cause issues and impact performance. while (delegate instanceof IndirectSet) { delegate = ((IndirectSet) delegate).getDelegate(); } // First add/remove any cached changes. if (hasAddedElements()) { for (Iterator iterator = getAddedElements().iterator(); iterator.hasNext(); ) { delegate.add(iterator.next()); } this.addedElements = null; } if (hasRemovedElements()) { for (Iterator iterator = getRemovedElements().iterator(); iterator.hasNext(); ) { delegate.remove(iterator.next()); } this.removedElements = null; } return delegate; }
/** * @see java.util.Set#add(java.lang.Object) */ public boolean add(Object element) { boolean added = true; // PERF: If not instantiated just record the add to avoid the instantiation. if (shouldAvoidInstantiation()) { if (hasRemovedElements() && getRemovedElements().contains(element)) { getRemovedElements().remove(element); } else if (getAddedElements().contains(element)) { // Must avoid recursion for relationship maintenance. return false; } else { getAddedElements().add(element); } } else { added = getDelegate().add(element); } raiseAddChangeEvent(element); return added; }
/** * @see java.util.Set#add(java.lang.Object) */ @Override public boolean add(E element) { boolean added = true; // PERF: If not instantiated just record the add to avoid the instantiation. if (shouldAvoidInstantiation()) { if (hasRemovedElements() && getRemovedElements().contains(element)) { getRemovedElements().remove(element); } else if (isRelationshipMaintenanceRequired() && getAddedElements().contains(element)) { // Must avoid recursion for relationship maintenance. return false; } else { getAddedElements().add(element); } } else { added = getDelegate().add(element); } if (added) { raiseAddChangeEvent(element); } return added; }
/** * @see java.util.Set#add(java.lang.Object) */ @Override public boolean add(E element) { boolean added = true; // PERF: If not instantiated just record the add to avoid the instantiation. if (shouldAvoidInstantiation()) { if (hasRemovedElements() && getRemovedElements().contains(element)) { getRemovedElements().remove(element); } else if (isRelationshipMaintenanceRequired() && getAddedElements().contains(element)) { // Must avoid recursion for relationship maintenance. return false; } else { getAddedElements().add(element); } } else { added = getDelegate().add(element); } if (added) { raiseAddChangeEvent(element); } return added; }