Convert BigDecimal/Decimal64 in yang-data-codec-binfmt
[yangtools.git] / codec / yang-data-codec-binfmt / src / main / java / org / opendaylight / yangtools / yang / data / codec / binfmt / AbstractMagnesiumDataOutput.java
index 7ced29f0c23268068e5db3306d3a32a880160da6..659cae5d883afe84225c6663d5ae5b9512e95267 100644 (file)
@@ -29,6 +29,7 @@ import javax.xml.transform.dom.DOMSource;
 import javax.xml.transform.stream.StreamResult;
 import org.eclipse.jdt.annotation.NonNull;
 import org.opendaylight.yangtools.rfc8528.data.api.MountPointIdentifier;
+import org.opendaylight.yangtools.yang.common.Decimal64;
 import org.opendaylight.yangtools.yang.common.Empty;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
@@ -365,8 +366,9 @@ abstract class AbstractMagnesiumDataOutput extends AbstractNormalizedNodeDataOut
             output.writeByte(MagnesiumValue.EMPTY);
         } else if (value instanceof Set) {
             writeValue((Set<?>) value);
-        } else if (value instanceof BigDecimal) {
-            writeValue((BigDecimal) value);
+        } else if (value instanceof BigDecimal || value instanceof Decimal64) {
+            output.writeByte(MagnesiumValue.BIGDECIMAL);
+            output.writeUTF(value.toString());
         } else if (value instanceof BigInteger) {
             writeValue((BigInteger) value);
         } else {
@@ -466,11 +468,6 @@ abstract class AbstractMagnesiumDataOutput extends AbstractNormalizedNodeDataOut
         }
     }
 
-    private void writeValue(final BigDecimal value) throws IOException {
-        output.writeByte(MagnesiumValue.BIGDECIMAL);
-        output.writeUTF(value.toString());
-    }
-
     abstract void writeValue(BigInteger value) throws IOException;
 
     private void writeValue(final String value) throws IOException {