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

com.eventstore.dbclient.OptionsBase Maven / Gradle / Ivy

package com.eventstore.dbclient;

import io.grpc.Metadata;

class OptionsBase {
    protected final ConnectionMetadata metadata;
    protected Long deadline;
    protected OperationKind kind;
    private UserCredentials credentials;
    private boolean requiresLeader;

    protected OptionsBase() {
        this.metadata = new ConnectionMetadata();
        this.kind = OperationKind.Regular;
    }

    public Metadata getMetadata() {
        return this.metadata.build();
    }

    public boolean hasUserCredentials() {
        return this.metadata.hasUserCredentials();
    }

    public String getUserCredentials() {
        return this.metadata.getUserCredentials();
    }

    public T authenticated(UserCredentials credentials) {
        this.credentials = credentials;
        return (T)this;
    }

    public T requiresLeader() {
        return requiresLeader(true);
    }

    public T notRequireLeader() {
        return requiresLeader(false);
    }

    public T requiresLeader(boolean value) {
        this.requiresLeader = value;
        return (T)this;
    }

    public T deadline(long durationInMs) {
        deadline = durationInMs;

        return (T)this;
    }

    public Long getDeadline() {
        return deadline;
    }

    public OperationKind getKind() {
        return kind;
    }

    public boolean isLeaderRequired() {
        return this.requiresLeader;
    }

    public UserCredentials getCredentials() {
        return this.credentials;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy