@Override public List<T> multiGet(List<List<Object>> keys) { List<CachedBatchReadsMap.RetVal<TransactionalValue>> vals = _backing.multiGet(keys); List<T> ret = new ArrayList<T>(vals.size()); for (CachedBatchReadsMap.RetVal<TransactionalValue> retval : vals) { TransactionalValue v = retval.val; if (v != null) { ret.add((T) v.getVal()); } else { ret.add(null); } } return ret; }
@Override public byte[] serialize(TransactionalValue obj) { List toSer = new ArrayList(2); toSer.add(obj.getTxid()); toSer.add(obj.getVal()); try { return JSONValue.toJSONString(toSer).getBytes("UTF-8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } }
@Override public Values toValues(TransactionalValue<ITuple> tuple) { Values values = new Values(); values.add(tuple.getTxid()); for (String valueField : tupleFields) { if (tuple.getVal() != null) { values.add(tuple.getVal().getValueByField(valueField)); } else { values.add(null); } } return values; }
@Override public Values toValues(T value) { if (value == null) { return null; } switch (stateType) { case NON_TRANSACTIONAL: return new Values(value); case TRANSACTIONAL: TransactionalValue transactional = (TransactionalValue) value; return new Values(transactional.getTxid(), transactional.getVal()); case OPAQUE: OpaqueValue opaque = (OpaqueValue) value; return new Values(opaque.getCurrTxid(), opaque.getCurr(), opaque.getPrev()); default: throw new IllegalStateException("Unknown state type " + stateType); } }
@Override public List<T> multiGet(List<List<Object>> keys) { List<CachedBatchReadsMap.RetVal<TransactionalValue>> vals = _backing.multiGet(keys); List<T> ret = new ArrayList<T>(vals.size()); for(CachedBatchReadsMap.RetVal<TransactionalValue> retval: vals) { TransactionalValue v = retval.val; if(v!=null) { ret.add((T) v.getVal()); } else { ret.add(null); } } return ret; }
@Override public byte[] serialize(TransactionalValue obj) { List toSer = new ArrayList(2); toSer.add(obj.getTxid()); toSer.add(obj.getVal()); try { return JSONValue.toJSONString(toSer).getBytes("UTF-8"); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } }