XStream の input ファイルが reference を XPATH で書いている場合
<com.example.MySolution> <id>1</id> <locationList> <com.example.model.Location> <id>0</id> <name>xxxx</name> </com.rekeep.domain.model.Location> </locationList> <officeList> <com.example.model.Office> <id>0</id> <location reference="../../../locationList/com.example.model.Location" /> </com.example.model.Office> ...
com.thoughtworks.xstream.converters.ConversionException: Invalid reference
にヒットする。
XStreamSolutionFileIO<EmployeeRoutingSolution> xStreamSolutionFileIO = new XStreamSolutionFileIO<>(MySolution.class); xStreamSolutionFileIO.getXStream().setMode(XStream.XPATH_RELATIVE_REFERENCES); File inputFile = new File("src/test/resources/input/test_input.txt"); MySolution inputSolution = xStreamSolutionFileIO.read(inputFile);
のように mode を指定する。
solution の スコア計算だけする
保存しておく
File outputFile = new File("src/test/resources/output/my_test_OUTPUT1.txt"); xStreamSolutionFileIO.write(bestSolution, outputFile);
読み出してから
ScoreDirector<MyRoutingSolution> scoreDirector = solver.getScoreDirectorFactory().buildScoreDirector(); scoreDirector.setWorkingSolution(inputSolution); Score score = scoreDirector.calculateScore();
inputSolution を編集して、再計算することもできる