[ONOS-2476]: Circuit intent support for ODU Multiplexing

Change-Id: I37229e7107e38baf8416102598f27004ef319665
diff --git a/cli/src/main/java/org/onosproject/cli/net/IntentsListCommand.java b/cli/src/main/java/org/onosproject/cli/net/IntentsListCommand.java
index 55b9ec9..3bed89b 100644
--- a/cli/src/main/java/org/onosproject/cli/net/IntentsListCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/net/IntentsListCommand.java
@@ -27,6 +27,8 @@
 import org.onosproject.net.intent.IntentState;
 import org.onosproject.net.intent.LinkCollectionIntent;
 import org.onosproject.net.intent.MultiPointToSinglePointIntent;
+import org.onosproject.net.intent.OpticalCircuitIntent;
+import org.onosproject.net.intent.OpticalConnectivityIntent;
 import org.onosproject.net.intent.PathIntent;
 import org.onosproject.net.intent.PointToPointIntent;
 import org.onosproject.net.intent.SinglePointToMultiPointIntent;
@@ -114,6 +116,8 @@
         private IntentSummary summarySinglePointToMultiPoint;
         private IntentSummary summaryPath;
         private IntentSummary summaryLinkCollection;
+        private IntentSummary summaryOpticalCircuit;
+        private IntentSummary summaryOpticalConnectivity;
         private IntentSummary summaryUnknownType;
 
         /**
@@ -130,6 +134,8 @@
                 new IntentSummary("SinglePointToMultiPoint");
             summaryPath = new IntentSummary("Path");
             summaryLinkCollection = new IntentSummary("LinkCollection");
+            summaryOpticalCircuit = new IntentSummary("OpticalCircuit");
+            summaryOpticalConnectivity = new IntentSummary("OpticalConnectivity");
             summaryUnknownType = new IntentSummary("UnknownType");
         }
 
@@ -182,7 +188,14 @@
                     summaryLinkCollection.update(intentState);
                     continue;
                 }
-
+                if (intent instanceof OpticalCircuitIntent) {
+                    summaryOpticalCircuit.update(intentState);
+                    continue;
+                }
+                if (intent instanceof OpticalConnectivityIntent) {
+                    summaryOpticalConnectivity.update(intentState);
+                    continue;
+                }
                 summaryUnknownType.update(intentState);
             }
         }
@@ -204,6 +217,8 @@
                        summarySinglePointToMultiPoint.json(mapper));
             result.set("path", summaryPath.json(mapper));
             result.set("linkCollection", summaryLinkCollection.json(mapper));
+            result.set("opticalCircuit", summaryOpticalCircuit.json(mapper));
+            result.set("opticalConnectivity", summaryOpticalConnectivity.json(mapper));
             result.set("unknownType", summaryUnknownType.json(mapper));
             result.set("all", summaryAll.json(mapper));
             return result;
@@ -220,6 +235,8 @@
             summarySinglePointToMultiPoint.printState();
             summaryPath.printState();
             summaryLinkCollection.printState();
+            summaryOpticalCircuit.printState();
+            summaryOpticalConnectivity.printState();
             summaryUnknownType.printState();
             summaryAll.printState();
         }
@@ -378,6 +395,12 @@
             LinkCollectionIntent li = (LinkCollectionIntent) intent;
             print("    links=%s", li.links());
             print("    egress=%s", li.egressPoints());
+        } else if (intent instanceof OpticalCircuitIntent) {
+            OpticalCircuitIntent ci = (OpticalCircuitIntent) intent;
+            print("    src=%s, dst=%s", ci.getSrc(), ci.getDst());
+        } else if (intent instanceof OpticalConnectivityIntent) {
+            OpticalConnectivityIntent ci = (OpticalConnectivityIntent) intent;
+            print("    src=%s, dst=%s", ci.getSrc(), ci.getDst());
         }
 
         List<Intent> installable = service.getInstallableIntents(intent.key());