xintongsong commented on code in PR #45:
URL: https://github.com/apache/flink-agents/pull/45#discussion_r2184143705


##########
plan/src/main/java/org/apache/flink/agents/plan/WorkflowPlan.java:
##########
@@ -18,24 +18,32 @@
 
 package org.apache.flink.agents.plan;
 
-import org.apache.flink.agents.api.Event;
+import org.apache.flink.agents.plan.serializer.WorkflowPlanJsonDeserializer;
+import org.apache.flink.agents.plan.serializer.WorkflowPlanJsonSerializer;
+import 
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import 
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 import java.util.List;
 import java.util.Map;
 
 /** Workflow plan compiled from user defined workflow. */
+@JsonSerialize(using = WorkflowPlanJsonSerializer.class)
+@JsonDeserialize(using = WorkflowPlanJsonDeserializer.class)
 public class WorkflowPlan {
-    private final Map<Class<? extends Event>, List<Action>> actions;
+    private final Map<String, Action> actions;
+    private final Map<String, List<Action>> eventTriggerActions;

Review Comment:
   ```suggestion
       private final Map<String, Action> actions; // actionName -> action
       private final Map<String, List<Action>> actionsByEvent; // 
eventClassName -> actions
   ```



##########
plan/src/main/java/org/apache/flink/agents/plan/WorkflowPlan.java:
##########
@@ -18,24 +18,32 @@
 
 package org.apache.flink.agents.plan;
 
-import org.apache.flink.agents.api.Event;
+import org.apache.flink.agents.plan.serializer.WorkflowPlanJsonDeserializer;
+import org.apache.flink.agents.plan.serializer.WorkflowPlanJsonSerializer;
+import 
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import 
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 import java.util.List;
 import java.util.Map;
 
 /** Workflow plan compiled from user defined workflow. */
+@JsonSerialize(using = WorkflowPlanJsonSerializer.class)
+@JsonDeserialize(using = WorkflowPlanJsonDeserializer.class)
 public class WorkflowPlan {
-    private final Map<Class<? extends Event>, List<Action>> actions;
+    private final Map<String, Action> actions;
+    private final Map<String, List<Action>> eventTriggerActions;
 
-    public WorkflowPlan(Map<Class<? extends Event>, List<Action>> actions) {
+    public WorkflowPlan(
+            Map<String, Action> actions, Map<String, List<Action>> 
eventTriggerActions) {
         this.actions = actions;
+        this.eventTriggerActions = eventTriggerActions;
     }
 
-    public List<Action> getAction(Class<? extends Event> type) {
-        return actions.get(type);
+    public Map<String, Action> getActions() {
+        return actions;
     }
 
-    public Map<Class<? extends Event>, List<Action>> getActions() {
-        return actions;
+    public Map<String, List<Action>> getEventTriggerActions() {

Review Comment:
   ```suggestion
       public Map<String, List<Action>> getActionsByEvent() {
   ```



##########
plan/src/main/java/org/apache/flink/agents/plan/PythonFunction.java:
##########
@@ -48,7 +48,13 @@ public Object call(Object... args) throws Exception {
 
     // TODO: check Python function signature compatibility with given 
parameter types
     @Override
-    public void checkSignature(Class<?>[] parameterTypes) throws Exception {
-        throw new UnsupportedOperationException();
+    public void checkSignature(Class<?>[] parameterTypes) throws Exception {}

Review Comment:
   What is the plan for implementation of this method? Shall we at least create 
a issue for this? Because the todo comment can easily get overlooked.



##########
plan/src/main/java/org/apache/flink/agents/plan/WorkflowPlan.java:
##########
@@ -18,24 +18,32 @@
 
 package org.apache.flink.agents.plan;
 
-import org.apache.flink.agents.api.Event;
+import org.apache.flink.agents.plan.serializer.WorkflowPlanJsonDeserializer;
+import org.apache.flink.agents.plan.serializer.WorkflowPlanJsonSerializer;
+import 
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import 
org.apache.flink.shaded.jackson2.com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 import java.util.List;
 import java.util.Map;
 
 /** Workflow plan compiled from user defined workflow. */
+@JsonSerialize(using = WorkflowPlanJsonSerializer.class)
+@JsonDeserialize(using = WorkflowPlanJsonDeserializer.class)
 public class WorkflowPlan {
-    private final Map<Class<? extends Event>, List<Action>> actions;
+    private final Map<String, Action> actions;
+    private final Map<String, List<Action>> eventTriggerActions;

Review Comment:
   I'm aware that the current field name `eventTriggerActions` is aligned with 
the python workflow plan. But I think `actionsByEvent` is better for 
readability. Maybe we can have a separate follow-up commit to fix this for both 
java and python.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to