package com.rubiconproject.oss.kv.distributed.impl; import java.util.concurrent.Callable; import com.rubiconproject.oss.kv.distributed.AbstractOperation; import com.rubiconproject.oss.kv.distributed.Operation; import com.rubiconproject.oss.kv.distributed.OperationResult; import com.rubiconproject.oss.kv.distributed.OperationStatus; import com.rubiconproject.oss.kv.transcoder.Transcoder; public class GetOperation<V> extends AbstractOperation<V> implements Operation<V>, Callable<OperationResult<V>> { private static final long serialVersionUID = -3908847991063100534L; public GetOperation(Transcoder transcoder, String key) { super(transcoder, key); } public String getName() { return "get"; } public GetOperation<V> copy() { return new GetOperation<V>(this.transcoder, this.key); } public OperationResult<V> call() throws Exception { try { long start = System.currentTimeMillis(); V v = (transcoder == null) ? (V) store.get(key) : (V) store.get( key, transcoder); OperationResult<V> result = new DefaultOperationResult<V>(this, v, (v == null) ? OperationStatus.NullValue : OperationStatus.Success, System .currentTimeMillis() - start, null); return result; } finally { } } }