protected static SubSingleBenchmarkResult createMerge(
            SingleBenchmarkResult singleBenchmarkResult, SubSingleBenchmarkResult oldResult,
            int subSingleBenchmarkIndex) {
        SubSingleBenchmarkResult newResult = new SubSingleBenchmarkResult(singleBenchmarkResult, subSingleBenchmarkIndex);
        newResult.pureSubSingleStatisticList = new ArrayList<>(oldResult.pureSubSingleStatisticList.size());
        for (PureSubSingleStatistic oldSubSingleStatistic : oldResult.pureSubSingleStatisticList) {
            newResult.pureSubSingleStatisticList.add(
                    oldSubSingleStatistic.getStatisticType().buildPureSubSingleStatistic(newResult));
        }

        newResult.initSubSingleStatisticMap();
        for (SubSingleStatistic newSubSingleStatistic : newResult.effectiveSubSingleStatisticMap.values()) {
            SubSingleStatistic oldSubSingleStatistic = oldResult.getSubSingleStatistic(newSubSingleStatistic.getStatisticType());
            if (!oldSubSingleStatistic.getCsvFile().exists()) {
                if (oldResult.hasAnyFailure()) {
                    newSubSingleStatistic.initPointList();
                    logger.debug("Old result ({}) is a failure, skipping merge of its sub single statistic ({}).",
                            oldResult, oldSubSingleStatistic);
                    continue;
                } else {
                    throw new IllegalStateException("Could not find old result's (" + oldResult
                            + ") sub single statistic's (" + oldSubSingleStatistic + ") CSV file.");
                }
            }
            oldSubSingleStatistic.unhibernatePointList();
            newSubSingleStatistic.setPointList(oldSubSingleStatistic.getPointList());
            oldSubSingleStatistic.hibernatePointList();
        }
        // Skip oldResult.reportDirectory
        // Skip oldResult.usedMemoryAfterInputSolution
        newResult.succeeded = oldResult.succeeded;
        newResult.score = oldResult.score;
        newResult.timeMillisSpent = oldResult.timeMillisSpent;
        newResult.scoreCalculationCount = oldResult.scoreCalculationCount;

        singleBenchmarkResult.getSubSingleBenchmarkResultList().add(newResult);
        return newResult;
    }
protected static SubSingleBenchmarkResult createMerge(
            SingleBenchmarkResult singleBenchmarkResult, SubSingleBenchmarkResult oldResult,
            int subSingleBenchmarkIndex) {
        SubSingleBenchmarkResult newResult = new SubSingleBenchmarkResult(singleBenchmarkResult, subSingleBenchmarkIndex);
        newResult.pureSubSingleStatisticList = new ArrayList<>(oldResult.pureSubSingleStatisticList.size());
        for (PureSubSingleStatistic oldSubSingleStatistic : oldResult.pureSubSingleStatisticList) {
            newResult.pureSubSingleStatisticList.add(
                    oldSubSingleStatistic.getStatisticType().buildPureSubSingleStatistic(newResult));
        }

        newResult.initSubSingleStatisticMap();
        for (SubSingleStatistic newSubSingleStatistic : newResult.effectiveSubSingleStatisticMap.values()) {
            SubSingleStatistic oldSubSingleStatistic = oldResult.getSubSingleStatistic(newSubSingleStatistic.getStatisticType());
            if (!oldSubSingleStatistic.getCsvFile().exists()) {
                if (oldResult.hasAnyFailure()) {
                    newSubSingleStatistic.initPointList();
                    logger.debug("Old result ({}) is a failure, skipping merge of its sub single statistic ({}).",
                            oldResult, oldSubSingleStatistic);
                    continue;
                } else {
                    throw new IllegalStateException("Could not find old result's (" + oldResult
                            + ") sub single statistic's (" + oldSubSingleStatistic + ") CSV file.");
                }
            }
            oldSubSingleStatistic.unhibernatePointList();
            newSubSingleStatistic.setPointList(oldSubSingleStatistic.getPointList());
            oldSubSingleStatistic.hibernatePointList();
        }
        
        
        newResult.succeeded = oldResult.succeeded;
        newResult.score = oldResult.score;
        newResult.timeMillisSpent = oldResult.timeMillisSpent;
        newResult.scoreCalculationCount = oldResult.scoreCalculationCount;

        singleBenchmarkResult.getSubSingleBenchmarkResultList().add(newResult);
        return newResult;
    }
protected static SubSingleBenchmarkResult createMerge ( SingleBenchmarkResult singleBenchmarkResult , SubSingleBenchmarkResult oldResult , int subSingleBenchmarkIndex ) { SubSingleBenchmarkResult newResult = new SubSingleBenchmarkResult ( singleBenchmarkResult , subSingleBenchmarkIndex ) ; newResult . pureSubSingleStatisticList = new ArrayList <> ( oldResult . pureSubSingleStatisticList . size ( ) ) ; for ( PureSubSingleStatistic oldSubSingleStatistic : oldResult . pureSubSingleStatisticList ) { newResult . pureSubSingleStatisticList . add ( oldSubSingleStatistic . getStatisticType ( ) . buildPureSubSingleStatistic ( newResult ) ) ; } newResult . initSubSingleStatisticMap ( ) ; for ( SubSingleStatistic newSubSingleStatistic : newResult . effectiveSubSingleStatisticMap . values ( ) ) { SubSingleStatistic oldSubSingleStatistic = oldResult . getSubSingleStatistic ( newSubSingleStatistic . getStatisticType ( ) ) ; if ( ! oldSubSingleStatistic . getCsvFile ( ) . exists ( ) ) { if ( oldResult . hasAnyFailure ( ) ) { newSubSingleStatistic . initPointList ( ) ; logger . debug ( "Old result ({}) is a failure, skipping merge of its sub single statistic ({})." , oldResult , oldSubSingleStatistic ) ; continue ; } else { throw new IllegalStateException ( "Could not find old result's (" + oldResult + ") sub single statistic's (" + oldSubSingleStatistic + ") CSV file." ) ; } } oldSubSingleStatistic . unhibernatePointList ( ) ; newSubSingleStatistic . setPointList ( oldSubSingleStatistic . getPointList ( ) ) ; oldSubSingleStatistic . hibernatePointList ( ) ; } // Skip oldResult.reportDirectory // Skip oldResult.usedMemoryAfterInputSolution newResult . succeeded = oldResult . succeeded ; newResult . score = oldResult . score ; newResult . timeMillisSpent = oldResult . timeMillisSpent ; newResult . scoreCalculationCount = oldResult . scoreCalculationCount ; singleBenchmarkResult . getSubSingleBenchmarkResultList ( ) . add ( newResult ) ; return newResult ; }
************************************************************************
************************************************************************