package jef.database.routing.jdbc;
import java.sql.PreparedStatement;
import java.sql.SQLException;
/**
* 单个参数上下文
*
*/
public class ParameterContext {
private ParameterMethod parameterMethod;
private int index;
private Object[] args;
public ParameterContext() {
}
public ParameterContext(ParameterMethod parameterMethod, int index, Object... args) {
this.parameterMethod = parameterMethod;
this.index = index;
this.args = args;
}
public ParameterMethod getParameterMethod() {
return parameterMethod;
}
public void setParameterMethod(ParameterMethod parameterMethod) {
this.parameterMethod = parameterMethod;
}
public Object[] getArgs() {
return args;
}
public void setArgs(Object[] args) {
this.args = args;
}
public String toString() {
StringBuilder buffer = new StringBuilder();
buffer.append(parameterMethod).append("(").append(index).append(',');
for (int i = 0; i < args.length; ++i) {
buffer.append(args[i]);
if (i != args.length - 1) {
buffer.append(", ");
}
}
buffer.append(")");
return buffer.toString();
}
public void apply(PreparedStatement st) throws SQLException {
parameterMethod.setParameter(st, index, args);
}
public Object getValue() {
return args[1];
}
}