package cassandra.cql;
import cassandra.CassandraSession;
import cassandra.cql.type.CQL3Type;
import java.nio.ByteBuffer;
public class Statement extends AbstractStatement<Statement> {
public Statement(CassandraSession session, String query) {
setSession(session);
setQuery(query);
}
public Statement(CassandraSession session, String query, Object... values) {
this(session, query);
setParameters(bindDirty(values));
}
private Statement(Statement statement) {
super(statement);
}
@Override
@SuppressWarnings("CloneDoesntCallSuperClone")
public Statement clone() {
return new Statement(this);
}
private ByteBuffer[] bindDirty(Object... values) {
if (values == null) {
return null;
}
ByteBuffer[] encodedValues = new ByteBuffer[values.length];
for (int i = 0; i < values.length; i++) {
Object value = values[i];
if (value != null) {
encodedValues[i] = CQL3Type.typeFor(value).serialize(value);
} else {
encodedValues[i] = null;
}
}
return encodedValues;
}
}