{@inheritDoc}
(Collection<? extends E> c)
| 318 | |
| 319 | /** {@inheritDoc} */ |
| 320 | @Override |
| 321 | public boolean addAll(Collection<? extends E> c) { |
| 322 | Set<E> duplicates = new HashSet<E>(); |
| 323 | if (null != c) { |
| 324 | for (E e : c) { |
| 325 | if (!delegate.contains(e)) continue; |
| 326 | duplicates.add(e); |
| 327 | } |
| 328 | } |
| 329 | |
| 330 | int oldSize = size(); |
| 331 | boolean success = delegate.addAll(c); |
| 332 | |
| 333 | if (success && c != null) { |
| 334 | List<E> values = new ArrayList<E>(); |
| 335 | for (E element : c) { |
| 336 | if (test != null) { |
| 337 | Object result = test.call(element); |
| 338 | if (result instanceof Boolean && (Boolean) result && !duplicates.contains(element)) { |
| 339 | values.add(element); |
| 340 | } |
| 341 | } else if (!duplicates.contains(element)) { |
| 342 | values.add(element); |
| 343 | } |
| 344 | } |
| 345 | if (!values.isEmpty()) { |
| 346 | fireMultiElementAddedEvent(values); |
| 347 | fireSizeChangedEvent(oldSize, size()); |
| 348 | } |
| 349 | } |
| 350 | |
| 351 | return success; |
| 352 | } |
| 353 | |
| 354 | /** {@inheritDoc} */ |
| 355 | @Override |
no test coverage detected