2 import java.nio.ByteBuffer;
5 * KeyValue entry for Slot.
6 * @author Brian Demsky <bdemsky@uci.edu>
10 class KeyValue { /*extends Entry */
11 private IoTString key;
12 private IoTString value;
14 public KeyValue(IoTString _key, IoTString _value) {
19 public IoTString getKey() {
23 public IoTString getValue() {
27 static KeyValue decode(ByteBuffer bb) {
28 int keylength = bb.getInt();
29 int valuelength = bb.getInt();
30 byte[] key = new byte[keylength];
33 if (valuelength != 0) {
34 byte[] value = new byte[valuelength];
36 return new KeyValue(IoTString.shallow(key), IoTString.shallow(value));
39 return new KeyValue(IoTString.shallow(key), null);
42 public void encode(ByteBuffer bb) {
43 bb.putInt(key.length());
46 bb.putInt(value.length());
51 bb.put(key.internalBytes());
54 bb.put(value.internalBytes());
58 public int getSize() {
60 return 2 * Integer.BYTES + key.length() + value.length();
63 return 2 * Integer.BYTES + key.length();
66 public String toString() {
70 return value.toString();
73 public KeyValue getCopy() {
74 return new KeyValue(key, value);