X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-clustering-commons%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fcluster%2Fdatastore%2Fnode%2Futils%2Fserialization%2FValueSerializer.java;h=9e3230a623855d4add4249d68af0c2c216f4d79f;hb=0717c782e9621409f9623f43ba9f6173e4382a44;hp=f562d8b35dd09995ac03d9ce2b3f4436518c8c6f;hpb=d802cf2cdf94d60ae7a4336a7d629ffa42356d8a;p=controller.git diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializer.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializer.java index f562d8b35d..9e3230a623 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializer.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/serialization/ValueSerializer.java @@ -9,16 +9,15 @@ package org.opendaylight.controller.cluster.datastore.node.utils.serialization; import com.google.protobuf.ByteString; -import java.math.BigDecimal; -import java.math.BigInteger; import java.util.HashSet; import java.util.Set; -import org.opendaylight.controller.cluster.datastore.node.utils.QNameFactory; import org.opendaylight.controller.cluster.datastore.util.InstanceIdentifierUtils; import org.opendaylight.controller.protobuff.messages.common.NormalizedNodeMessages; import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier; public class ValueSerializer { + private static final String NULL_VALUE = ""; + public static void serialize(NormalizedNodeMessages.Node.Builder builder, QNameSerializationContext context, Object value) { builder.setIntValueType(ValueType.getSerializableType(value).ordinal()); @@ -38,8 +37,10 @@ public class ValueSerializer { } } } - } else if(value instanceof byte[]){ + } else if(value instanceof byte[]) { builder.setBytesValue(ByteString.copyFrom((byte[]) value)); + } else if(value == null){ + builder.setValue(NULL_VALUE); } else { builder.setValue(value.toString()); } @@ -67,6 +68,8 @@ public class ValueSerializer { } } else if(value instanceof byte[]){ builder.setBytesValue(ByteString.copyFrom((byte[]) value)); + } else if(value == null){ + builder.setValue(NULL_VALUE); } else { builder.setValue(value.toString()); } @@ -101,35 +104,7 @@ public class ValueSerializer { private static Object deSerializeBasicTypes(int valueType, String value) { - switch(ValueType.values()[valueType]){ - case SHORT_TYPE: { - return Short.valueOf(value); - } - case BOOL_TYPE: { - return Boolean.valueOf(value); - } - case BYTE_TYPE: { - return Byte.valueOf(value); - } - case INT_TYPE : { - return Integer.valueOf(value); - } - case LONG_TYPE: { - return Long.valueOf(value); - } - case QNAME_TYPE: { - return QNameFactory.create(value); - } - case BIG_INTEGER_TYPE: { - return new BigInteger(value); - } - case BIG_DECIMAL_TYPE: { - return new BigDecimal(value); - } - default: { - return value; - } - } + return ValueType.values()[valueType].deserialize(value); } }