/projects/geotools-9.2/modules/plugin/arcsde/common/src/main/java/org/geotools/arcsde/session/ArcSDEConnectionConfig.java

https://gitlab.com/essere.lab.public/qualitas.class-corpus · Java · 223 lines · 135 code · 47 blank · 41 comment · 11 complexity · 5c1197094a0ab581a41339eb4c2d5ea2 MD5 · raw file

  1. /*
  2. * GeoTools - The Open Source Java GIS Toolkit
  3. * http://geotools.org
  4. *
  5. * (C) 2002-2008, Open Source Geospatial Foundation (OSGeo)
  6. *
  7. * This library is free software; you can redistribute it and/or
  8. * modify it under the terms of the GNU Lesser General Public
  9. * License as published by the Free Software Foundation;
  10. * version 2.1 of the License.
  11. *
  12. * This library is distributed in the hope that it will be useful,
  13. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  15. * Lesser General Public License for more details.
  16. *
  17. */
  18. package org.geotools.arcsde.session;
  19. import java.io.Serializable;
  20. import java.util.HashMap;
  21. import java.util.Map;
  22. /**
  23. * Represents a set of ArcSDE database connection parameters.
  24. *
  25. * @author Gabriel Roldan
  26. *
  27. *
  28. * @source $URL$
  29. * http://svn.osgeo.org/geotools/trunk/modules/plugin/arcsde/common/src/main/java/org/geotools
  30. * /arcsde/session/ArcSDEConnectionConfig.java $
  31. * @version $Id$
  32. */
  33. public class ArcSDEConnectionConfig {
  34. /** ArcSDE server parameter name */
  35. public static final String SERVER_NAME_PARAM_NAME = "server";
  36. /** ArcSDE server port parameter name */
  37. public static final String PORT_NUMBER_PARAM_NAME = "port";
  38. /** ArcSDE databse name parameter name */
  39. public static final String INSTANCE_NAME_PARAM_NAME = "instance";
  40. /** ArcSDE database user name parameter name */
  41. public static final String USER_NAME_PARAM_NAME = "user";
  42. /** ArcSDE database user password parameter name */
  43. public static final String PASSWORD_PARAM_NAME = "password";
  44. public static final String MIN_CONNECTIONS_PARAM_NAME = "pool.minConnections";
  45. public static final String MAX_CONNECTIONS_PARAM_NAME = "pool.maxConnections";
  46. public static final String CONNECTION_TIMEOUT_PARAM_NAME = "pool.timeOut";
  47. /** name or IP of the ArcSDE server to connect to */
  48. private String serverName;
  49. /** port number where the ArcSDE instance listens for connections */
  50. private String portNumber;
  51. /** name of the ArcSDE database to connect to */
  52. private String databaseName;
  53. /** database user name to connect as */
  54. private String userName;
  55. /** database user password */
  56. private String password;
  57. /** minimum number of connection held in reserve, often 0 */
  58. private Integer minConnections = null;
  59. /** maximum number of connections */
  60. private Integer maxConnections = null;
  61. /** time to hold onto an idle connection before cleaning it up */
  62. private Integer connTimeOut = null;
  63. public ArcSDEConnectionConfig() throws IllegalArgumentException {
  64. }
  65. public String getServerName() {
  66. return serverName;
  67. }
  68. public void setServerName(String serverName) {
  69. this.serverName = serverName;
  70. }
  71. public String getPortNumber() {
  72. return portNumber;
  73. }
  74. public void setPortNumber(String portNumber) {
  75. this.portNumber = portNumber;
  76. }
  77. public String getDatabaseName() {
  78. return databaseName;
  79. }
  80. public void setDatabaseName(String databaseName) {
  81. this.databaseName = databaseName;
  82. }
  83. public String getUserName() {
  84. return userName;
  85. }
  86. public void setUserName(String userName) {
  87. this.userName = userName;
  88. }
  89. public String getPassword() {
  90. return password;
  91. }
  92. public void setPassword(String password) {
  93. this.password = password;
  94. }
  95. public Integer getMinConnections() {
  96. return minConnections;
  97. }
  98. public void setMinConnections(Integer minConnections) {
  99. this.minConnections = minConnections;
  100. }
  101. public Integer getMaxConnections() {
  102. return maxConnections;
  103. }
  104. public void setMaxConnections(Integer maxConnections) {
  105. this.maxConnections = maxConnections;
  106. }
  107. public Integer getConnTimeOut() {
  108. return connTimeOut;
  109. }
  110. public void setConnTimeOut(Integer connTimeOut) {
  111. this.connTimeOut = connTimeOut;
  112. }
  113. @Override
  114. public String toString() {
  115. StringBuilder sb = new StringBuilder(getClass().getSimpleName());
  116. sb.append("[server=").append(serverName);
  117. sb.append(", port=").append(portNumber);
  118. sb.append(", database=").append(databaseName);
  119. sb.append(", user=").append(userName);
  120. sb.append(", minConnections=").append(minConnections);
  121. sb.append(", maxConnections=").append(maxConnections);
  122. sb.append(", timeout=").append(connTimeOut);
  123. sb.append("]");
  124. return sb.toString();
  125. }
  126. @Override
  127. public boolean equals(final Object o) {
  128. if (!(o instanceof ArcSDEConnectionConfig)) {
  129. return false;
  130. }
  131. ArcSDEConnectionConfig c = (ArcSDEConnectionConfig) o;
  132. boolean equals = equals(serverName, c.serverName) && equals(portNumber, c.portNumber)
  133. && equals(databaseName, c.databaseName) && equals(userName, c.userName)
  134. && equals(password, c.password) && equals(minConnections, c.minConnections)
  135. && equals(maxConnections, c.maxConnections) && equals(connTimeOut, c.connTimeOut);
  136. return equals;
  137. }
  138. private static boolean equals(Object o1, Object o2) {
  139. return o1 == null ? (o2 == null) : o1.equals(o2);
  140. }
  141. @Override
  142. public int hashCode() {
  143. int prime = 17;
  144. int hash = prime
  145. * (hash(serverName) + hash(portNumber) + hash(databaseName) + hash(userName)
  146. + hash(password) + hash(minConnections) + hash(maxConnections) + hash(connTimeOut));
  147. return hash;
  148. }
  149. private static int hash(Object o) {
  150. return o == null ? 1 : String.valueOf(o).hashCode();
  151. }
  152. public static ArcSDEConnectionConfig fromMap(final Map<String, Serializable> map) {
  153. ArcSDEConnectionConfig config = new ArcSDEConnectionConfig();
  154. config.setDatabaseName(String.valueOf(map.get(INSTANCE_NAME_PARAM_NAME)));
  155. config.setPassword(String.valueOf(map.get(PASSWORD_PARAM_NAME)));
  156. config.setPortNumber(String.valueOf(map.get(PORT_NUMBER_PARAM_NAME)));
  157. config.setServerName(String.valueOf(map.get(SERVER_NAME_PARAM_NAME)));
  158. config.setUserName(String.valueOf(map.get(USER_NAME_PARAM_NAME)));
  159. config.setConnTimeOut(Integer.valueOf(String.valueOf(map.get(CONNECTION_TIMEOUT_PARAM_NAME))));
  160. config.setMaxConnections(Integer.valueOf(String.valueOf(map.get(MAX_CONNECTIONS_PARAM_NAME))));
  161. config.setMinConnections(Integer.valueOf(String.valueOf(map.get(MIN_CONNECTIONS_PARAM_NAME))));
  162. return config;
  163. }
  164. public Map<String, Serializable> toMap() {
  165. Map<String, Serializable> params = new HashMap<String, Serializable>();
  166. params.put(INSTANCE_NAME_PARAM_NAME, getDatabaseName());
  167. params.put(PASSWORD_PARAM_NAME, getPassword());
  168. params.put(PORT_NUMBER_PARAM_NAME, getPortNumber());
  169. params.put(SERVER_NAME_PARAM_NAME, getServerName());
  170. params.put(USER_NAME_PARAM_NAME, getUserName());
  171. params.put(CONNECTION_TIMEOUT_PARAM_NAME, getConnTimeOut());
  172. params.put(MAX_CONNECTIONS_PARAM_NAME, getMaxConnections());
  173. params.put(MIN_CONNECTIONS_PARAM_NAME, getMinConnections());
  174. return params;
  175. }
  176. }