All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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