Added a set of abstractions for flow rule subsystem.
Added an apps source subtree.
diff --git a/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleEvent.java b/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleEvent.java
new file mode 100644
index 0000000..566c2b4
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/net/flow/FlowRuleEvent.java
@@ -0,0 +1,47 @@
+package org.onlab.onos.net.flow;
+
+import org.onlab.onos.event.AbstractEvent;
+
+/**
+ * Describes flow rule event.
+ */
+public class FlowRuleEvent extends AbstractEvent<FlowRuleEvent.Type, FlowRule> {
+
+ /**
+ * Type of flow rule events.
+ */
+ public enum Type {
+ /**
+ * Signifies that a new flow rule has been detected.
+ */
+ RULE_ADDED,
+
+ /**
+ * Signifies that a flow rule has been removed.
+ */
+ RULE_REMOVED,
+ }
+
+ /**
+ * Creates an event of a given type and for the specified flow rule and the
+ * current time.
+ *
+ * @param type flow rule event type
+ * @param flowRule event flow rule subject
+ */
+ public FlowRuleEvent(Type type, FlowRule flowRule) {
+ super(type, flowRule);
+ }
+
+ /**
+ * Creates an event of a given type and for the specified flow rule and time.
+ *
+ * @param type flow rule event type
+ * @param flowRule event flow rule subject
+ * @param time occurrence time
+ */
+ public FlowRuleEvent(Type type, FlowRule flowRule, long time) {
+ super(type, flowRule, time);
+ }
+
+}