code: public boolean select(int ID) {
          // verify that the ID occurs
          if(!all.contains(ID)){
              throw new SolutionModificationException("Error while modifying subset solution: "
                                  + "unable to select ID " +  ID + " (no entity with this ID).", this);
          }
          // verify that ID is currently not selected
          if(selected.contains(ID)){
              // already selected: return false
              return false;
          }
          // currently unselected, existing ID: select it
          selected.add(ID);
          unselected.remove(ID);
          return true;
      }
docs: Select the given ID. If there is no entity with the given ID, a {@link SolutionModificationException} is thrown.
  If the ID is currently already selected, the subset solution is not modified and false is returned. Finally,
  true is returned if the ID has been successfully selected.
  
  @param ID ID to be selected
  @throws SolutionModificationException if there is no entity with this ID
  @return true if the ID has been successfully selected, false if it was already selected