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;
diff --git a/core/api/src/test/java/org/onosproject/net/intent/MplsIntentTest.java b/core/api/src/test/java/org/onosproject/net/intent/MplsIntentTest.java
new file mode 100644
index 0000000..7daf09e
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/net/intent/MplsIntentTest.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.net.intent;
+
+import org.junit.Test;
+
+import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
+
+/**
+ * Unit tests for the MplsIntent class.
+ */
+
+public class MplsIntentTest {
+
+ /**
+ * Checks that the MplsIntent class is immutable.
+ */
+ @Test
+ public void testImmutability() {
+ assertThatClassIsImmutable(MplsIntent.class);
+ }
+
+}
diff --git a/core/api/src/test/java/org/onosproject/net/intent/MplsPathIntentTest.java b/core/api/src/test/java/org/onosproject/net/intent/MplsPathIntentTest.java
new file mode 100644
index 0000000..020e4bd
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/net/intent/MplsPathIntentTest.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.net.intent;
+
+import org.junit.Test;
+
+import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
+
+/**
+ * Unit tests for the MplsPathIntent class.
+ */
+public class MplsPathIntentTest {
+
+ /**
+ * Checks that the MplsPathIntent class is immutable.
+ */
+ @Test
+ public void testImmutability() {
+ assertThatClassIsImmutable(MplsPathIntent.class);
+ }
+
+}
diff --git a/core/api/src/test/java/org/onosproject/net/intent/OpticalConnectivityIntentTest.java b/core/api/src/test/java/org/onosproject/net/intent/OpticalConnectivityIntentTest.java
new file mode 100644
index 0000000..7df220c
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/net/intent/OpticalConnectivityIntentTest.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.net.intent;
+
+import org.junit.Test;
+
+import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
+
+/**
+ * Unit tests for the OpticalConnectivityIntent class.
+ */
+public class OpticalConnectivityIntentTest {
+
+ /**
+ * Checks that the HostToHostIntent class is immutable.
+ */
+ @Test
+ public void testImmutability() {
+ assertThatClassIsImmutable(OpticalConnectivityIntent.class);
+ }
+
+}
diff --git a/core/api/src/test/java/org/onosproject/net/intent/OpticalPathIntentTest.java b/core/api/src/test/java/org/onosproject/net/intent/OpticalPathIntentTest.java
new file mode 100644
index 0000000..a9e3b56
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/net/intent/OpticalPathIntentTest.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.net.intent;
+
+import org.junit.Test;
+
+import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
+
+public class OpticalPathIntentTest {
+
+ /**
+ * Checks that the OpticalPathIntent class is immutable.
+ */
+ @Test
+ public void testImmutability() {
+ assertThatClassIsImmutable(OpticalPathIntent.class);
+ }
+
+}
diff --git a/core/api/src/test/java/org/onosproject/net/intent/SinglePointToMultiPointIntentTest.java b/core/api/src/test/java/org/onosproject/net/intent/SinglePointToMultiPointIntentTest.java
index d997de8..f0f8ebf 100644
--- a/core/api/src/test/java/org/onosproject/net/intent/SinglePointToMultiPointIntentTest.java
+++ b/core/api/src/test/java/org/onosproject/net/intent/SinglePointToMultiPointIntentTest.java
@@ -18,12 +18,21 @@
import org.junit.Test;
import static org.junit.Assert.assertEquals;
+import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
/**
* Suite of tests of the single-to-multi point intent descriptor.
*/
public class SinglePointToMultiPointIntentTest extends ConnectivityIntentTest {
+ /**
+ * Checks that the SinglePointToMultiPointIntent class is immutable.
+ */
+ @Test
+ public void testImmutability() {
+ assertThatClassIsImmutable(SinglePointToMultiPointIntent.class);
+ }
+
@Test
public void basics() {
SinglePointToMultiPointIntent intent = createOne();
diff --git a/core/api/src/test/java/org/onosproject/net/intent/TwoWayP2PIntentTest.java b/core/api/src/test/java/org/onosproject/net/intent/TwoWayP2PIntentTest.java
new file mode 100644
index 0000000..08a9656
--- /dev/null
+++ b/core/api/src/test/java/org/onosproject/net/intent/TwoWayP2PIntentTest.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2015 Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.onosproject.net.intent;
+
+import org.junit.Test;
+
+import static org.onlab.junit.ImmutableClassChecker.assertThatClassIsImmutable;
+
+/**
+ * Unit tests for the TwoWayP2PIntent class.
+ */
+public class TwoWayP2PIntentTest {
+
+ /**
+ * Checks that the TwoWayP2PIntent class is immutable.
+ */
+ @Test
+ public void testImmutability() {
+ assertThatClassIsImmutable(TwoWayP2PIntent.class);
+ }
+
+}