WIP: Adding PathInstallRuntime for installing flow entries using FlowPusher

I also had to add several methods to our base classes to do type conversion,
which is a bit messy. Also, do to naming overlaps, we need to have some fully
specified class names.

Adding IntentRuntime service to drive the runtimes.

Change-Id: I675fbfe243b0bf18536425dfd9f9e6e5ca795845
diff --git a/src/main/java/net/onrc/onos/intent/Match.java b/src/main/java/net/onrc/onos/intent/Match.java
index c81fe00..3f95ce4 100644
--- a/src/main/java/net/onrc/onos/intent/Match.java
+++ b/src/main/java/net/onrc/onos/intent/Match.java
@@ -3,6 +3,7 @@
 import net.floodlightcontroller.util.MACAddress;
 import net.onrc.onos.ofcontroller.networkgraph.Port;
 import net.onrc.onos.ofcontroller.networkgraph.Switch;
+import net.onrc.onos.ofcontroller.util.FlowEntryMatch;
 
 /**
  * 
@@ -38,6 +39,14 @@
 		}
 	}
 	
+	public FlowEntryMatch getFlowEntryMatch(){
+	    FlowEntryMatch match = new FlowEntryMatch();
+	    match.enableSrcMac(srcMac);
+	    match.enableDstMac(dstMac);
+	    match.enableInPort(new net.onrc.onos.ofcontroller.util.Port(srcPort.getNumber().shortValue()));
+	    return match;
+	}
+	
 	public String toString() {
 		return "(" + srcPort + "," + srcMac + "," + dstMac + ")";
 	}