@Override
    public boolean addAll(Collection<? extends E> c) {
        checkNotNull(c, "The collection to be added cannot be null.");
        boolean changed = false;
        for (Object item : c) {
            changed = items.add(serializer.encode(item)) || changed;
        }
        return changed;
    }
@Test
    public void testAddAll() throws Exception {
        //Test multi-adds with change checking
        Set<Integer> integersToCheck = Sets.newHashSet();
        fillSet(10, integersToCheck);
        assertFalse("Set should be empty and so integers to check should not be a subset.",
                    set.containsAll(integersToCheck));
        assertTrue("The set should have changed as a result of add all.", set.addAll(integersToCheck));
        assertFalse("The set should not have changed as a result of add all a second time.",
                    set.addAll(integersToCheck));
        assertTrue("The sets should now be equivalent.", set.containsAll(integersToCheck));
        assertTrue("The sets should now be equivalent.", integersToCheck.containsAll(set));
    }