public void fireActivation(final Object transition) { if (fireActivationSilent(transition)) { return; } StringBuilder sb = new StringBuilder(); sb.append("A retrieved Transition SHOULD have a matching Activation. Possible causes: the state serializer is faulty; the algorithm choosed a wrong Transition."); sb.append("\nSought transition: "); sb.append(transition); Object currentStateId = getCurrentState(); sb.append("\nCurrent known state: "); sb.append(currentStateId); Object actualStateId = stateCoder.createStateCode(); sb.append("\nActual state: "); sb.append((actualStateId.equals(currentStateId) ? "same as current" : actualStateId)); sb.append("\n"); sb.append(trajectory); sb.append("\nAvailable transitions:"); for (Activation<?> act : conflictSet.getNextActivations()) { IPatternMatch match = (IPatternMatch) act.getAtom(); Object code = generateMatchCode(match); sb.append("\n\t"); sb.append(code); } throw new DSEException(sb.toString()); }
public synchronized void newSolution(ThreadContext context) { solutionSaver.setSolutionsCollection(solutions); Fitness fitness = context.getLastFitness(); DesignSpaceManager dsm = context.getDesignSpaceManager(); Object id = dsm.getCurrentState(); IStateCoderFactory stateCoderFactory = context.getGlobalContext().getStateCoderFactory(); SolutionTrajectory solutionTrajectory = dsm.getTrajectoryInfo().createSolutionTrajectory(stateCoderFactory); solutionTrajectory.setFitness(fitness); if (acceptOnlyGoalSolutions && !fitness.isSatisifiesHardObjectives()) { unsavedSolutionCallbacks(context, solutionTrajectory); return; } boolean solutionSaved = solutionSaver.saveSolution(context, id, solutionTrajectory); if (solutionSaved) { enoughSolutions.solutionFound(context, solutionTrajectory); savedSolutionCallbacks(context, solutionTrajectory); if (enoughSolutions.enoughSolutions()) { context.getGlobalContext().stopAllThreads(); } } else { unsavedSolutionCallbacks(context, solutionTrajectory); } }