Sketching out what link-state addition would look like; quite easy until we get to the distributed store.
Added unit tests to provide durable-nondurable transitions.
FIxed issue where link could be accidentally activated.
Renamed parameter.

Change-Id: I8aa19a6583ec50dbf28769995f0a8ea9be9a4daa
diff --git a/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/DefaultLinkSerializer.java b/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/DefaultLinkSerializer.java
index a79e4d4..a787012 100644
--- a/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/DefaultLinkSerializer.java
+++ b/core/store/serializers/src/main/java/org/onlab/onos/store/serializers/DefaultLinkSerializer.java
@@ -15,15 +15,15 @@
  */
 package org.onlab.onos.store.serializers;
 
-import org.onlab.onos.net.ConnectPoint;
-import org.onlab.onos.net.DefaultLink;
-import org.onlab.onos.net.Link.Type;
-import org.onlab.onos.net.provider.ProviderId;
-
 import com.esotericsoftware.kryo.Kryo;
 import com.esotericsoftware.kryo.Serializer;
 import com.esotericsoftware.kryo.io.Input;
 import com.esotericsoftware.kryo.io.Output;
+import org.onlab.onos.net.ConnectPoint;
+import org.onlab.onos.net.DefaultLink;
+import org.onlab.onos.net.Link.State;
+import org.onlab.onos.net.Link.Type;
+import org.onlab.onos.net.provider.ProviderId;
 
 /**
  * Kryo Serializer for {@link DefaultLink}.
@@ -44,6 +44,8 @@
         kryo.writeClassAndObject(output, object.src());
         kryo.writeClassAndObject(output, object.dst());
         kryo.writeClassAndObject(output, object.type());
+        kryo.writeClassAndObject(output, object.state());
+        kryo.writeClassAndObject(output, object.isDurable());
     }
 
     @Override
@@ -52,6 +54,8 @@
         ConnectPoint src = (ConnectPoint) kryo.readClassAndObject(input);
         ConnectPoint dst = (ConnectPoint) kryo.readClassAndObject(input);
         Type linkType = (Type) kryo.readClassAndObject(input);
-        return new DefaultLink(providerId, src, dst, linkType);
+        State state = (State) kryo.readClassAndObject(input);
+        boolean isDurable = (boolean) kryo.readClassAndObject(input);
+        return new DefaultLink(providerId, src, dst, linkType, state, isDurable);
     }
 }