com.aerospike.jdbc.query.BaseQueryHandler Maven / Gradle / Ivy
package com.aerospike.jdbc.query;
import com.aerospike.client.Bin;
import com.aerospike.client.IAerospikeClient;
import com.aerospike.client.Value;
import com.aerospike.jdbc.model.AerospikeQuery;
import com.aerospike.jdbc.sql.ListRecordSet;
import com.aerospike.jdbc.util.IOUtils;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import static java.util.Collections.emptyList;
public abstract class BaseQueryHandler implements QueryHandler {
protected final IAerospikeClient client;
protected final Statement statement;
public BaseQueryHandler(IAerospikeClient client, Statement statement) {
this.client = client;
this.statement = statement;
}
protected Bin[] getBins(AerospikeQuery query) {
List bins = new ArrayList<>();
List columns = query.getColumns();
for (int i = 0; i < columns.size(); i++) {
bins.add(new Bin(IOUtils.stripQuotes(columns.get(i)), getBinValue(query.getValues().get(i))));
}
return bins.toArray(new Bin[0]);
}
private Value getBinValue(String strValue) {
if (ExpressionBuilder.isStringValue(strValue)) {
return Value.get(ExpressionBuilder.stripQuotes(strValue));
}
return Value.get(Long.parseLong(strValue));
}
protected ListRecordSet emptyRecordSet(AerospikeQuery query) {
return new ListRecordSet(statement, query.getSchema(), query.getTable(),
emptyList(), emptyList());
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy