package com.rubiconproject.oss.kv.distributed;
import java.io.Serializable;
import java.util.concurrent.Callable;
import com.rubiconproject.oss.kv.KeyValueStore;
import com.rubiconproject.oss.kv.transcoder.Transcoder;
public interface Operation<V> extends Serializable {
public String getName();
public String getKey();
public Operation<V> copy();
public Transcoder getTranscoder();
public void setTranscoder(Transcoder transcoder);
public OperationCallback<V> getCallback();
public void setCallback(OperationCallback<V> callback);
public Node getNode();
public void setNode(Node node);
public int getNodeRank();
public void setNodeRank(int index);
public Callable<OperationResult<V>> getCallable(KeyValueStore store);
}