Guest User

Untitled

a guest
Mar 19th, 2018
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.69 KB | None | 0 0
  1. //
  2. // Source code recreated from a .class file by IntelliJ IDEA
  3. // (powered by Fernflower decompiler)
  4. //
  5.  
  6. package co.aikar.db;
  7.  
  8. import java.util.concurrent.ExecutorService;
  9. import java.util.function.Consumer;
  10. import java.util.logging.Logger;
  11. import lombok.NonNull;
  12.  
  13. public class DatabaseOptions {
  14. private static final DatabaseTiming NULL_TIMING = new NullDatabaseTiming();
  15. @NonNull
  16. String dsn;
  17. @NonNull
  18. String databaseClassName;
  19. String poolName;
  20. String defaultIsolationLevel;
  21. boolean useOptimizations;
  22. int minAsyncThreads;
  23. int maxAsyncThreads;
  24. int asyncThreadTimeout;
  25. TimingsProvider timingsProvider;
  26. Consumer<Exception> onFatalError;
  27. Consumer<Exception> onDatabaseConnectionFailure;
  28. String user;
  29. String pass;
  30. Logger logger;
  31. ExecutorService executor;
  32.  
  33. private static String $default$poolName() {
  34. return "DB";
  35. }
  36.  
  37. private static String $default$defaultIsolationLevel() {
  38. return "TRANSACTION_READ_COMMITTED";
  39. }
  40.  
  41. private static boolean $default$useOptimizations() {
  42. return true;
  43. }
  44.  
  45. private static int $default$minAsyncThreads() {
  46. return Math.min(Runtime.getRuntime().availableProcessors(), 2);
  47. }
  48.  
  49. private static int $default$maxAsyncThreads() {
  50. return Runtime.getRuntime().availableProcessors();
  51. }
  52.  
  53. private static int $default$asyncThreadTimeout() {
  54. return 60;
  55. }
  56.  
  57. private static TimingsProvider $default$timingsProvider() {
  58. return (name, parent) -> {
  59. return NULL_TIMING;
  60. };
  61. }
  62.  
  63. private static Consumer<Exception> $default$onFatalError() {
  64. return DB::logException;
  65. }
  66.  
  67. private static Consumer<Exception> $default$onDatabaseConnectionFailure() {
  68. return DB::logException;
  69. }
  70.  
  71. public static DatabaseOptions.DatabaseOptionsBuilder builder() {
  72. return new DatabaseOptions.DatabaseOptionsBuilder();
  73. }
  74.  
  75. public DatabaseOptions.DatabaseOptionsBuilder toBuilder() {
  76. 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);
  77. }
  78.  
  79. 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) {
  80. if (dsn == null) {
  81. throw new NullPointerException("dsn");
  82. } else if (databaseClassName == null) {
  83. throw new NullPointerException("databaseClassName");
  84. } else {
  85. this.dsn = dsn;
  86. this.databaseClassName = databaseClassName;
  87. this.poolName = poolName;
  88. this.defaultIsolationLevel = defaultIsolationLevel;
  89. this.useOptimizations = useOptimizations;
  90. this.minAsyncThreads = minAsyncThreads;
  91. this.maxAsyncThreads = maxAsyncThreads;
  92. this.asyncThreadTimeout = asyncThreadTimeout;
  93. this.timingsProvider = timingsProvider;
  94. this.onFatalError = onFatalError;
  95. this.onDatabaseConnectionFailure = onDatabaseConnectionFailure;
  96. this.user = user;
  97. this.pass = pass;
  98. this.logger = logger;
  99. this.executor = executor;
  100. }
  101. }
  102.  
  103. public static class DatabaseOptionsBuilder {
  104. private String dsn;
  105. private String databaseClassName;
  106. private boolean poolName$set;
  107. private String poolName;
  108. private boolean defaultIsolationLevel$set;
  109. private String defaultIsolationLevel;
  110. private boolean useOptimizations$set;
  111. private boolean useOptimizations;
  112. private boolean minAsyncThreads$set;
  113. private int minAsyncThreads;
  114. private boolean maxAsyncThreads$set;
  115. private int maxAsyncThreads;
  116. private boolean asyncThreadTimeout$set;
  117. private int asyncThreadTimeout;
  118. private boolean timingsProvider$set;
  119. private TimingsProvider timingsProvider;
  120. private boolean onFatalError$set;
  121. private Consumer<Exception> onFatalError;
  122. private boolean onDatabaseConnectionFailure$set;
  123. private Consumer<Exception> onDatabaseConnectionFailure;
  124. private String user;
  125. private String pass;
  126. private Logger logger;
  127. private ExecutorService executor;
  128.  
  129. public DatabaseOptions.DatabaseOptionsBuilder mysql(@NonNull String user, @NonNull String pass, @NonNull String db, @NonNull String hostAndPort) {
  130. if (user == null) {
  131. throw new NullPointerException("user");
  132. } else if (pass == null) {
  133. throw new NullPointerException("pass");
  134. } else if (db == null) {
  135. throw new NullPointerException("db");
  136. } else if (hostAndPort == null) {
  137. throw new NullPointerException("hostAndPort");
  138. } else {
  139. if (hostAndPort == null) {
  140. hostAndPort = "localhost:3306";
  141. }
  142.  
  143. this.user = user;
  144. this.pass = pass;
  145. this.databaseClassName = "com.mysql.jdbc.jdbc2.optional.MysqlDataSource";
  146. this.dsn = "mysql://" + hostAndPort + "/" + db;
  147. return this;
  148. }
  149. }
  150.  
  151. DatabaseOptionsBuilder() {
  152. }
  153.  
  154. public DatabaseOptions.DatabaseOptionsBuilder dsn(String dsn) {
  155. this.dsn = dsn;
  156. return this;
  157. }
  158.  
  159. public DatabaseOptions.DatabaseOptionsBuilder databaseClassName(String databaseClassName) {
  160. this.databaseClassName = databaseClassName;
  161. return this;
  162. }
  163.  
  164. public DatabaseOptions.DatabaseOptionsBuilder poolName(String poolName) {
  165. this.poolName = poolName;
  166. this.poolName$set = true;
  167. return this;
  168. }
  169.  
  170. public DatabaseOptions.DatabaseOptionsBuilder defaultIsolationLevel(String defaultIsolationLevel) {
  171. this.defaultIsolationLevel = defaultIsolationLevel;
  172. this.defaultIsolationLevel$set = true;
  173. return this;
  174. }
  175.  
  176. public DatabaseOptions.DatabaseOptionsBuilder useOptimizations(boolean useOptimizations) {
  177. this.useOptimizations = useOptimizations;
  178. this.useOptimizations$set = true;
  179. return this;
  180. }
  181.  
  182. public DatabaseOptions.DatabaseOptionsBuilder minAsyncThreads(int minAsyncThreads) {
  183. this.minAsyncThreads = minAsyncThreads;
  184. this.minAsyncThreads$set = true;
  185. return this;
  186. }
  187.  
  188. public DatabaseOptions.DatabaseOptionsBuilder maxAsyncThreads(int maxAsyncThreads) {
  189. this.maxAsyncThreads = maxAsyncThreads;
  190. this.maxAsyncThreads$set = true;
  191. return this;
  192. }
  193.  
  194. public DatabaseOptions.DatabaseOptionsBuilder asyncThreadTimeout(int asyncThreadTimeout) {
  195. this.asyncThreadTimeout = asyncThreadTimeout;
  196. this.asyncThreadTimeout$set = true;
  197. return this;
  198. }
  199.  
  200. public DatabaseOptions.DatabaseOptionsBuilder timingsProvider(TimingsProvider timingsProvider) {
  201. this.timingsProvider = timingsProvider;
  202. this.timingsProvider$set = true;
  203. return this;
  204. }
  205.  
  206. public DatabaseOptions.DatabaseOptionsBuilder onFatalError(Consumer<Exception> onFatalError) {
  207. this.onFatalError = onFatalError;
  208. this.onFatalError$set = true;
  209. return this;
  210. }
  211.  
  212. public DatabaseOptions.DatabaseOptionsBuilder onDatabaseConnectionFailure(Consumer<Exception> onDatabaseConnectionFailure) {
  213. this.onDatabaseConnectionFailure = onDatabaseConnectionFailure;
  214. this.onDatabaseConnectionFailure$set = true;
  215. return this;
  216. }
  217.  
  218. public DatabaseOptions.DatabaseOptionsBuilder user(String user) {
  219. this.user = user;
  220. return this;
  221. }
  222.  
  223. public DatabaseOptions.DatabaseOptionsBuilder pass(String pass) {
  224. this.pass = pass;
  225. return this;
  226. }
  227.  
  228. public DatabaseOptions.DatabaseOptionsBuilder logger(Logger logger) {
  229. this.logger = logger;
  230. return this;
  231. }
  232.  
  233. public DatabaseOptions.DatabaseOptionsBuilder executor(ExecutorService executor) {
  234. this.executor = executor;
  235. return this;
  236. }
  237.  
  238. public DatabaseOptions build() {
  239. String poolName = this.poolName;
  240. if (!this.poolName$set) {
  241. poolName = DatabaseOptions.$default$poolName();
  242. }
  243.  
  244. String defaultIsolationLevel = this.defaultIsolationLevel;
  245. if (!this.defaultIsolationLevel$set) {
  246. defaultIsolationLevel = DatabaseOptions.$default$defaultIsolationLevel();
  247. }
  248.  
  249. boolean useOptimizations = this.useOptimizations;
  250. if (!this.useOptimizations$set) {
  251. useOptimizations = DatabaseOptions.$default$useOptimizations();
  252. }
  253.  
  254. int minAsyncThreads = this.minAsyncThreads;
  255. if (!this.minAsyncThreads$set) {
  256. minAsyncThreads = DatabaseOptions.$default$minAsyncThreads();
  257. }
  258.  
  259. int maxAsyncThreads = this.maxAsyncThreads;
  260. if (!this.maxAsyncThreads$set) {
  261. maxAsyncThreads = DatabaseOptions.$default$maxAsyncThreads();
  262. }
  263.  
  264. int asyncThreadTimeout = this.asyncThreadTimeout;
  265. if (!this.asyncThreadTimeout$set) {
  266. asyncThreadTimeout = DatabaseOptions.$default$asyncThreadTimeout();
  267. }
  268.  
  269. TimingsProvider timingsProvider = this.timingsProvider;
  270. if (!this.timingsProvider$set) {
  271. timingsProvider = DatabaseOptions.$default$timingsProvider();
  272. }
  273.  
  274. Consumer<Exception> onFatalError = this.onFatalError;
  275. if (!this.onFatalError$set) {
  276. onFatalError = DatabaseOptions.$default$onFatalError();
  277. }
  278.  
  279. Consumer<Exception> onDatabaseConnectionFailure = this.onDatabaseConnectionFailure;
  280. if (!this.onDatabaseConnectionFailure$set) {
  281. onDatabaseConnectionFailure = DatabaseOptions.$default$onDatabaseConnectionFailure();
  282. }
  283.  
  284. return new DatabaseOptions(this.dsn, this.databaseClassName, poolName, defaultIsolationLevel, useOptimizations, minAsyncThreads, maxAsyncThreads, asyncThreadTimeout, timingsProvider, onFatalError, onDatabaseConnectionFailure, this.user, this.pass, this.logger, this.executor);
  285. }
  286.  
  287. public String toString() {
  288. 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 + ")";
  289. }
  290. }
  291. }
Add Comment
Please, Sign In to add comment