--- /dev/null
+'use strict';
+
+var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
+
+function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var KeyValue = function (_Entry) {
+ _inherits(KeyValue, _Entry);
+
+ function KeyValue(slot, _key, _value) {
+ _classCallCheck(this, KeyValue);
+
+ if (!(slot instanceof Slot && _key instanceof IoTString && _value instanceof IoTString)) {
+ throw new Error('Argument error ');
+ }
+
+ var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(KeyValue).call(this, slot));
+
+ _this.key = _key;
+ _this.value = _value;
+ return _this;
+ }
+
+ _createClass(KeyValue, [{
+ key: 'getKey',
+ value: function getKey() {
+ return this.key;
+ }
+ }, {
+ key: 'getValue',
+ value: function getValue() {
+ return this.value;
+ }
+ }, {
+ key: 'decode',
+ value: function decode(slot, bb) {
+ if (!(slot instanceof Slot && bb instanceof ByteBuffer)) {
+ throw new Error('Argument error');
+ }
+ var keylength = bb.getByte();
+ var valuelength = bb.getByte();
+ var key = new Uint8Array(keylength);
+ var value = new Uint8Array(valuelength);
+ var keystring = '';
+ for (var i = 0; i < keylength; i++) {
+ keystring += bb.readByte();
+ }
+ var valuestring = '';
+ for (var j = 0; j < keylength; j++) {
+ valuestring += bb.readByte();
+ }
+ for (var k = 0; k < keystring.length; k++) {
+ key[k] = keystring.charCodeAt(k);
+ }
+ for (var l = 0; l < valuestring.length; l++) {
+ value[l] = valuestring.charCodeAt(l);
+ }
+ return new KeyValue(slot, IoTString.shallow(key), IoTString.shallow(value));
+ }
+ }, {
+ key: 'encode',
+ value: function encode(bb) {
+ if (!(bb instanceof ByteBuffer)) {
+ throw new Error('argument error');
+ }
+ bb.writeByte(Entry.TypeKeyValue);
+ bb.writeByte(this.key.length());
+ bb.writeByte(this.value.length());
+ bb.concat(this.key.internalBytes());
+ bb.concat(this.value.internalBytes());
+ }
+ }, {
+ key: 'getSize',
+ value: function getSize() {
+ return 2 * 4 + this.jey.length() + this.value.length() + 1;
+ }
+ }, {
+ key: 'getType',
+ value: function getType() {
+ return Entry.TypeKeyValue;
+ }
+ }, {
+ key: 'toString',
+ value: function toString() {
+ return this.value.toString();
+ }
+ }, {
+ key: 'getCopy',
+ value: function getCopy(s) {
+ return new KeyValue(s, this.key, this.value);
+ }
+ }]);
+
+ return KeyValue;
+}(Entry);
\ No newline at end of file