1 36 package com.ivata.groupware.admin.struts; 37 38 import java.util.Arrays ; 39 import java.util.List ; 40 41 import javax.servlet.http.HttpServletRequest ; 42 import javax.servlet.http.HttpSession ; 43 44 import org.apache.log4j.Logger; 45 import org.apache.struts.action.ActionMapping; 46 47 import com.ivata.groupware.admin.security.server.SecuritySession; 48 import com.ivata.groupware.container.persistence.hibernate.HibernateSetupConstants; 49 import com.ivata.mask.util.StringHandling; 50 import com.ivata.mask.validation.ValidationError; 51 import com.ivata.mask.validation.ValidationErrors; 52 import com.ivata.mask.web.struts.DialogForm; 53 54 63 public class HibernateSetupForm extends DialogForm { 64 67 private static final Logger logger = Logger.getLogger(HibernateSetupForm.class); 68 71 private boolean createDatabaseAutomatically; 72 75 private String databaseDialect; 76 79 private List databaseDialects; 80 83 private String databaseDriver; 84 87 private List databaseDrivers; 88 91 private String databasePassword; 92 95 private List databaseTypes; 96 99 private String databaseURL; 100 103 private List databaseURLs; 104 107 private String databaseUserName; 108 113 protected void clear() { 114 } 115 120 public String getDatabaseDialect() { 121 return databaseDialect; 122 } 123 128 public List getDatabaseDialects() { 129 return databaseDialects; 130 } 131 135 public String getDatabaseDriver() { 136 return databaseDriver; 137 } 138 143 public List getDatabaseDrivers() { 144 return databaseDrivers; 145 } 146 150 public String getDatabasePassword() { 151 return databasePassword; 152 } 153 158 public List getDatabaseTypes() { 159 return databaseTypes; 160 } 161 166 public String getDatabaseURL() { 167 return databaseURL; 168 } 169 175 public List getDatabaseURLs() { 176 return databaseURLs; 177 } 178 182 public String getDatabaseUserName() { 183 return databaseUserName; 184 } 185 192 public boolean isCreateDatabaseAutomatically() { 193 return createDatabaseAutomatically; 194 } 195 201 public void reset(ActionMapping mappingParam, 202 HttpServletRequest requestParam) { 203 SecuritySession securitySession = (SecuritySession) 204 requestParam.getSession().getAttribute("securitySession"); 205 createDatabaseAutomatically = false; 208 209 databaseDialect = ""; 210 databaseDialects = Arrays.asList(HibernateSetupConstants.DATABASE_DIALECTS); 211 databaseDriver = ""; 212 databaseDrivers = Arrays.asList(HibernateSetupConstants.DATABASE_DRIVERS); 213 databaseTypes = Arrays.asList(HibernateSetupConstants.DATABASE_TYPES); 214 databaseURL = ""; 215 databaseURLs = Arrays.asList(HibernateSetupConstants.DATABASE_URLS); 216 } 217 222 public void setCreateDatabaseAutomatically( 223 boolean createDatabaseAutomaticallyParam) { 224 if (logger.isDebugEnabled()) { 225 logger.debug("Setting createDatabaseAutomatically. Before '" 226 + createDatabaseAutomatically + "', after '" 227 + createDatabaseAutomaticallyParam + "'"); 228 } 229 createDatabaseAutomatically = createDatabaseAutomaticallyParam; 230 } 231 235 public void setDatabaseDialect(String databaseDialectParam) { 236 if (logger.isDebugEnabled()) { 237 logger.debug("Setting databaseDialect. Before '" + databaseDialect 238 + "', after '" + databaseDialectParam + "'"); 239 } 240 databaseDialect = databaseDialectParam; 241 } 242 246 public void setDatabaseDialects(List databaseDialectsParam) { 247 if (logger.isDebugEnabled()) { 248 logger.debug("Setting databaseDialects. Before '" 249 + databaseDialects + "', after '" + databaseDialectsParam 250 + "'"); 251 } 252 databaseDialects = databaseDialectsParam; 253 } 254 258 public void setDatabaseDriver(String databaseDriverParam) { 259 if (logger.isDebugEnabled()) { 260 logger.debug("Setting databaseDriver. Before '" + databaseDriver 261 + "', after '" + databaseDriverParam + "'"); 262 } 263 databaseDriver = databaseDriverParam; 264 } 265 269 public void setDatabaseDrivers(List databaseDriversParam) { 270 if (logger.isDebugEnabled()) { 271 logger.debug("Setting databaseDrivers. Before '" + databaseDrivers 272 + "', after '" + databaseDriversParam + "'"); 273 } 274 databaseDrivers = databaseDriversParam; 275 } 276 280 public void setDatabasePassword(String databasePasswordParam) { 281 if (logger.isDebugEnabled()) { 282 logger.debug("Setting databasePassword. Before '" 283 + databasePassword + "', after '" + databasePasswordParam 284 + "'"); 285 } 286 databasePassword = databasePasswordParam; 287 } 288 292 public void setDatabaseTypes(List databaseTypesParam) { 293 if (logger.isDebugEnabled()) { 294 logger.debug("Setting databaseTypes. Before '" + databaseTypes 295 + "', after '" + databaseTypesParam + "'"); 296 } 297 databaseTypes = databaseTypesParam; 298 } 299 303 public void setDatabaseURL(String databaseURLParam) { 304 if (logger.isDebugEnabled()) { 305 logger.debug("Setting databaseURL. Before '" + databaseURL 306 + "', after '" + databaseURLParam + "'"); 307 } 308 databaseURL = databaseURLParam; 309 } 310 314 public void setDatabaseURLs(List databaseURLsParam) { 315 if (logger.isDebugEnabled()) { 316 logger.debug("Setting databaseURLs. Before '" + databaseURLs 317 + "', after '" + databaseURLsParam + "'"); 318 } 319 databaseURLs = databaseURLsParam; 320 } 321 325 public void setDatabaseUserName(String databaseUserNameParam) { 326 if (logger.isDebugEnabled()) { 327 logger.debug("Setting databaseUserName. Before '" 328 + databaseUserName + "', after '" + databaseUserNameParam 329 + "'"); 330 } 331 databaseUserName = databaseUserNameParam; 332 } 333 342 public ValidationErrors validate(final HttpServletRequest requestParam, 343 final HttpSession sessionParam) { 344 ValidationErrors errors = super.validate(requestParam, sessionParam); 345 if (createDatabaseAutomatically) { 348 databaseDriver = HibernateSetupConstants.AUTOMATIC_DATABASE_DRIVER; 349 databaseDialect = HibernateSetupConstants.AUTOMATIC_DATABASE_DIALECT; 350 databasePassword = HibernateSetupConstants.AUTOMATIC_DATABASE_PASSWORD; 351 databaseUserName = HibernateSetupConstants.AUTOMATIC_DATABASE_USER_NAME; 352 if (!databaseURL 354 .startsWith(HibernateSetupConstants.AUTOMATIC_DATABASE_URL_START)) { 355 errors.add( 356 new ValidationError("errors.setup.automaticDatabaseURL", 357 Arrays.asList(new String [] { 358 HibernateSetupConstants.AUTOMATIC_DATABASE_URL_START, 359 databaseURL}))); 360 } 361 } else { 362 if (StringHandling.isNullOrEmpty(databaseDriver) 365 && StringHandling.isNullOrEmpty(databasePassword) 366 && StringHandling.isNullOrEmpty(databaseUserName) 367 && StringHandling.isNullOrEmpty(databaseURL)) { 368 databaseDriver = HibernateSetupConstants.AUTOMATIC_DATABASE_DRIVER; 369 databaseDialect = HibernateSetupConstants.AUTOMATIC_DATABASE_DIALECT; 370 databasePassword = HibernateSetupConstants.AUTOMATIC_DATABASE_PASSWORD; 371 databaseUserName = HibernateSetupConstants.AUTOMATIC_DATABASE_USER_NAME; 372 databaseURL = HibernateSetupConstants.AUTOMATIC_DATABASE_MEMORY_URL; 373 374 } else if (StringHandling.isNullOrEmpty(databaseDialect) 377 || StringHandling.isNullOrEmpty(databaseDriver) 378 || StringHandling.isNullOrEmpty(databaseURL)) { 379 errors.add( 380 new ValidationError("errors.setup.database", 381 Arrays.asList(new String [] {}))); 382 } 383 } 384 385 return errors; 386 } 387 } 388 | Popular Tags |