docs: @Override
      public void removeInvalidChangeItemRequests() {
          /* ignore attempts to add/remove/update null items and items with invalid states */
          if (getItems() != null) {
              final List<V> items = new ArrayList<V>(getItems());
  
              for (final V item : items) {
                  if (item.getItem() == null) {
                      getItems().remove(item);
                  } else if (item.getState() != null && item.getState().equals(UNCHANGED_STATE)) {
                      getItems().remove(item);
                  } else if (item.getItem().getId() == null && !item.getState().equals(ADD_STATE)) {
                      getItems().remove(item);
                  } else if (item.getState() != null && !item.validState(item.getState())) {
                      getItems().remove(item);
                  }
              }
  
              ignoreDuplicatedChangeItemRequests();
          }
      }