code: public List<S> getNeighbors(List<S> solutionList, int solutionPosition) {
      if (solutionList == null) {
        throw new JMetalException("The solution list is null") ;
      } else if (solutionList.size() == 0) {
        throw new JMetalException("The solution list is empty") ;
      } else if (solutionPosition < 0) {
        throw new JMetalException("The solution position value is negative: " + solutionPosition) ;
      } else if (solutionList.size() != rows * columns) {
        throw new JMetalException("The solution list size " + solutionList.size() + " is not"
            + "equal to the grid size: " + rows + " * " + columns) ;
      }
      else if (solutionPosition >= solutionList.size()) {
        throw new JMetalException("The solution position value " + solutionPosition +
            " is equal or greater than the solution list size "
            + solutionList.size()) ;
      }
  
      return findNeighbors(solutionList, solutionPosition, neighborhood);
    }
docs: Returns the north,south, east, and west solutions of a given solution
  @param solutionList the solution set from where the neighbors are taken
  @param solutionPosition Represents the position of the solution