@FromState("Started") @OnMessage(performative = "QueryRef") @PossibleOutcome("Completed") public WorkflowStateConstant onQueryRef(Message msg) throws Throwable { traversal = getPart(msg, CONTENT); CopyGraphTraversal copyTraversal = null; if (traversal instanceof CopyGraphTraversal) copyTraversal = (CopyGraphTraversal) traversal; else if (traversal instanceof HyperTraversal) { ((HyperTraversal) traversal).setHyperGraph(getThisPeer().getGraph()); copyTraversal = (CopyGraphTraversal) ((HyperTraversal) traversal).getFlatTraversal(); } else throw new Exception("Expecting a CopyGraphTraversal or a HyperTraversal."); if (trace) getThisPeer() .getGraph() .getLogger() .trace("Recevied request for traversal : " + copyTraversal); ((DefaultALGenerator) copyTraversal.getAdjListGenerator()).setGraph(getThisPeer().getGraph()); Message reply = getReply(msg, Performative.InformRef); Object subgraph = SubgraphManager.getTransferGraphRepresentation(getThisPeer().getGraph(), traversal); combine(reply, struct(CONTENT, subgraph)); send(getSender(msg), reply); if (trace) getThisPeer().getGraph().getLogger().trace("Sent response to traversal : " + copyTraversal); return WorkflowState.Completed; }
@FromState("Started") @OnMessage(performative = "InformRef") @PossibleOutcome("Completed") public WorkflowStateConstant onInformRef(Message msg) throws ClassNotFoundException { if (trace) getThisPeer().getGraph().getLogger().trace("Received response for traversal : " + traversal); SubgraphManager.writeTransferedGraph( getPart(msg, CONTENT), getThisPeer().getGraph(), atomFinder); if (trace) getThisPeer().getGraph().getLogger().trace("Successfully stored graph for : " + traversal); return WorkflowState.Completed; }