public String getSolverInstanceKey() { return getSolverInstanceKey(this.containerId, this.solverId); }
private SolverInstanceContext internalDisposeSolver(String containerId, String solverId) { // need to dispose resources here SolverInstanceContext sic = solvers.remove(SolverInstance.getSolverInstanceKey(containerId, solverId)); if (sic != null) { synchronized (sic) { if (sic.getInstance().getStatus() == SolverInstance.SolverStatus.SOLVING) { terminateSolverEarly(sic); } } } return sic; }
Object problemFactChanges) { try { SolverInstanceContext sic = solvers.get(SolverInstance.getSolverInstanceKey(containerId, solverId)); if (problemFactChanges instanceof List) {
public ServiceResponse<SolverInstance> getSolver(String containerId, String solverId) { try { SolverInstanceContext sic = solvers.get(SolverInstance.getSolverInstanceKey(containerId, solverId)); if (sic != null) { updateSolverInstance(sic); return new ServiceResponse<>(ServiceResponse.ResponseType.SUCCESS, "Solver '" + solverId + "' state successfully retrieved from container '" + containerId + "'", sic.getInstance()); } else { return new ServiceResponse<>(ServiceResponse.ResponseType.FAILURE, "Solver '" + solverId + "' not found in container '" + containerId + "'", null); } } catch (Exception e) { logger.error("Error retrieving solver '" + solverId + "' state from container '" + containerId + "'", e); return new ServiceResponse<>(ServiceResponse.ResponseType.FAILURE, "Error retrieving solver '" + solverId + "' state from container '" + containerId + "'" + e.getMessage(), null); } }
public ServiceResponse<SolverInstance> getSolverWithBestSolution(String containerId, String solverId) { try { SolverInstanceContext sic = solvers.get(SolverInstance.getSolverInstanceKey(containerId, solverId)); if (sic != null) { updateSolverInstance(sic); sic.getInstance().setBestSolution(sic.getSolver().getBestSolution()); return new ServiceResponse<>(ServiceResponse.ResponseType.SUCCESS, "Best computed solution for '" + solverId + "' successfully retrieved from container '" + containerId + "'", sic.getInstance()); } else { return new ServiceResponse<>(ServiceResponse.ResponseType.FAILURE, "Solver '" + solverId + "' not found in container '" + containerId + "'", null); } } catch (Exception e) { logger.error("Error retrieving solver '" + solverId + "' state from container '" + containerId + "'", e); return new ServiceResponse<>(ServiceResponse.ResponseType.FAILURE, "Error retrieving solver '" + solverId + "' state from container '" + containerId + "'" + e.getMessage(), null); } }
if (solvers.containsKey(instance.getSolverInstanceKey())) { logger.error("Error creating solver. Solver '" + solverId + "' already exists for container '" + containerId + "'."); return new ServiceResponse<>(ServiceResponse.ResponseType.FAILURE, updateSolverInstance(sic); solvers.put(instance.getSolverInstanceKey(), sic);
public ServiceResponse<Void> terminateSolverEarly(String containerId, String solverId) { try { SolverInstanceContext sic = solvers.get(SolverInstance.getSolverInstanceKey(containerId, solverId)); if (sic != null) {
public ServiceResponse<Boolean> isEveryProblemFactChangeProcessed(final String containerId, final String solverId) { try { SolverInstanceContext sic = solvers.get(SolverInstance.getSolverInstanceKey(containerId, solverId)); if (sic != null) {
Object planningProblem) { try { SolverInstanceContext sic = solvers.get(SolverInstance.getSolverInstanceKey(containerId, solverId)); if (sic != null) {