public List<KeyValue> stream(Entity<?> entity) { List<KeyValue> streamed = new ArrayList<KeyValue>(); byte[] keyBytes = Serialization.serialize(entity.getKey()); byte[] qualifierBytes = new byte[0]; long ts = System.currentTimeMillis(); for (FieldKey<?> key : this.keys) { String name = key.getName(); if (entity.isDirty(key)) { if (entity.getDirty(key) != null) { byte[] familyBytes = Serialization.serialize(key.getName()); byte[] valueBytes = this.streamers.get(name).write(entity.get(key), Serialization.serialize(name), ts); KeyValue kv = new KeyValue(keyBytes, familyBytes, qualifierBytes, valueBytes); streamed.add(kv); } else { ErrorControl.fatal("Caught unsupported null dirty value for key: " + name); } } } return streamed; }
public Map<String, Object> parse(Result result) { Map<String, Object> parsed = new HashMap<String, Object>(); byte[] qualifierBytes = new byte[0]; for (Entry<byte[], NavigableMap<byte[], byte[]>> e : result.getNoVersionMap().entrySet()) { String name = Serialization.deserializeString(e.getKey()); parsed.put(name, this.streamers.get(name).read(e.getValue().get(qualifierBytes))); } return parsed; }