multi event support for a worklet in workflow app

Change-Id: I3178110da75b26f96f8889acc0dd2c715fc567ec
diff --git a/apps/workflow/api/src/main/java/org/onosproject/workflow/api/EventTimeoutTask.java b/apps/workflow/api/src/main/java/org/onosproject/workflow/api/EventTimeoutTask.java
index 9aa870d..2ee2672 100644
--- a/apps/workflow/api/src/main/java/org/onosproject/workflow/api/EventTimeoutTask.java
+++ b/apps/workflow/api/src/main/java/org/onosproject/workflow/api/EventTimeoutTask.java
@@ -17,7 +17,9 @@
 
 import com.google.common.base.MoreObjects;
 
+import java.util.HashSet;
 import java.util.Objects;
+import java.util.Set;
 
 import static org.onosproject.workflow.api.CheckCondition.check;
 
@@ -32,9 +34,9 @@
     private final String eventType;
 
     /**
-     * Event hint value for finding target event.
+     * Set of Event hint value for finding target event.
      */
-    private final String eventHint;
+    private final Set<String> eventHintSet = new HashSet<>();
 
     /**
      * Constructor of EventTimeoutTask.
@@ -43,7 +45,7 @@
     private EventTimeoutTask(Builder builder) {
         super(builder);
         this.eventType = builder.eventType;
-        this.eventHint = builder.eventHint;
+        this.eventHintSet.addAll(builder.eventHintSet);
     }
 
     /**
@@ -55,11 +57,11 @@
     }
 
     /**
-     * Gets event hint value for finding target event.
-     * @return event hint string
+     * Gets set of event hint value for finding target event.
+     * @return event hint set
      */
-    public String eventHint() {
-        return eventHint;
+    public Set<String> eventHintSet() {
+        return eventHintSet;
     }
 
     @Override
@@ -76,7 +78,7 @@
             return false;
         }
         return Objects.equals(this.eventType(), ((EventTask) obj).eventType())
-                && Objects.equals(this.eventHint(), ((EventTask) obj).eventHint());
+                && Objects.equals(this.eventHintSet(), ((EventTask) obj).eventHint());
     }
 
     @Override
@@ -85,7 +87,7 @@
                 .add("context", context())
                 .add("programCounter", programCounter())
                 .add("eventType", eventType())
-                .add("eventHint", eventHint())
+                .add("eventHint", eventHintSet())
                 .toString();
     }
 
@@ -107,9 +109,9 @@
         private String eventType;
 
         /**
-         * Event hint value for finding target event.
+         * Set of Event hint value for finding target event.
          */
-        private String eventHint;
+        private Set<String> eventHintSet;
 
         /**
          * Sets Event type (Class name of event).
@@ -123,11 +125,11 @@
 
         /**
          * Sets event hint string for finding target event.
-         * @param eventHint event hint string
+         * @param eventHintSet Set of event hint string
          * @return builder of EventTimeoutTask
          */
-        public Builder eventHint(String eventHint) {
-            this.eventHint = eventHint;
+        public Builder eventHintSet(Set<String> eventHintSet) {
+            this.eventHintSet = eventHintSet;
             return this;
         }
 
@@ -150,7 +152,7 @@
          */
         public EventTimeoutTask build() throws WorkflowException {
             check(eventType != null, "eventType is invalid");
-            check(eventHint != null, "eventType is invalid");
+            check(eventHintSet != null, "eventHintSet is invalid");
             return new EventTimeoutTask(this);
         }
     }