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

com.databend.client.QueryResults Maven / Gradle / Ivy

/*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.databend.client;

import com.databend.client.errors.QueryErrors;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;

import java.net.URI;
import java.util.List;

import static com.google.common.base.MoreObjects.toStringHelper;

public class QueryResults {
    private final String queryId;
    private final String sessionId;
    private final DatabendSession session;
    private final List schema;
    private final Iterable> data;
    private final String state;
    private final QueryErrors error;
    private final QueryStats stats;
    private final QueryAffect affect;
    private final URI statsUri;

    private final URI finalUri;
    private final URI nextUri;
    private final URI killUri;

    @JsonCreator
    public QueryResults(
            @JsonProperty("id") String queryId,
            @JsonProperty("session_id") String sessionId,
            @JsonProperty("session") DatabendSession session,
            @JsonProperty("schema") List schema,
            @JsonProperty("data") List> data,
            @JsonProperty("state") String state,
            @JsonProperty("error") QueryErrors error,
            @JsonProperty("stats") QueryStats stats,
            @JsonProperty("affect") QueryAffect affect,
            @JsonProperty("stats_uri") URI statsUri,
            @JsonProperty("final_uri") URI finalUri,
            @JsonProperty("next_uri") URI nextUri,
            @JsonProperty("kill_uri") URI killUri) {
        this.queryId = queryId;
        this.sessionId = sessionId;
        this.session = session;
        this.schema = schema;
        this.data = ParseJsonDataUtils.parseRawData(schema, data);
        this.state = state;
        this.error = error;
        this.stats = stats;
        this.affect = affect;
        this.statsUri = statsUri;
        this.finalUri = finalUri;
        this.nextUri = nextUri;
        this.killUri = killUri;
    }

    // add builder

    @JsonProperty
    public String getQueryId() {
        return queryId;
    }

    @JsonProperty
    public String getSessionId() {
        return sessionId;
    }

    @JsonProperty
    public DatabendSession getSession() {
        return session;
    }

    @JsonProperty
    public List getSchema() {
        return schema;
    }

    @JsonProperty
    public Iterable> getData() {
        return data;
    }

    @JsonProperty
    public String getState() {
        return state;
    }

    @JsonProperty
    public QueryErrors getError() {
        return error;
    }

    @JsonProperty
    public QueryStats getStats() {
        return stats;
    }

    @JsonProperty
    public QueryAffect getAffect() {
        return affect;
    }

    @JsonProperty
    public URI getStatsUri() {
        return statsUri;
    }

    @JsonProperty
    public URI getFinalUri() {
        return finalUri;
    }

    @JsonProperty
    public URI getNextUri() {
        return nextUri;
    }

    @JsonProperty
    public URI getKillUri() {
        return killUri;
    }

    @Override
    public String toString() {
        return toStringHelper(this)
                .add("id", queryId)
                .add("sessionId", sessionId)
                .add("session", session)
                .add("schema", schema)
                .add("data", data)
                .add("state", state)
                .add("error", error)
                .add("stats", stats)
                .add("affect", affect)
                .add("statsUri", statsUri)
                .add("finalUri", finalUri)
                .add("nextUri", nextUri)
                .add("killUri", killUri)
                .toString();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy