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

tech.ydb.table.settings.ReadRowsSettings Maven / Gradle / Ivy

package tech.ydb.table.settings;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;

import tech.ydb.core.settings.BaseRequestSettings;
import tech.ydb.table.values.StructValue;

public class ReadRowsSettings extends BaseRequestSettings {
    private final List columns;
    private final List keys;

    protected ReadRowsSettings(ReadRowsSettingsBuilder builder) {
        super(builder);
        this.columns = builder.columns;
        this.keys = builder.keys;
    }

    public static ReadRowsSettingsBuilder newBuilder() {
        return new ReadRowsSettingsBuilder();
    }

    public List getColumns() {
        return columns;
    }

    public List getKeys() {
        return keys;
    }

    public static class ReadRowsSettingsBuilder extends BaseBuilder {
        private final List columns = new ArrayList<>();
        private final List keys = new ArrayList<>();

        protected ReadRowsSettingsBuilder() {
        }

        public ReadRowsSettingsBuilder addColumns(List columns) {
            this.columns.addAll(Objects.requireNonNull(columns, "null is unsupported value in" +
                    " `withColumns(List columns)`"));
            return self();
        }

        public ReadRowsSettingsBuilder addColumns(String... columns) {
            return addColumns(Arrays.asList(columns));
        }

        public ReadRowsSettingsBuilder addColumn(String column) {
            columns.add(Objects.requireNonNull(column, "null is unsupported value in" +
                    " `addColumn(String column)`"));
            return self();
        }

        /**
         *      Keys must be a list of structs where each struct is a primary key
         *      for one requested row and should contain all key columns
         */
        public ReadRowsSettingsBuilder addKeys(List keys) {
            this.keys.addAll(Objects.requireNonNull(keys, "null is unsupported value in" +
                    " `withKeys(List keys)`"));
            return self();
        }

        /**
         *      Keys must be a list of structs where each struct is a primary key
         *      for one requested row and should contain all key columns
         */
        public ReadRowsSettingsBuilder addKeys(StructValue... keys) {
            return addKeys(Arrays.asList(keys));
        }

        /**
         *      Key should contain all primary key columns
         */
        public ReadRowsSettingsBuilder addKey(StructValue key) {
            keys.add(Objects.requireNonNull(key, "null is unsupported value in" +
                    " `addKey(StructValue key)`"));
            return self();
        }

        @Override
        public ReadRowsSettings build() {
            return new ReadRowsSettings(this);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy