@Override
  protected void doSetValue(Object source, Object value) {
    Container container = (Container) source;
    @SuppressWarnings("unchecked")
    Collection<Object> itemIds = (Collection<Object>) value;

    for (Object id : container.getItemIds().toArray()) {
      container.removeItem(id);
    }

    for (Object id : itemIds) {
      container.addItem(id);
    }
  }