/JazminServer/src/jazmin/driver/mongodb/MongodbDriver.java

https://github.com/guooscar/JazminServer · Java · 307 lines · 151 code · 13 blank · 143 comment · 2 complexity · 537529312ea089f972ff07e5e54c4243 MD5 · raw file

  1. /**
  2. *
  3. */
  4. package jazmin.driver.mongodb;
  5. import java.util.Collection;
  6. import java.util.List;
  7. import org.bson.Document;
  8. import com.mongodb.CommandResult;
  9. import com.mongodb.DB;
  10. import com.mongodb.DBObject;
  11. import com.mongodb.MongoClient;
  12. import com.mongodb.MongoClientOptions;
  13. import com.mongodb.MongoClientURI;
  14. import com.mongodb.MongoCredential;
  15. import com.mongodb.ReadPreference;
  16. import com.mongodb.ReplicaSetStatus;
  17. import com.mongodb.ServerAddress;
  18. import com.mongodb.WriteConcern;
  19. import com.mongodb.client.ListDatabasesIterable;
  20. import com.mongodb.client.MongoDatabase;
  21. import com.mongodb.client.MongoIterable;
  22. import jazmin.core.Driver;
  23. import jazmin.misc.InfoBuilder;
  24. /**
  25. * @author yama
  26. *
  27. */
  28. public class MongodbDriver extends Driver{
  29. private String mongoUri;
  30. private MongoClient mongoClient;
  31. private String database;
  32. //
  33. public MongodbDriver() {
  34. }
  35. //
  36. @Override
  37. public void init() throws Exception {
  38. MongoClientURI connStr = new MongoClientURI(mongoUri);
  39. mongoClient = new MongoClient(connStr);
  40. }
  41. //
  42. @Override
  43. public void start() throws Exception {
  44. }
  45. //
  46. @Override
  47. public void stop() throws Exception {
  48. if(mongoClient!=null){
  49. mongoClient.close();
  50. }
  51. }
  52. /**
  53. * @param option
  54. * @see com.mongodb.Mongo#addOption(int)
  55. */
  56. public void addOption(int option) {
  57. mongoClient.addOption(option);
  58. }
  59. /**
  60. * @param dbName
  61. * @see com.mongodb.Mongo#dropDatabase(java.lang.String)
  62. */
  63. public void dropDatabase(String dbName) {
  64. mongoClient.dropDatabase(dbName);
  65. }
  66. /**
  67. * @param async
  68. * @return
  69. * @see com.mongodb.Mongo#fsync(boolean)
  70. */
  71. public CommandResult fsync(boolean async) {
  72. return mongoClient.fsync(async);
  73. }
  74. /**
  75. * @return
  76. * @see com.mongodb.Mongo#fsyncAndLock()
  77. */
  78. public CommandResult fsyncAndLock() {
  79. return mongoClient.fsyncAndLock();
  80. }
  81. /**
  82. * @return
  83. * @see com.mongodb.Mongo#getAddress()
  84. */
  85. public ServerAddress getAddress() {
  86. return mongoClient.getAddress();
  87. }
  88. /**
  89. * @return
  90. * @see com.mongodb.Mongo#getAllAddress()
  91. */
  92. public List<ServerAddress> getAllAddress() {
  93. return mongoClient.getAllAddress();
  94. }
  95. /**
  96. * @return
  97. * @see com.mongodb.Mongo#getConnectPoint()
  98. */
  99. public String getConnectPoint() {
  100. return mongoClient.getConnectPoint();
  101. }
  102. /**
  103. * @return
  104. * @see com.mongodb.MongoClient#getCredentialsList()
  105. */
  106. public List<MongoCredential> getCredentialsList() {
  107. return mongoClient.getCredentialsList();
  108. }
  109. /**
  110. * @param databaseName
  111. * @return
  112. * @see com.mongodb.MongoClient#getDatabase(java.lang.String)
  113. */
  114. public MongoDatabase getDatabase(String databaseName) {
  115. return mongoClient.getDatabase(databaseName);
  116. }
  117. /**
  118. * @return
  119. * @see com.mongodb.Mongo#getMaxBsonObjectSize()
  120. */
  121. public int getMaxBsonObjectSize() {
  122. return mongoClient.getMaxBsonObjectSize();
  123. }
  124. /**
  125. * @return
  126. * @see com.mongodb.MongoClient#getMongoClientOptions()
  127. */
  128. public MongoClientOptions getMongoClientOptions() {
  129. return mongoClient.getMongoClientOptions();
  130. }
  131. /**
  132. * @return
  133. * @see com.mongodb.Mongo#getOptions()
  134. */
  135. public int getOptions() {
  136. return mongoClient.getOptions();
  137. }
  138. /**
  139. * @return
  140. * @see com.mongodb.Mongo#getReadPreference()
  141. */
  142. public ReadPreference getReadPreference() {
  143. return mongoClient.getReadPreference();
  144. }
  145. /**
  146. * @return
  147. * @see com.mongodb.Mongo#getReplicaSetStatus()
  148. */
  149. public ReplicaSetStatus getReplicaSetStatus() {
  150. return mongoClient.getReplicaSetStatus();
  151. }
  152. /**
  153. * @return
  154. * @see com.mongodb.Mongo#getServerAddressList()
  155. */
  156. public List<ServerAddress> getServerAddressList() {
  157. return mongoClient.getServerAddressList();
  158. }
  159. /**
  160. * @return
  161. * @see com.mongodb.Mongo#getUsedDatabases()
  162. */
  163. public Collection<DB> getUsedDatabases() {
  164. return mongoClient.getUsedDatabases();
  165. }
  166. /**
  167. * @return
  168. * @see com.mongodb.Mongo#getWriteConcern()
  169. */
  170. public WriteConcern getWriteConcern() {
  171. return mongoClient.getWriteConcern();
  172. }
  173. /**
  174. * @return
  175. * @see com.mongodb.Mongo#isLocked()
  176. */
  177. public boolean isLocked() {
  178. return mongoClient.isLocked();
  179. }
  180. /**
  181. * @return
  182. * @see com.mongodb.MongoClient#listDatabaseNames()
  183. */
  184. public MongoIterable<String> listDatabaseNames() {
  185. return mongoClient.listDatabaseNames();
  186. }
  187. /**
  188. * @return
  189. * @see com.mongodb.MongoClient#listDatabases()
  190. */
  191. public ListDatabasesIterable<Document> listDatabases() {
  192. return mongoClient.listDatabases();
  193. }
  194. /**
  195. * @param clazz
  196. * @return
  197. * @see com.mongodb.MongoClient#listDatabases(java.lang.Class)
  198. */
  199. public <T> ListDatabasesIterable<T> listDatabases(Class<T> clazz) {
  200. return mongoClient.listDatabases(clazz);
  201. }
  202. /**
  203. *
  204. * @see com.mongodb.Mongo#resetOptions()
  205. */
  206. public void resetOptions() {
  207. mongoClient.resetOptions();
  208. }
  209. /**
  210. * @param options
  211. * @see com.mongodb.Mongo#setOptions(int)
  212. */
  213. public void setOptions(int options) {
  214. mongoClient.setOptions(options);
  215. }
  216. /**
  217. * @param readPreference
  218. * @see com.mongodb.Mongo#setReadPreference(com.mongodb.ReadPreference)
  219. */
  220. public void setReadPreference(ReadPreference readPreference) {
  221. mongoClient.setReadPreference(readPreference);
  222. }
  223. /**
  224. * @param writeConcern
  225. * @see com.mongodb.Mongo#setWriteConcern(com.mongodb.WriteConcern)
  226. */
  227. public void setWriteConcern(WriteConcern writeConcern) {
  228. mongoClient.setWriteConcern(writeConcern);
  229. }
  230. /**
  231. * @return
  232. * @see com.mongodb.Mongo#unlock()
  233. */
  234. public DBObject unlock() {
  235. return mongoClient.unlock();
  236. }
  237. /**
  238. *
  239. * @return
  240. */
  241. public MongoClient getMongoClient() {
  242. return mongoClient;
  243. }
  244. /**
  245. *
  246. * @param mongoClient
  247. */
  248. public void setMongoClient(MongoClient mongoClient) {
  249. this.mongoClient = mongoClient;
  250. }
  251. /**
  252. *
  253. * @return
  254. */
  255. public String getMongoUri() {
  256. return mongoUri;
  257. }
  258. /**
  259. *
  260. * @param mongoUri
  261. */
  262. public void setMongoUri(String mongoUri) {
  263. this.mongoUri = mongoUri;
  264. }
  265. //
  266. /**
  267. * @return the database
  268. */
  269. public String getDatabase() {
  270. return database;
  271. }
  272. /**
  273. * @param database the database to set
  274. */
  275. public void setDatabase(String database) {
  276. this.database = database;
  277. }
  278. //
  279. @Override
  280. public String info() {
  281. InfoBuilder ib= InfoBuilder.create().format("%-30s:%-30s\n");
  282. int idx=1;
  283. ib.print("connectPoint",getConnectPoint());
  284. ib.print("maxBsonObjectSize",getMaxBsonObjectSize());
  285. ib.print("writeConcern",getWriteConcern());
  286. ib.print("mongoUri",mongoUri);
  287. //
  288. idx=1;
  289. for(String name:listDatabaseNames()){
  290. ib.print("DB-"+idx++,name);
  291. }
  292. return ib.toString();
  293. }
  294. }