Solution_ - the solution type, the class with the PlanningSolution annotationpublic abstract class SolverFactory<Solution_> extends Object
Solver instances.
To build an instance, use createFromXmlResource(String) or any of the other creation methods.
Supports tweaking the configuration programmatically before a Solver instance is build.
| Constructor and Description |
|---|
SolverFactory() |
| Modifier and Type | Method and Description |
|---|---|
abstract Solver<Solution_> |
buildSolver()
Creates a new
Solver instance. |
abstract SolverFactory<Solution_> |
cloneSolverFactory()
Build a
SolverFactory quickly (without parsing XML) that builds the exact same Solver
with buildSolver(), but can also be modified with getSolverConfig() to build a different
Solver without affecting the original SolverFactory. |
static <Solution_> |
createEmpty()
Useful to build configuration programmatically, although it's almost always recommended
to instead load a partial configuration with
createFromXmlResource(String)
and configure the remainder programmatically with getSolverConfig(). |
static <Solution_> |
createEmpty(ClassLoader classLoader)
See
createEmpty(). |
static <Solution_> |
createFromKieContainerXmlResource(org.kie.api.runtime.KieContainer kieContainer,
String solverConfigResource) |
static <Solution_> |
createFromKieContainerXmlResource(org.kie.api.builder.ReleaseId releaseId,
String solverConfigResource) |
static <Solution_> |
createFromKieContainerXmlResource(String solverConfigResource)
Uses
KieServices.getKieClasspathContainer(). |
static <Solution_> |
createFromXmlFile(File solverConfigFile) |
static <Solution_> |
createFromXmlFile(File solverConfigFile,
ClassLoader classLoader) |
static <Solution_> |
createFromXmlInputStream(InputStream in) |
static <Solution_> |
createFromXmlInputStream(InputStream in,
ClassLoader classLoader) |
static <Solution_> |
createFromXmlReader(Reader reader) |
static <Solution_> |
createFromXmlReader(Reader reader,
ClassLoader classLoader) |
static <Solution_> |
createFromXmlResource(String solverConfigResource) |
static <Solution_> |
createFromXmlResource(String solverConfigResource,
ClassLoader classLoader)
|
abstract SolverConfig |
getSolverConfig()
Allows you to problematically change the
SolverConfig at runtime before building the Solver. |
public static <Solution_> SolverFactory<Solution_> createEmpty()
createFromXmlResource(String)
and configure the remainder programmatically with getSolverConfig().public static <Solution_> SolverFactory<Solution_> createEmpty(ClassLoader classLoader)
createEmpty().classLoader - sometimes null, the ClassLoader to use for loading all resources and Classes,
null to use the default ClassLoaderpublic static <Solution_> SolverFactory<Solution_> createFromKieContainerXmlResource(String solverConfigResource)
KieServices.getKieClasspathContainer().solverConfigResource - never null, a classpath resource in the KieContainer
as defined by ClassLoader.getResource(String)public static <Solution_> SolverFactory<Solution_> createFromKieContainerXmlResource(org.kie.api.builder.ReleaseId releaseId, String solverConfigResource)
releaseId - never nullsolverConfigResource - never null, a classpath resource in the KieContainer
as defined by ClassLoader.getResource(String)public static <Solution_> SolverFactory<Solution_> createFromKieContainerXmlResource(org.kie.api.runtime.KieContainer kieContainer, String solverConfigResource)
kieContainer - never nullsolverConfigResource - never null, a classpath resource in the KieContainer
as defined by ClassLoader.getResource(String)public static <Solution_> SolverFactory<Solution_> createFromXmlResource(String solverConfigResource)
solverConfigResource - never null, a classpath resource
as defined by ClassLoader.getResource(String)public static <Solution_> SolverFactory<Solution_> createFromXmlResource(String solverConfigResource, ClassLoader classLoader)
solverConfigResource - never null, a classpath resource
as defined by ClassLoader.getResource(String)classLoader - sometimes null, the ClassLoader to use for loading all resources and Classes,
null to use the default ClassLoaderpublic static <Solution_> SolverFactory<Solution_> createFromXmlFile(File solverConfigFile)
solverConfigFile - never nullpublic static <Solution_> SolverFactory<Solution_> createFromXmlFile(File solverConfigFile, ClassLoader classLoader)
solverConfigFile - never nullclassLoader - sometimes null, the ClassLoader to use for loading all resources and Classes,
null to use the default ClassLoaderpublic static <Solution_> SolverFactory<Solution_> createFromXmlInputStream(InputStream in)
in - never null, gets closedpublic static <Solution_> SolverFactory<Solution_> createFromXmlInputStream(InputStream in, ClassLoader classLoader)
in - never null, gets closedclassLoader - sometimes null, the ClassLoader to use for loading all resources and Classes,
null to use the default ClassLoaderpublic static <Solution_> SolverFactory<Solution_> createFromXmlReader(Reader reader)
reader - never null, gets closedpublic static <Solution_> SolverFactory<Solution_> createFromXmlReader(Reader reader, ClassLoader classLoader)
reader - never null, gets closedclassLoader - sometimes null, the ClassLoader to use for loading all resources and Classes,
null to use the default ClassLoaderpublic abstract SolverConfig getSolverConfig()
SolverConfig at runtime before building the Solver.
This method is not thread-safe. To configure a SolverConfig differently for parallel requests,
build a template SolverFactory from XML
and clone it cloneSolverFactory() for each request, before before calling this method.
public abstract SolverFactory<Solution_> cloneSolverFactory()
SolverFactory quickly (without parsing XML) that builds the exact same Solver
with buildSolver(), but can also be modified with getSolverConfig() to build a different
Solver without affecting the original SolverFactory.SolverFactory subclass implementation than this instanceCopyright © 2006–2016 JBoss by Red Hat. All rights reserved.