code: public void setRandomSolutionGenerator(RandomSolutionGenerator<? extends SolutionType, ? super DataType> randomSolutionGenerator){
          // check not null
          if(randomSolutionGenerator == null){
              throw new NullPointerException("Error while setting random solution generator: null is not allowed");
          }
          this.randomSolutionGenerator = randomSolutionGenerator;
      }
docs: Set random solution generator. It is allowed for the generator to produce subtypes of the
  problem's solution type, requiring any supertype of the problem's data type. The generator
  can not be <code>null</code>.
  
  @param randomSolutionGenerator random solution generator
  @throws NullPointerException if <code>randomSolutionGenerator</code> is <code>null</code>