Adding serializer for FilteredConnectPoint

Change-Id: Ie21f2fbbdf8b936719c5c2745a83c3bd662c8cc1
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/FilteredConnectPointSerializer.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/FilteredConnectPointSerializer.java
new file mode 100644
index 0000000..0acab04
--- /dev/null
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/FilteredConnectPointSerializer.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2016-present 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.store.serializers;
+
+import com.esotericsoftware.kryo.Kryo;
+import com.esotericsoftware.kryo.Serializer;
+import com.esotericsoftware.kryo.io.Input;
+import com.esotericsoftware.kryo.io.Output;
+import org.onosproject.net.ConnectPoint;
+import org.onosproject.net.FilteredConnectPoint;
+import org.onosproject.net.flow.TrafficSelector;
+
+/**
+ * Kryo Serializer for {@link FilteredConnectPointSerializer}.
+ */
+public class FilteredConnectPointSerializer extends Serializer<FilteredConnectPoint> {
+
+    /**
+     * Creates {@link FilteredConnectPointSerializer} serializer instance.
+     */
+    public FilteredConnectPointSerializer() {
+        // non-null, immutable
+        super(false, true);
+    }
+
+    @Override
+    public void write(Kryo kryo, Output output, FilteredConnectPoint object) {
+        kryo.writeClassAndObject(output, object.connectPoint());
+        kryo.writeClassAndObject(output, object.trafficSelector());
+    }
+
+    @Override
+    public FilteredConnectPoint read(Kryo kryo, Input input, Class<FilteredConnectPoint> type) {
+        ConnectPoint connectPoint = (ConnectPoint) kryo.readClassAndObject(input);
+        TrafficSelector trafficSelector = (TrafficSelector) kryo.readClassAndObject(input);
+        return new FilteredConnectPoint(connectPoint, trafficSelector);
+    }
+}
diff --git a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
index 64eda0e..aac942f 100644
--- a/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
+++ b/core/store/serializers/src/main/java/org/onosproject/store/serializers/KryoNamespaces.java
@@ -68,6 +68,7 @@
 import org.onosproject.net.DeviceId;
 import org.onosproject.net.Element;
 import org.onosproject.net.EncapsulationType;
+import org.onosproject.net.FilteredConnectPoint;
 import org.onosproject.net.GridType;
 import org.onosproject.net.HostId;
 import org.onosproject.net.HostLocation;
@@ -500,6 +501,7 @@
             .register(new DefaultPortSerializer(), DefaultPort.class)
             .register(new LinkKeySerializer(), LinkKey.class)
             .register(new ConnectPointSerializer(), ConnectPoint.class)
+            .register(new FilteredConnectPointSerializer(), FilteredConnectPoint.class)
             .register(new DefaultLinkSerializer(), DefaultLink.class)
             .register(new MastershipTermSerializer(), MastershipTerm.class)
             .register(new HostLocationSerializer(), HostLocation.class)