public AnalysisResults < SolutionType > merge ( AnalysisResults < SolutionType > otherResults ) { otherResults . results . keySet ( ) . forEach ( problemID -> { otherResults . results . get ( problemID ) . keySet ( ) . forEach ( searchID -> { List < SearchRunResults < SolutionType >> runs = otherResults . results . get ( problemID ) . get ( searchID ) ; runs . forEach ( run -> { // deep copy run SearchRunResults < SolutionType > runCopy = new SearchRunResults <> ( run ) ; // register in this results object registerSearchRun ( problemID , searchID , runCopy ) ; } ) ; } ) ; } ) ; return this ; }
Merge the given results into this results object . A copy of the newly added search runs is made .