diff --git a/AlgebraicDataflowArchitectureModel/src/application/simulator/UISimulatorWindow.java b/AlgebraicDataflowArchitectureModel/src/application/simulator/UISimulatorWindow.java index f058884..75d5162 100644 --- a/AlgebraicDataflowArchitectureModel/src/application/simulator/UISimulatorWindow.java +++ b/AlgebraicDataflowArchitectureModel/src/application/simulator/UISimulatorWindow.java @@ -5,7 +5,7 @@ import simulator.Simulator; import simulator.interfaces.rest.RestPresenter; -import simulator.interfaces.sql.DatabasePresenter; +import simulator.interfaces.sql.SQLPresenter; import simulator.interfaces.swing.SwingPresenter; import simulator.interfaces.timers.TimerService; @@ -18,7 +18,7 @@ private TimerService timerService; private RestPresenter rest; - private DatabasePresenter db; + private SQLPresenter db; public UISimulatorWindow(Simulator simulator) { setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); @@ -26,7 +26,7 @@ mainPanel = new JPanel(); presenter = new SwingPresenter(mainPanel, simulator); rest = new RestPresenter(simulator); - db = new DatabasePresenter(simulator); + db = new SQLPresenter(simulator); this.add(mainPanel); timerService = new TimerService(simulator); diff --git a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/sql/DatabasePresenter.java b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/sql/DatabasePresenter.java deleted file mode 100644 index 82edd28..0000000 --- a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/sql/DatabasePresenter.java +++ /dev/null @@ -1,56 +0,0 @@ -package simulator.interfaces.sql; - -import models.algebra.Expression; -import models.algebra.Term; -import models.dataConstraintModel.ResourcePath; -import models.dataFlowModel.DataTransferChannel; -import simulator.Event; -import simulator.Resource; -import simulator.ResourceIdentifier; -import simulator.Simulator; -import simulator.SystemState; -import simulator.interfaces.INativeReceiver; - -public class DatabasePresenter implements INativeReceiver{ - - - public final String sendQueryChannelName = "sendQuery"; - public final String setResultChannelName = "setResult"; - - protected Simulator simulator; - - protected DataTransferChannel sendQueryChannel; - protected DataTransferChannel setResultChannel; - - public DatabasePresenter(Simulator simulator) { - this.simulator = simulator; - sendQueryChannel = (DataTransferChannel) simulator.getModel().getChannel(sendQueryChannelName); - setResultChannel = (DataTransferChannel) simulator.getModel().getInputChannel(setResultChannelName); - simulator.addNativeReceiver(this, sendQueryChannel); - } - - @Override - public void onReceiveFromModel(Event event, SystemState nextSystemState) { - Expression message = event.getMessage(); - ResourcePath path = event.getInputResourcePath(); - ResourceIdentifier ri = event.getResourceIdentifier(path); - String dbUrl = ri.getPathParams().get(0).toString().replace("\"", ""); - if(message instanceof Term && ((Term) message).getChildren().size() >= 1) { - Expression query = ((Term) message).getChild(0); - System.out.println(simulator.getCurState()); - String user = simulator.getCurState().getResource("database." + dbUrl + ".user").getState().getValue().toString().replace("\"", ""); - String pass = simulator.getCurState().getResource("database." + dbUrl + ".password").getState().getValue().toString().replace("\"", ""); - - System.out.println(user); - System.out.println(pass); - - Resource sqlRes = nextSystemState.getResource(event.getInputResource().getResourceIdentifier()); - Resource resultRes = sqlRes.getParent().getChildrenMap().get("result"); - - ResourcePath resPath = setResultChannel.getOutputResources().iterator().next(); - ResultSender sender = new ResultSender(simulator, setResultChannel, resPath, resultRes, dbUrl, user, pass); - sender.executeQuery(query.toString().replace("\"", "")); - } - } - -} diff --git a/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/sql/SQLPresenter.java b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/sql/SQLPresenter.java new file mode 100644 index 0000000..d08f106 --- /dev/null +++ b/AlgebraicDataflowArchitectureModel/src/simulator/interfaces/sql/SQLPresenter.java @@ -0,0 +1,56 @@ +package simulator.interfaces.sql; + +import models.algebra.Expression; +import models.algebra.Term; +import models.dataConstraintModel.ResourcePath; +import models.dataFlowModel.DataTransferChannel; +import simulator.Event; +import simulator.Resource; +import simulator.ResourceIdentifier; +import simulator.Simulator; +import simulator.SystemState; +import simulator.interfaces.INativeReceiver; + +public class SQLPresenter implements INativeReceiver{ + + + public final String sendQueryChannelName = "sendQuery"; + public final String setResultChannelName = "setResult"; + + protected Simulator simulator; + + protected DataTransferChannel sendQueryChannel; + protected DataTransferChannel setResultChannel; + + public SQLPresenter(Simulator simulator) { + this.simulator = simulator; + sendQueryChannel = (DataTransferChannel) simulator.getModel().getChannel(sendQueryChannelName); + setResultChannel = (DataTransferChannel) simulator.getModel().getInputChannel(setResultChannelName); + simulator.addNativeReceiver(this, sendQueryChannel); + } + + @Override + public void onReceiveFromModel(Event event, SystemState nextSystemState) { + Expression message = event.getMessage(); + ResourcePath path = event.getInputResourcePath(); + ResourceIdentifier ri = event.getResourceIdentifier(path); + String dbUrl = ri.getPathParams().get(0).toString().replace("\"", ""); + if(message instanceof Term && ((Term) message).getChildren().size() >= 1) { + Expression query = ((Term) message).getChild(0); + System.out.println(simulator.getCurState()); + String user = simulator.getCurState().getResource("database." + dbUrl + ".user").getState().getValue().toString().replace("\"", ""); + String pass = simulator.getCurState().getResource("database." + dbUrl + ".password").getState().getValue().toString().replace("\"", ""); + + System.out.println(user); + System.out.println(pass); + + Resource sqlRes = nextSystemState.getResource(event.getInputResource().getResourceIdentifier()); + Resource resultRes = sqlRes.getParent().getChildrenMap().get("result"); + + ResourcePath resPath = setResultChannel.getOutputResources().iterator().next(); + ResultSender sender = new ResultSender(simulator, setResultChannel, resPath, resultRes, dbUrl, user, pass); + sender.executeQuery(query.toString().replace("\"", "")); + } + } + +}