/** * Adds all elements in this Collection. */ @Override public boolean addAll(Collection<? extends E> c) { Assert.notNull(c, "Can not merge with NULL set"); this.writeLock.lock(); try { for (E object : c) { this.add(object); } return true; } finally { this.writeLock.unlock(); } }
/** * Add the handler to the internal Set. * * @param handler The handler to add. * @return the result of {@link Set#add(Object)} */ @Override public synchronized boolean addHandler(MessageHandler handler) { Assert.notNull(handler, "handler must not be null"); Assert.isTrue(this.handlers.size() < this.maxSubscribers, "Maximum subscribers exceeded"); boolean added = this.handlers.add(handler); if (this.handlers.size() == 1) { this.theOneHandler = handler; } else { this.theOneHandler = null; } return added; }
final Object o10 = new Foo(2); Thread t1 = new Thread(() -> { setToTest.add(o1); setToTest.add(o3); setToTest.add(o5); setToTest.add(o7); setToTest.add(o9); }); Thread t2 = new Thread(() -> { setToTest.add(o2); setToTest.add(o4); setToTest.add(o6); setToTest.add(o8); setToTest.add(o10); }); Thread t3 = new Thread(() -> { setToTest.add(1); setToTest.add(new Foo(2)); setToTest.add(3); setToTest.add(new Foo(9)); setToTest.add(8); }); t1.start();
/** * Tests that semantics of the LinkedHashSet were not broken */ @SuppressWarnings("rawtypes") @Test public void testAddUnordered() { OrderedAwareCopyOnWriteArraySet setToTest = new OrderedAwareCopyOnWriteArraySet(); setToTest.add("foo"); setToTest.add("bar"); setToTest.add("baz"); assertEquals(3, setToTest.size()); Object[] elements = setToTest.toArray(); assertEquals("foo", elements[0]); assertEquals("bar", elements[1]); assertEquals("baz", elements[2]); } /**
Object o9 = new Foo(4); Object o10 = new Foo(2); setToTest.add(o1); setToTest.add(o2); setToTest.add(o3); setToTest.add(o4); setToTest.add(o5); setToTest.add(o6); setToTest.add(o7); setToTest.add(o8); setToTest.add(o9); setToTest.add(o10); assertEquals(10, setToTest.size()); Object[] elements = setToTest.toArray();
/** * Adds all elements in this Collection. */ @Override public boolean addAll(Collection<? extends E> c) { Assert.notNull(c, "Can not merge with NULL set"); this.writeLock.lock(); try { for (E object : c) { this.add(object); } return true; } finally { this.writeLock.unlock(); } }
/** * Add the handler to the internal Set. * * @param handler The handler to add. * @return the result of {@link Set#add(Object)} */ @Override public synchronized boolean addHandler(MessageHandler handler) { Assert.notNull(handler, "handler must not be null"); Assert.isTrue(this.handlers.size() < this.maxSubscribers, "Maximum subscribers exceeded"); boolean added = this.handlers.add(handler); if (this.handlers.size() == 1) { this.theOneHandler = handler; } else { this.theOneHandler = null; } return added; }