[TASK] Enhance even further, allow custom observers per query.
This commit is contained in:
@@ -15,7 +15,6 @@ import eu.larkc.csparql.core.engine.CsparqlQueryResultProxy;
|
||||
import eu.larkc.csparql.core.engine.RDFStreamFormatter;
|
||||
import lu.jpt.csparqlproject.gui.FancyTextObserverWindow;
|
||||
import lu.jpt.csparqlproject.misc.QueryContainer;
|
||||
import lu.jpt.csparqlproject.misc.ReasoningTester;
|
||||
import lu.jpt.csparqlproject.rentacar.RentACarSimulation;
|
||||
|
||||
/**
|
||||
@@ -147,7 +146,7 @@ public class SimulationContext {
|
||||
// DEBUGGING ONLY
|
||||
//ReasoningTester rt = new ReasoningTester(this.engine);
|
||||
// Spawn the whole simulation - this takes care of simulation-specific things
|
||||
simulation = new RentACarSimulation();
|
||||
simulation = new RentACarSimulation(this.engine);
|
||||
// Register all the event streams
|
||||
// Register car event stream
|
||||
RdfStream carStream = simulation.getCarStream();
|
||||
@@ -159,14 +158,16 @@ public class SimulationContext {
|
||||
this.registeredStreams.add(driverStream);
|
||||
Collection<QueryContainer> queriesToRegister = new ArrayList<QueryContainer>();
|
||||
// Collect the queries to use!
|
||||
queriesToRegister.add(RentACarSimulation.getStandingCarsStream());
|
||||
queriesToRegister.add(RentACarSimulation.getMovingCarsStream());
|
||||
queriesToRegister.add(RentACarSimulation.getStronglyAcceleratingCarsStream());
|
||||
queriesToRegister.add(RentACarSimulation.getStronglyBrakingCarsStream());
|
||||
queriesToRegister.add(RentACarSimulation.getEngineWearStream());
|
||||
queriesToRegister.add(RentACarSimulation.getBrakeWearStream());
|
||||
queriesToRegister.add(RentACarSimulation.getHandbrakeWearStream());
|
||||
queriesToRegister.add(RentACarSimulation.getTireWearStream());
|
||||
queriesToRegister.add(simulation.getStandingCarsStream());
|
||||
queriesToRegister.add(simulation.getMovingCarsStream());
|
||||
queriesToRegister.add(simulation.getStronglyAcceleratingCarsStream());
|
||||
queriesToRegister.add(simulation.getStronglyBrakingCarsStream());
|
||||
queriesToRegister.add(simulation.getEngineWearStream());
|
||||
queriesToRegister.add(simulation.getBrakeWearStream());
|
||||
queriesToRegister.add(simulation.getHandbrakeWearStream());
|
||||
queriesToRegister.add(simulation.getTireWearStream());
|
||||
queriesToRegister.add(simulation.getCarTakenEventsQuery());
|
||||
queriesToRegister.add(simulation.getCarReturnedEventsQuery());
|
||||
// Now register each query appropriately!
|
||||
for(QueryContainer queryContainer : queriesToRegister) {
|
||||
CsparqlQueryResultProxy resultProxy = null;
|
||||
@@ -189,6 +190,11 @@ public class SimulationContext {
|
||||
Observer resultObserver = this.createResultObserverWindow(queryContainer.name);
|
||||
resultProxy.addObserver(resultObserver);
|
||||
}
|
||||
// Attach custom observers to resultProxy if available
|
||||
// These are used for SPARQL UPDATE queries on local domain knowledge
|
||||
if(queryContainer.customObserver != null) {
|
||||
resultProxy.addObserver(queryContainer.customObserver);
|
||||
}
|
||||
this.queryResultProxies.add(resultProxy);
|
||||
SimulationContext.logger.info("Successfully registered query " + queryContainer.name + ": " + queryContainer);
|
||||
} catch (Exception e) {
|
||||
|
||||
Reference in New Issue
Block a user