Bug 5446: Yangtools UnionStringCodec is not consistent with BinaryStringCodec
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / codec / UnionStringCodec.java
index a117ceef56ebcb2be8fbbed3f2c9af6c364745b8..6d47ab94ab774f95eb194529ef2ad105b6e35796 100644 (file)
@@ -9,6 +9,8 @@
 package org.opendaylight.yangtools.yang.data.impl.codec;
 
 import com.google.common.base.Optional;
+import com.google.common.io.BaseEncoding;
+import java.util.Objects;
 import org.opendaylight.yangtools.yang.data.api.codec.UnionCodec;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition;
@@ -29,7 +31,11 @@ final class UnionStringCodec extends TypeDefinitionAwareCodec<Object, UnionTypeD
 
     @Override
     public String serialize(final Object data) {
-        return data == null ? "" : data.toString();
+        if (data instanceof byte[]) {
+            return BaseEncoding.base64().encode((byte[]) data);
+        } else {
+            return Objects.toString(data, "");
+        }
     }
 
     @Override