public abstract class SolverFactory<Solution_ extends 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_ extends 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_ extends Solution> |
createEmpty(ClassLoader classLoader)
See
createEmpty(). |
static <Solution_ extends Solution> |
createFromKieContainerXmlResource(org.kie.api.runtime.KieContainer kieContainer,
String solverConfigResource) |
static <Solution_ extends Solution> |
createFromKieContainerXmlResource(org.kie.api.builder.ReleaseId releaseId,
String solverConfigResource) |
static <Solution_ extends Solution> |
createFromKieContainerXmlResource(String solverConfigResource)
Uses
KieServices.getKieClasspathContainer(). |
static <Solution_ extends Solution> |
createFromXmlFile(File solverConfigFile) |
static <Solution_ extends Solution> |
createFromXmlFile(File solverConfigFile,
ClassLoader classLoader) |
static <Solution_ extends Solution> |
createFromXmlInputStream(InputStream in) |
static <Solution_ extends Solution> |
createFromXmlInputStream(InputStream in,
ClassLoader classLoader) |
static <Solution_ extends Solution> |
createFromXmlReader(Reader reader) |
static <Solution_ extends Solution> |
createFromXmlReader(Reader reader,
ClassLoader classLoader) |
static <Solution_ extends Solution> |
createFromXmlResource(String solverConfigResource) |
static <Solution_ extends 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_ extends Solution> SolverFactory<Solution_> createEmpty()
createFromXmlResource(String)
and configure the remainder programmatically with getSolverConfig().public static <Solution_ extends 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_ extends 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_ extends 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_ extends 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_ extends Solution> SolverFactory<Solution_> createFromXmlResource(String solverConfigResource)
solverConfigResource - never null, a classpath resource
as defined by ClassLoader.getResource(String)public static <Solution_ extends 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_ extends Solution> SolverFactory<Solution_> createFromXmlFile(File solverConfigFile)
solverConfigFile - never nullpublic static <Solution_ extends 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_ extends Solution> SolverFactory<Solution_> createFromXmlInputStream(InputStream in)
in - never null, gets closedpublic static <Solution_ extends 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_ extends Solution> SolverFactory<Solution_> createFromXmlReader(Reader reader)
reader - never null, gets closedpublic static <Solution_ extends 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.