@Override public final InputProcessor<IndexedContextRoot> getEngine( ContextCreationListener creationListener, ContextModificationListener modificationListener) { SaturationStatistics localStatistics = new SaturationStatistics(); localStatistics.startMeasurements(); creationListener = SaturationUtils.addStatsToContextCreationListener( creationListener, localStatistics.getContextStatistics()); modificationListener = SaturationUtils.addStatsToContextModificationListener( modificationListener, localStatistics.getContextStatistics()); SaturationStateWriter<? extends C> writer = getBaseWriter(creationListener, modificationListener); WorkerLocalTodo localTodo = new WorkerLocalTodoImpl(); WorkerLocalizedSaturationStateWriter<C> optimizedWriter = new WorkerLocalizedSaturationStateWriter<C>(writer, localTodo); writer = SaturationUtils.<C>getStatsAwareWriter(optimizedWriter, localStatistics); writer = getFinalWriter(writer); RuleVisitor ruleVisitor = SaturationUtils.getStatsAwareRuleVisitor(localStatistics.getRuleStatistics()); return getEngine( getConclusionProcessor(ruleVisitor, writer, localStatistics), writer, localTodo, localStatistics); }
/** * @param conclusionProcessor * @param saturationStateWriter * @param localStatistics * @return an {@link InputProcessor} that processes {@link Conclusion}s in {@link Context}s within * an individual worker thread for the input root {@link IndexedClassExpression} using the * supplied {@link SaturationStateWriter} and updates the supplied local {@link * SaturationStatistics} accordingly */ protected InputProcessor<IndexedContextRoot> getEngine( ConclusionVisitor<? super Context, Boolean> conclusionProcessor, SaturationStateWriter<? extends C> saturationStateWriter, WorkerLocalTodo localTodo, SaturationStatistics localStatistics) { conclusionProcessor = SaturationUtils.getTimedConclusionVisitor(conclusionProcessor, localStatistics); return new BasicRuleEngine( saturationState_.getOntologyIndex(), conclusionProcessor, localTodo, this, saturationStateWriter, aggregatedStats_, localStatistics); }