package com.taobao.tddl.optimizer.core.expression.bean; import java.util.Map; import com.taobao.tddl.common.exception.NotSupportException; import com.taobao.tddl.common.exception.TddlRuntimeException; import com.taobao.tddl.common.jdbc.ParameterContext; import com.taobao.tddl.optimizer.core.PlanVisitor; import com.taobao.tddl.optimizer.core.expression.IBindVal; /** * 绑定变量 * * @author Whisper */ public class BindVal implements IBindVal { private final int index; public BindVal(int index){ this.index = index; } @Override public int compareTo(Object o) { throw new NotSupportException(); } @Override public Object assignment(Map<Integer, ParameterContext> parameterSettings) { ParameterContext paramContext = parameterSettings.get(index); if (paramContext == null) { throw new TddlRuntimeException("can't find param by index :" + index + " ." + "context : " + parameterSettings); } if (paramContext.getArgs()[1] == null) { return NullValue.getNullValue(); } return paramContext.getArgs()[1]; } @Override public String toString() { return "BindVal [index=" + index + "]"; } public int getBindVal() { return index; } @Override public void accept(PlanVisitor visitor) { visitor.visit(this); } }