Class XStreamSolutionFileIO<Solution_>
- java.lang.Object
-
- org.optaplanner.persistence.xstream.impl.domain.solution.XStreamSolutionFileIO<Solution_>
-
- Type Parameters:
Solution_- the solution type, the class with thePlanningSolutionannotation
- All Implemented Interfaces:
SolutionFileIO<Solution_>
public class XStreamSolutionFileIO<Solution_> extends Object implements SolutionFileIO<Solution_>
Security warning: only use this class with XML files from a trusted source, becauseXStreamis configured to allow all permissions, which can be exploited if the XML comes from an untrusted source.
-
-
Field Summary
Fields Modifier and Type Field Description protected com.thoughtworks.xstream.XStreamxStream
-
Constructor Summary
Constructors Constructor Description XStreamSolutionFileIO(Class... xStreamAnnotatedClasses)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringgetInputFileExtension()EveryPlanningSolutiontype potentially has its own file extension.com.thoughtworks.xstream.XStreamgetXStream()Solution_read(File inputSolutionFile)This method is thread-safe.Solution_read(InputStream inputSolutionStream)voidwrite(Solution_ solution, File outputSolutionFile)This method is thread-safe.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.optaplanner.persistence.common.api.domain.solution.SolutionFileIO
getOutputFileExtension
-
-
-
-
Constructor Detail
-
XStreamSolutionFileIO
public XStreamSolutionFileIO(Class... xStreamAnnotatedClasses)
-
-
Method Detail
-
getXStream
public com.thoughtworks.xstream.XStream getXStream()
-
getInputFileExtension
public String getInputFileExtension()
Description copied from interface:SolutionFileIOEveryPlanningSolutiontype potentially has its own file extension. If no specific file extension is defined by the use case, the following are recommended:- If this
SolutionFileIOimplementation serializes to XML, use file extension "xml". - If this
SolutionFileIOimplementation serializes to text, use file extension "txt". - If this
SolutionFileIOimplementation serializes to binary, use file extension "dat".
It's good practice that both the input and the output file have the same file extension, because a good output file is able to function as an input file. Therefore
SolutionFileIO.getOutputFileExtension()defaults to returning the same as this method.The file extension does not include the dot that separates it from the base name.
This method is thread-safe.
- Specified by:
getInputFileExtensionin interfaceSolutionFileIO<Solution_>- Returns:
- never null, for example "xml"
- If this
-
read
public Solution_ read(File inputSolutionFile)
Description copied from interface:SolutionFileIOThis method is thread-safe.- Specified by:
readin interfaceSolutionFileIO<Solution_>- Parameters:
inputSolutionFile- never null- Returns:
- never null
-
read
public Solution_ read(InputStream inputSolutionStream)
-
write
public void write(Solution_ solution, File outputSolutionFile)
Description copied from interface:SolutionFileIOThis method is thread-safe.- Specified by:
writein interfaceSolutionFileIO<Solution_>- Parameters:
solution- never nulloutputSolutionFile- never null, parent directory already exists
-
-