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

com.arangodb.config.ArangoConfigProperties Maven / Gradle / Ivy

The newest version!
package com.arangodb.config;

import com.arangodb.Compression;
import com.arangodb.Protocol;
import com.arangodb.entity.LoadBalancingStrategy;
import com.arangodb.internal.config.ArangoConfigPropertiesImpl;

import java.util.List;
import java.util.Optional;
import java.util.Properties;

public interface ArangoConfigProperties {

    //region configuration properties keys
    String KEY_HOSTS = "hosts";
    String KEY_PROTOCOL = "protocol";
    String KEY_USER = "user";
    String KEY_PASSWORD = "password";
    String KEY_JWT = "jwt";
    String KEY_TIMEOUT = "timeout";
    String KEY_USE_SSL = "useSsl";
    String KEY_VERIFY_HOST = "verifyHost";
    String KEY_CHUNK_SIZE = "chunkSize";
    String KEY_PIPELINING = "pipelining";
    String KEY_MAX_CONNECTIONS = "maxConnections";
    String KEY_CONNECTION_TTL = "connectionTtl";
    String KEY_KEEP_ALIVE_INTERVAL = "keepAliveInterval";
    String KEY_ACQUIRE_HOST_LIST = "acquireHostList";
    String KEY_ACQUIRE_HOST_LIST_INTERVAL = "acquireHostListInterval";
    String KEY_LOAD_BALANCING_STRATEGY = "loadBalancingStrategy";
    String KEY_RESPONSE_QUEUE_TIME_SAMPLES = "responseQueueTimeSamples";
    String KEY_COMPRESSION = "compression";
    String KEY_COMPRESSION_THRESHOLD = "compressionThreshold";
    String KEY_COMPRESSION_LEVEL = "compressionLevel";
    String KEY_SERDE_PROVIDER_CLASS = "serdeProviderClass";
    //endregion

    /**
     * Reads properties from file arangodb.properties.
     * Properties must be prefixed with @{code "arangodb"}, eg. @{code "arangodb.hosts=localhost:8529"}.
     */
    static ArangoConfigProperties fromFile() {
        return new ArangoConfigPropertiesImpl();
    }

    /**
     * Reads properties from file {@code fileName}.
     * Properties must be prefixed with @{code "arangodb"}, eg. @{code "arangodb.hosts=localhost:8529"}.
     */
    static ArangoConfigProperties fromFile(final String fileName) {
        return new ArangoConfigPropertiesImpl(fileName);
    }

    /**
     * Reads properties from file {@code fileName}.
     * Properties must be prefixed with @{code prefix}, eg. @{code ".hosts=localhost:8529"}.
     */
    static ArangoConfigProperties fromFile(final String fileName, final String prefix) {
        return new ArangoConfigPropertiesImpl(fileName, prefix);
    }

    /**
     * Creates {@code ArangoConfigProperties} from Java properties ({@link java.util.Properties}).
     * Properties must be prefixed with @{code "arangodb"}, eg. @{code "arangodb.hosts=localhost:8529"}.
     */
    static ArangoConfigProperties fromProperties(final Properties properties) {
        return new ArangoConfigPropertiesImpl(properties);
    }

    /**
     * Creates {@code ArangoConfigProperties} from Java properties ({@link java.util.Properties}).
     * Properties must be prefixed with @{code prefix}, eg. @{code ".hosts=localhost:8529"}.
     */
    static ArangoConfigProperties fromProperties(final Properties properties, final String prefix) {
        return new ArangoConfigPropertiesImpl(properties, prefix);
    }

    default Optional> getHosts() {
        return Optional.empty();
    }

    default Optional getProtocol() {
        return Optional.empty();
    }

    default Optional getUser() {
        return Optional.empty();
    }

    default Optional getPassword() {
        return Optional.empty();
    }

    default Optional getJwt() {
        return Optional.empty();
    }

    default Optional getTimeout() {
        return Optional.empty();
    }

    default Optional getUseSsl() {
        return Optional.empty();
    }

    default Optional getVerifyHost() {
        return Optional.empty();
    }

    default Optional getChunkSize() {
        return Optional.empty();
    }

    default Optional getPipelining() {
        return Optional.empty();
    }

    default Optional getMaxConnections() {
        return Optional.empty();
    }

    default Optional getConnectionTtl() {
        return Optional.empty();
    }

    default Optional getKeepAliveInterval() {
        return Optional.empty();
    }

    default Optional getAcquireHostList() {
        return Optional.empty();
    }

    default Optional getAcquireHostListInterval() {
        return Optional.empty();
    }

    default Optional getLoadBalancingStrategy() {
        return Optional.empty();
    }

    default Optional getResponseQueueTimeSamples() {
        return Optional.empty();
    }

    default Optional getCompression() {
        return Optional.empty();
    }

    default Optional getCompressionThreshold() {
        return Optional.empty();
    }

    default Optional getCompressionLevel() {
        return Optional.empty();
    }

    default Optional getSerdeProviderClass() {
        return Optional.empty();
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy