Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // Source code recreated from a .class file by IntelliJ IDEA
- // (powered by Fernflower decompiler)
- //
- package co.aikar.db;
- import java.util.concurrent.ExecutorService;
- import java.util.function.Consumer;
- import java.util.logging.Logger;
- import lombok.NonNull;
- public class DatabaseOptions {
- private static final DatabaseTiming NULL_TIMING = new NullDatabaseTiming();
- @NonNull
- String dsn;
- @NonNull
- String databaseClassName;
- String poolName;
- String defaultIsolationLevel;
- boolean useOptimizations;
- int minAsyncThreads;
- int maxAsyncThreads;
- int asyncThreadTimeout;
- TimingsProvider timingsProvider;
- Consumer<Exception> onFatalError;
- Consumer<Exception> onDatabaseConnectionFailure;
- String user;
- String pass;
- Logger logger;
- ExecutorService executor;
- private static String $default$poolName() {
- return "DB";
- }
- private static String $default$defaultIsolationLevel() {
- return "TRANSACTION_READ_COMMITTED";
- }
- private static boolean $default$useOptimizations() {
- return true;
- }
- private static int $default$minAsyncThreads() {
- return Math.min(Runtime.getRuntime().availableProcessors(), 2);
- }
- private static int $default$maxAsyncThreads() {
- return Runtime.getRuntime().availableProcessors();
- }
- private static int $default$asyncThreadTimeout() {
- return 60;
- }
- private static TimingsProvider $default$timingsProvider() {
- return (name, parent) -> {
- return NULL_TIMING;
- };
- }
- private static Consumer<Exception> $default$onFatalError() {
- return DB::logException;
- }
- private static Consumer<Exception> $default$onDatabaseConnectionFailure() {
- return DB::logException;
- }
- public static DatabaseOptions.DatabaseOptionsBuilder builder() {
- return new DatabaseOptions.DatabaseOptionsBuilder();
- }
- public DatabaseOptions.DatabaseOptionsBuilder toBuilder() {
- return (new DatabaseOptions.DatabaseOptionsBuilder()).dsn(this.dsn).databaseClassName(this.databaseClassName).poolName(this.poolName).defaultIsolationLevel(this.defaultIsolationLevel).useOptimizations(this.useOptimizations).minAsyncThreads(this.minAsyncThreads).maxAsyncThreads(this.maxAsyncThreads).asyncThreadTimeout(this.asyncThreadTimeout).timingsProvider(this.timingsProvider).onFatalError(this.onFatalError).onDatabaseConnectionFailure(this.onDatabaseConnectionFailure).user(this.user).pass(this.pass).logger(this.logger).executor(this.executor);
- }
- public DatabaseOptions(@NonNull String dsn, @NonNull String databaseClassName, String poolName, String defaultIsolationLevel, boolean useOptimizations, int minAsyncThreads, int maxAsyncThreads, int asyncThreadTimeout, TimingsProvider timingsProvider, Consumer<Exception> onFatalError, Consumer<Exception> onDatabaseConnectionFailure, String user, String pass, Logger logger, ExecutorService executor) {
- if (dsn == null) {
- throw new NullPointerException("dsn");
- } else if (databaseClassName == null) {
- throw new NullPointerException("databaseClassName");
- } else {
- this.dsn = dsn;
- this.databaseClassName = databaseClassName;
- this.poolName = poolName;
- this.defaultIsolationLevel = defaultIsolationLevel;
- this.useOptimizations = useOptimizations;
- this.minAsyncThreads = minAsyncThreads;
- this.maxAsyncThreads = maxAsyncThreads;
- this.asyncThreadTimeout = asyncThreadTimeout;
- this.timingsProvider = timingsProvider;
- this.onFatalError = onFatalError;
- this.onDatabaseConnectionFailure = onDatabaseConnectionFailure;
- this.user = user;
- this.pass = pass;
- this.logger = logger;
- this.executor = executor;
- }
- }
- public static class DatabaseOptionsBuilder {
- private String dsn;
- private String databaseClassName;
- private boolean poolName$set;
- private String poolName;
- private boolean defaultIsolationLevel$set;
- private String defaultIsolationLevel;
- private boolean useOptimizations$set;
- private boolean useOptimizations;
- private boolean minAsyncThreads$set;
- private int minAsyncThreads;
- private boolean maxAsyncThreads$set;
- private int maxAsyncThreads;
- private boolean asyncThreadTimeout$set;
- private int asyncThreadTimeout;
- private boolean timingsProvider$set;
- private TimingsProvider timingsProvider;
- private boolean onFatalError$set;
- private Consumer<Exception> onFatalError;
- private boolean onDatabaseConnectionFailure$set;
- private Consumer<Exception> onDatabaseConnectionFailure;
- private String user;
- private String pass;
- private Logger logger;
- private ExecutorService executor;
- public DatabaseOptions.DatabaseOptionsBuilder mysql(@NonNull String user, @NonNull String pass, @NonNull String db, @NonNull String hostAndPort) {
- if (user == null) {
- throw new NullPointerException("user");
- } else if (pass == null) {
- throw new NullPointerException("pass");
- } else if (db == null) {
- throw new NullPointerException("db");
- } else if (hostAndPort == null) {
- throw new NullPointerException("hostAndPort");
- } else {
- if (hostAndPort == null) {
- hostAndPort = "localhost:3306";
- }
- this.user = user;
- this.pass = pass;
- this.databaseClassName = "com.mysql.jdbc.jdbc2.optional.MysqlDataSource";
- this.dsn = "mysql://" + hostAndPort + "/" + db;
- return this;
- }
- }
- DatabaseOptionsBuilder() {
- }
- public DatabaseOptions.DatabaseOptionsBuilder dsn(String dsn) {
- this.dsn = dsn;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder databaseClassName(String databaseClassName) {
- this.databaseClassName = databaseClassName;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder poolName(String poolName) {
- this.poolName = poolName;
- this.poolName$set = true;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder defaultIsolationLevel(String defaultIsolationLevel) {
- this.defaultIsolationLevel = defaultIsolationLevel;
- this.defaultIsolationLevel$set = true;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder useOptimizations(boolean useOptimizations) {
- this.useOptimizations = useOptimizations;
- this.useOptimizations$set = true;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder minAsyncThreads(int minAsyncThreads) {
- this.minAsyncThreads = minAsyncThreads;
- this.minAsyncThreads$set = true;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder maxAsyncThreads(int maxAsyncThreads) {
- this.maxAsyncThreads = maxAsyncThreads;
- this.maxAsyncThreads$set = true;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder asyncThreadTimeout(int asyncThreadTimeout) {
- this.asyncThreadTimeout = asyncThreadTimeout;
- this.asyncThreadTimeout$set = true;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder timingsProvider(TimingsProvider timingsProvider) {
- this.timingsProvider = timingsProvider;
- this.timingsProvider$set = true;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder onFatalError(Consumer<Exception> onFatalError) {
- this.onFatalError = onFatalError;
- this.onFatalError$set = true;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder onDatabaseConnectionFailure(Consumer<Exception> onDatabaseConnectionFailure) {
- this.onDatabaseConnectionFailure = onDatabaseConnectionFailure;
- this.onDatabaseConnectionFailure$set = true;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder user(String user) {
- this.user = user;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder pass(String pass) {
- this.pass = pass;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder logger(Logger logger) {
- this.logger = logger;
- return this;
- }
- public DatabaseOptions.DatabaseOptionsBuilder executor(ExecutorService executor) {
- this.executor = executor;
- return this;
- }
- public DatabaseOptions build() {
- String poolName = this.poolName;
- if (!this.poolName$set) {
- poolName = DatabaseOptions.$default$poolName();
- }
- String defaultIsolationLevel = this.defaultIsolationLevel;
- if (!this.defaultIsolationLevel$set) {
- defaultIsolationLevel = DatabaseOptions.$default$defaultIsolationLevel();
- }
- boolean useOptimizations = this.useOptimizations;
- if (!this.useOptimizations$set) {
- useOptimizations = DatabaseOptions.$default$useOptimizations();
- }
- int minAsyncThreads = this.minAsyncThreads;
- if (!this.minAsyncThreads$set) {
- minAsyncThreads = DatabaseOptions.$default$minAsyncThreads();
- }
- int maxAsyncThreads = this.maxAsyncThreads;
- if (!this.maxAsyncThreads$set) {
- maxAsyncThreads = DatabaseOptions.$default$maxAsyncThreads();
- }
- int asyncThreadTimeout = this.asyncThreadTimeout;
- if (!this.asyncThreadTimeout$set) {
- asyncThreadTimeout = DatabaseOptions.$default$asyncThreadTimeout();
- }
- TimingsProvider timingsProvider = this.timingsProvider;
- if (!this.timingsProvider$set) {
- timingsProvider = DatabaseOptions.$default$timingsProvider();
- }
- Consumer<Exception> onFatalError = this.onFatalError;
- if (!this.onFatalError$set) {
- onFatalError = DatabaseOptions.$default$onFatalError();
- }
- Consumer<Exception> onDatabaseConnectionFailure = this.onDatabaseConnectionFailure;
- if (!this.onDatabaseConnectionFailure$set) {
- onDatabaseConnectionFailure = DatabaseOptions.$default$onDatabaseConnectionFailure();
- }
- return new DatabaseOptions(this.dsn, this.databaseClassName, poolName, defaultIsolationLevel, useOptimizations, minAsyncThreads, maxAsyncThreads, asyncThreadTimeout, timingsProvider, onFatalError, onDatabaseConnectionFailure, this.user, this.pass, this.logger, this.executor);
- }
- public String toString() {
- return "DatabaseOptions.DatabaseOptionsBuilder(dsn=" + this.dsn + ", databaseClassName=" + this.databaseClassName + ", poolName=" + this.poolName + ", defaultIsolationLevel=" + this.defaultIsolationLevel + ", useOptimizations=" + this.useOptimizations + ", minAsyncThreads=" + this.minAsyncThreads + ", maxAsyncThreads=" + this.maxAsyncThreads + ", asyncThreadTimeout=" + this.asyncThreadTimeout + ", timingsProvider=" + this.timingsProvider + ", onFatalError=" + this.onFatalError + ", onDatabaseConnectionFailure=" + this.onDatabaseConnectionFailure + ", user=" + this.user + ", pass=" + this.pass + ", logger=" + this.logger + ", executor=" + this.executor + ")";
- }
- }
- }
Add Comment
Please, Sign In to add comment