Make all leaf intent classes immutable

Change-Id: I45a9ac42a401b707c0c0d91f2e55294f3571ca25
diff --git a/core/api/src/main/java/org/onosproject/net/intent/MplsIntent.java b/core/api/src/main/java/org/onosproject/net/intent/MplsIntent.java
index 22793ae..0c13e3f 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/MplsIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/MplsIntent.java
@@ -22,7 +22,7 @@
 /**
  * Abstraction of MPLS label-switched connectivity.
  */
-public class MplsIntent extends ConnectivityIntent {
+public final class MplsIntent extends ConnectivityIntent {
 
     private final ConnectPoint ingressPoint;
     private final Optional<MplsLabel> ingressLabel;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/MplsPathIntent.java b/core/api/src/main/java/org/onosproject/net/intent/MplsPathIntent.java
index 6c7ffd2..f6602c9 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/MplsPathIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/MplsPathIntent.java
@@ -18,10 +18,10 @@
  * Abstraction of explicit MPLS label-switched path.
  */
 
-public class MplsPathIntent extends PathIntent {
+public final class MplsPathIntent extends PathIntent {
 
-    private Optional<MplsLabel> ingressLabel;
-    private Optional<MplsLabel> egressLabel;
+    private final Optional<MplsLabel> ingressLabel;
+    private final Optional<MplsLabel> egressLabel;
 
     /**
      * Creates a new point-to-point intent with the supplied ingress/egress
diff --git a/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java b/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
index 676b712..d51abbb 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/OpticalConnectivityIntent.java
@@ -24,9 +24,9 @@
  * An optical layer intent for connectivity from one transponder port to another
  * transponder port. No traffic selector or traffic treatment are needed.
  */
-public class OpticalConnectivityIntent extends Intent {
-    protected final ConnectPoint src;
-    protected final ConnectPoint dst;
+public final class OpticalConnectivityIntent extends Intent {
+    private final ConnectPoint src;
+    private final ConnectPoint dst;
 
     /**
      * Creates an optical connectivity intent between the specified
diff --git a/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java b/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
index 123876b..6804c86 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/OpticalPathIntent.java
@@ -24,7 +24,7 @@
 
 import java.util.Collection;
 
-public class OpticalPathIntent extends Intent {
+public final class OpticalPathIntent extends Intent {
 
     private final ConnectPoint src;
     private final ConnectPoint dst;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java b/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
index 7dad6b8..d8434ad 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/PointToPointIntent.java
@@ -33,7 +33,7 @@
 /**
  * Abstraction of point-to-point connectivity.
  */
-public class PointToPointIntent extends ConnectivityIntent {
+public final class PointToPointIntent extends ConnectivityIntent {
 
     private final ConnectPoint ingressPoint;
     private final ConnectPoint egressPoint;
diff --git a/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java b/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
index 2f20449..2531fae 100644
--- a/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
+++ b/core/api/src/main/java/org/onosproject/net/intent/SinglePointToMultiPointIntent.java
@@ -33,7 +33,7 @@
 /**
  * Abstraction of single source, multiple destination connectivity intent.
  */
-public class SinglePointToMultiPointIntent extends ConnectivityIntent {
+public final class SinglePointToMultiPointIntent extends ConnectivityIntent {
 
     private final ConnectPoint ingressPoint;
     private final Set<ConnectPoint> egressPoints;