diff --git a/src/main/java/de/tudresden/inf/st/sample/Main.java b/src/main/java/de/tudresden/inf/st/sample/Main.java index 1b91b2f05f85878f471ca4209a51d4066cde344c..041de185855a382ccb82397e7deaa8ecc59efb83 100644 --- a/src/main/java/de/tudresden/inf/st/sample/Main.java +++ b/src/main/java/de/tudresden/inf/st/sample/Main.java @@ -1,7 +1,5 @@ package de.tudresden.inf.st.sample; -import com.fasterxml.jackson.databind.ObjectMapper; -import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback; import de.tudresden.inf.st.pnml.engine.execution.TransitionCallbackService; import de.tudresden.inf.st.pnml.engine.ros.DiNeRosNode; import de.tudresden.inf.st.pnml.engine.transform.PetriNetInitializer; @@ -9,8 +7,7 @@ import de.tudresden.inf.st.pnml.jastadd.model.BalloonCallbackStorage; import de.tudresden.inf.st.pnml.jastadd.model.BalloonMarking; import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; import de.tudresden.inf.st.pnml.jastadd.model.PnmlParser; -import de.tudresden.inf.st.sample.balloon.Token; -import de.tudresden.inf.st.sample.callback.AbstractNetCallback; +import de.tudresden.inf.st.sample.callback.AbstractHandler; import de.tudresden.inf.st.sample.callback.CallbackMapper; import de.tudresden.inf.st.sample.communication.Node2Subscriber1; import de.tudresden.inf.st.sample.nodes.Node1; @@ -76,18 +73,18 @@ public class Main { * Callback and token integration */ - Map<String, List<AbstractNetCallback>> callbackMap1 = CallbackMapper.initCallbacksForNode1(petriNets.get(0)); + Map<String, List<AbstractHandler>> callbackMap1 = CallbackMapper.initCallbacksForNode1(petriNets.get(0)); - for (Map.Entry<String, List<AbstractNetCallback>> entry : callbackMap1.entrySet()) { - for(AbstractNetCallback anc : entry.getValue()){ + for (Map.Entry<String, List<AbstractHandler>> entry : callbackMap1.entrySet()) { + for(AbstractHandler anc : entry.getValue()){ transitionCallbackService.registerCallback(petriNets.get(0), entry.getKey(), anc); } } - Map<String, List<AbstractNetCallback>> callbackMap2 = CallbackMapper.initCallbacksForNode2(petriNets.get(1)); + Map<String, List<AbstractHandler>> callbackMap2 = CallbackMapper.initCallbacksForNode2(petriNets.get(1)); - for (Map.Entry<String, List<AbstractNetCallback>> entry : callbackMap2.entrySet()) { - for(AbstractNetCallback anc : entry.getValue()){ + for (Map.Entry<String, List<AbstractHandler>> entry : callbackMap2.entrySet()) { + for(AbstractHandler anc : entry.getValue()){ transitionCallbackService.registerCallback(petriNets.get(1), entry.getKey(), anc); } } diff --git a/src/main/java/de/tudresden/inf/st/sample/balloon/Token.java b/src/main/java/de/tudresden/inf/st/sample/balloon/Token.java index 43cbf6c728144764ab3fde6001c2447882c0237d..2283f595cdcbe4024abc4bef77042dc466032369 100644 --- a/src/main/java/de/tudresden/inf/st/sample/balloon/Token.java +++ b/src/main/java/de/tudresden/inf/st/sample/balloon/Token.java @@ -6,23 +6,32 @@ import java.util.List; // input file provide by user public class Token { - private String field; + private String object; + private String color; + private boolean pickPlaceSuccess; + private List<String> errorList = new ArrayList<>(); - private List<String> fieldList = new ArrayList<>(); - - public String getField() { - return field; + public String getObject() { + return object; } - public void setField(String field) { - this.field = field; + public void setObject(String object) { + this.object = object; } - public List<String> getFieldList() { - return fieldList; + public List<String> getErrorList() { + return errorList; } - public void setFieldList(List<String> fieldList) { - this.fieldList = fieldList; + public void setErrorList(List<String> errorList) { + this.errorList = errorList; } + + public String getColor() { return color; } + + public void setColor(String color) { this.color = color; } + + public boolean isPickPlaceSuccess() { return pickPlaceSuccess; } + + public void setPickPlaceSuccess(boolean pickPlaceSuccess) { this.pickPlaceSuccess = pickPlaceSuccess; } } diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/AbstractNetCallback.java b/src/main/java/de/tudresden/inf/st/sample/callback/AbstractHandler.java similarity index 90% rename from src/main/java/de/tudresden/inf/st/sample/callback/AbstractNetCallback.java rename to src/main/java/de/tudresden/inf/st/sample/callback/AbstractHandler.java index 96804024fc4b51c98d915e71786432e5b818aa8b..1f227706fee86f1a5281430c6610b80288dc899d 100644 --- a/src/main/java/de/tudresden/inf/st/sample/callback/AbstractNetCallback.java +++ b/src/main/java/de/tudresden/inf/st/sample/callback/AbstractHandler.java @@ -13,13 +13,13 @@ import java.util.List; // only the token class is generated, this is a static class // this class gets extended by the user for concrete callbacks // this class hides (de-)serialisation of the tokens -public abstract class AbstractNetCallback extends TransitionCallback { +public abstract class AbstractHandler extends TransitionCallback { - public AbstractNetCallback(String id, int priority, List<String> params) { + public AbstractHandler(String id, int priority, List<String> params) { super(id, priority, params); } - public AbstractNetCallback(String id, int priority) { + public AbstractHandler(String id, int priority) { super(id, priority); } diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java b/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java index 4f96aae1de5d00f25d49760cf5830d7413533780..c595dd98badd9b46d63a1c693132a4e8d9a32eb9 100644 --- a/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java +++ b/src/main/java/de/tudresden/inf/st/sample/callback/CallbackMapper.java @@ -1,7 +1,5 @@ package de.tudresden.inf.st.sample.callback; -import de.tudresden.inf.st.pnml.engine.execution.DefaultTransitionCallback; -import de.tudresden.inf.st.pnml.engine.execution.TransitionCallback; import de.tudresden.inf.st.pnml.jastadd.model.PetriNet; import de.tudresden.inf.st.pnml.jastadd.model.Transition; @@ -16,9 +14,9 @@ import java.util.Map; public class CallbackMapper { // methods generated for each petri net - public static final Map<String, List<AbstractNetCallback>> initCallbacksForNode1(PetriNet petriNet){ + public static final Map<String, List<AbstractHandler>> initCallbacksForNode1(PetriNet petriNet){ - Map<String, List<AbstractNetCallback>> callbackMap = new HashMap<>(); + Map<String, List<AbstractHandler>> callbackMap = new HashMap<>(); // TODO: implementation by user @@ -26,7 +24,7 @@ public class CallbackMapper { for(Transition t : petriNet.allTransitions()){ if(t.asInputSignalTransition().getStaticTransitionInformation().isDefaultTransitionInformation()){ - List<AbstractNetCallback> cbList = new ArrayList<>(); + List<AbstractHandler> cbList = new ArrayList<>(); cbList.add(callback); callbackMap.put(t.getId(), cbList); } @@ -36,9 +34,9 @@ public class CallbackMapper { } // methods generated for each petri net - public static final Map<String, List<AbstractNetCallback>> initCallbacksForNode2(PetriNet petriNet){ + public static final Map<String, List<AbstractHandler>> initCallbacksForNode2(PetriNet petriNet){ - Map<String, List<AbstractNetCallback>> callbackMap = new HashMap<>(); + Map<String, List<AbstractHandler>> callbackMap = new HashMap<>(); // TODO: implementation by user @@ -46,7 +44,7 @@ public class CallbackMapper { for(Transition t : petriNet.allTransitions()){ if(t.asInputSignalTransition().getStaticTransitionInformation().isDefaultTransitionInformation()){ - List<AbstractNetCallback> cbList = new ArrayList<>(); + List<AbstractHandler> cbList = new ArrayList<>(); cbList.add(callback); callbackMap.put(t.getId(), cbList); } diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/FeedbackHandler.java b/src/main/java/de/tudresden/inf/st/sample/callback/FeedbackHandler.java new file mode 100644 index 0000000000000000000000000000000000000000..24a884c63aa6a699f29b47260299a4de9f64a605 --- /dev/null +++ b/src/main/java/de/tudresden/inf/st/sample/callback/FeedbackHandler.java @@ -0,0 +1,33 @@ +package de.tudresden.inf.st.sample.callback; + +import de.tudresden.inf.st.sample.balloon.Token; + +import java.util.List; + +public class FeedbackHandler extends AbstractHandler{ + + public FeedbackHandler(String id, int priority) { + super(id, priority); + } + + void print(String line) { + System.out.println(line); + } + + @Override + public void processTokenCallback(List<Token> tokens) { + + Token result = tokens.get(0); + String color = result.getColor(); + String object = result.getObject(); + + if(result.isPickPlaceSuccess()){ + print("Successfully sorted object " + object + " with color " + color); + } else { + print("Failed to sort object " + object); + result.getErrorList().forEach(err -> print(err)); + } + + tokens.subList(1, tokens.size()).clear(); + } +} diff --git a/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java b/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java index 9bcd27ed1e58f9fbc5e243e2071b0d08a75c0c0e..f702fb91c02cf2ea12d3105d93ea647e7f830c03 100644 --- a/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java +++ b/src/main/java/de/tudresden/inf/st/sample/callback/SampleNetCallback.java @@ -4,7 +4,7 @@ import de.tudresden.inf.st.sample.balloon.Token; import java.util.List; -public class SampleNetCallback extends AbstractNetCallback{ +public class SampleNetCallback extends AbstractHandler { public SampleNetCallback(String id, int priority, List<String> params) { super(id, priority, params);