Universe::UniverseJavaSolverFactory class

The UniverseJavaSolverFactory class defines an adapter for a UniverseSolverFactory written in Java (and implementing the JUniverse interface). The factory is invoked through the Java Native Interface (JNI).

Base classes

class IUniverseSolverFactory

Constructors, destructors, conversion operators

UniverseJavaSolverFactory(std::string className) explicit

Public functions

auto createSatSolver() -> Universe::IUniverseSatSolver* override
auto createPseudoBooleanSolver() -> Universe::IUniversePseudoBooleanSolver* override
auto createCspSolver() -> Universe::IUniverseCspSolver* override
template<typename T>
auto createSolver(const std::string& name, easyjni::JavaClass* clazz) -> T*

Function documentation

Universe::UniverseJavaSolverFactory::UniverseJavaSolverFactory(std::string className) explicit

Parameters
className The name of the Java class implementing the solver factory bound to this one.

Creates a new UniverseJavaSolverFactory.

Universe::IUniverseSatSolver* Universe::UniverseJavaSolverFactory::createSatSolver() override

Returns The created solver.

Creates a SAT solver implementing Universe's interface.

Universe::IUniversePseudoBooleanSolver* Universe::UniverseJavaSolverFactory::createPseudoBooleanSolver() override

Returns The created solver.

Creates a pseudo-Boolean solver implementing Universe's interface.

Universe::IUniverseCspSolver* Universe::UniverseJavaSolverFactory::createCspSolver() override

Returns The created solver.

Creates a CSP solver implementing Universe's interface.

template<typename T>
T* Universe::UniverseJavaSolverFactory::createSolver(const std::string& name, easyjni::JavaClass* clazz)

Template parameters
T The type of the solver to create (it may be a Java adapter for either a SAT, pseudo-Boolean or CSP solver).
Parameters
name The name of the solver to create.
clazz The most specific interface implemented by the class of the solver to create (the Java equivalent of the type T).
Returns The created solver.

Creates a solver implementing Universe's interface.