code: public <S extends Solution<?>> void execute(List<S> solutionsList) {
      switch (config.scalarizationType) {
        case ANGLE_UTILITY:
          if (config.extremePoints == null)
            ScalarizationUtils.angleUtility(solutionsList);
          else
            ScalarizationUtils.angleUtility(solutionsList, config.extremePoints);
          break;
        case CHEBYSHEV:
          if (config.idealValues == null)
            ScalarizationUtils.chebyshev(solutionsList);
          else
            ScalarizationUtils.chebyshev(solutionsList, config.idealValues);
          break;
        case NASH:
          if (config.nadirValues == null)
            ScalarizationUtils.nash(solutionsList);
          else
            ScalarizationUtils.nash(solutionsList, config.nadirValues);
          break;
        case SUM_OF_OBJECTIVES:
          ScalarizationUtils.sumOfObjectives(solutionsList);
          break;
        case PRODUCT_OF_OBJECTIVES:
          ScalarizationUtils.productOfObjectives(solutionsList);
          break;
        case TRADEOFF_UTILITY:
          ScalarizationUtils.tradeoffUtility(solutionsList);
          break;
        case UNIFORM:
          ScalarizationUtils.uniform(solutionsList);
          break;
        case WEIGHTED_CHEBYSHEV:
          if (config.idealValues == null)
            ScalarizationUtils.weightedChebyshev(solutionsList, config.weights);
          else
            ScalarizationUtils.weightedChebyshev(solutionsList, config.idealValues, config.weights);
          break;
        case WEIGHTED_PRODUCT:
          ScalarizationUtils.weightedProduct(solutionsList, config.weights);
          break;
        case WEIGHTED_SUM:
          ScalarizationUtils.weightedSum(solutionsList, config.weights);
          break;
      }
    }
docs: Computes scalarization values and assigns them as
  {@link ScalarizationValue} attribute to the solutions.
  
  @param solutionsList Solutions for which scalarization values computed.