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