package com.alibaba.doris.client.net.command;
import com.alibaba.doris.client.net.protocol.ProtocolParser;
import com.alibaba.doris.client.net.protocol.text.GetProtocolParser;
import com.alibaba.doris.common.data.Key;
import com.alibaba.doris.common.data.Value;
/**
* @author ajun Email:jack.yuj@alibaba-inc.com
*/
public class GetCommand extends BaseCommand<Value> {
public GetCommand(Key key) {
this.key = key;
}
public ProtocolParser getProtocolParser() {
return parser;
}
public Key getKey() {
return key;
}
public Value getValue() {
return value;
}
public void setValue(Value value) {
this.value = value;
}
public Value getResult() {
return getValue();
}
public int getValueBytes() {
return valueBytes;
}
public void setValueBytes(int valueBytes) {
this.valueBytes = valueBytes;
}
public PhaseStructure getCurrentPhase() {
return currentPhase;
}
public void setCurrentPhase(PhaseStructure currentPhase) {
this.currentPhase = currentPhase;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder(128);
sb.append("GET");
sb.append(" {");
if (null != getKey()) {
sb.append("[key=");
sb.append(getKey());
sb.append("]");
}
long rVersion = getRouteVersion();
if (rVersion > 0) {
sb.append("[RouteVersion=");
sb.append(rVersion);
sb.append("]");
}
Value v = getValue();
if (null != v) {
short flag = v.getFlag();
if (flag > 0) {
sb.append("[Flag=");
sb.append(flag);
sb.append("]");
}
if (v.getTimestamp() > 0) {
sb.append("[Time=");
sb.append(v.getTimestamp());
sb.append("]");
}
}
sb.append("}");
return sb.toString();
}
private PhaseStructure currentPhase = PhaseStructure.HEAD;
private Key key;
private Value value;
private int valueBytes;
private static final ProtocolParser parser = new GetProtocolParser();
public static enum PhaseStructure {
HEAD, DATA, END
}
}