code: private void changeValueIfNotMultiSelect(Object itemId) {
  
          @SuppressWarnings("unchecked")
          Set<String> value = (Set<String>)getValue();
          if (value == null) {
              select(itemId);
          } else if (!value.contains(itemId)) {
              setValue(null);
              select(itemId);
          }
      }
docs: Checks value of table and sets it new if needed:<p>
  if multiselect: new itemId is in current Value? -> no change of value<p>
  no multiselect and multiselect, but new item not selected before: set value to new item<p>
  
  @param itemId if of clicked item