- byte type = ValueTypes.getSerializableType(value);
- // Write object type first
- output.writeByte(type);
-
- switch (type) {
- case ValueTypes.BOOL_TYPE:
- output.writeBoolean((Boolean) value);
- break;
- case ValueTypes.QNAME_TYPE:
- writeQName((QName) value);
- break;
- case ValueTypes.INT_TYPE:
- output.writeInt((Integer) value);
- break;
- case ValueTypes.BYTE_TYPE:
- output.writeByte((Byte) value);
- break;
- case ValueTypes.LONG_TYPE:
- output.writeLong((Long) value);
- break;
- case ValueTypes.SHORT_TYPE:
- output.writeShort((Short) value);
- break;
- case ValueTypes.BITS_TYPE:
- writeObjSet((Set<?>) value);
- break;
- case ValueTypes.BINARY_TYPE:
- byte[] bytes = (byte[]) value;
- output.writeInt(bytes.length);
- output.write(bytes);
- break;
- case ValueTypes.YANG_IDENTIFIER_TYPE:
- writeYangInstanceIdentifierInternal((YangInstanceIdentifier) value);
- break;
- case ValueTypes.EMPTY_TYPE:
- break;
- case ValueTypes.STRING_BYTES_TYPE:
- final byte[] valueBytes = value.toString().getBytes(StandardCharsets.UTF_8);
- output.writeInt(valueBytes.length);
- output.write(valueBytes);
- break;
- default:
- output.writeUTF(value.toString());
- break;
- }