1. /*
  2. * Copyright 2002-2004 the original author or authors.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. package org.springframework.jdbc.support;
  17. /**
  18. * JavaBean for holding JDBC Error Codes for a particular database.
  19. * Normally loaded through a BeanFactory
  20. * implementation. Used by the SQLErrorCodeSQLExceptionTranslator.
  21. * @author Thomas Risberg
  22. * @version $Id: SQLErrorCodes.java,v 1.5 2004/04/13 12:21:46 trisberg Exp $
  23. */
  24. public class SQLErrorCodes {
  25. private String databaseProductName = null;
  26. private boolean useSqlStateForTranslation = false;
  27. private String[] badSqlGrammarCodes = new String[0];
  28. private String[] dataIntegrityViolationCodes = new String[0];
  29. private String[] dataRetrievalFailureCodes = new String[0];
  30. private String[] optimisticLockingFailureCodes = new String[0];
  31. private String[] dataAccessResourceFailureCodes = new String[0];
  32. /**
  33. * Sets the badSqlGrammarCodes.
  34. */
  35. public void setBadSqlGrammarCodes(String[] badSqlGrammarCodes) {
  36. this.badSqlGrammarCodes = badSqlGrammarCodes;
  37. }
  38. /**
  39. * Returns the badSqlGrammarCodes.
  40. */
  41. public String[] getBadSqlGrammarCodes() {
  42. return badSqlGrammarCodes;
  43. }
  44. /**
  45. * Sets the dataIntegrityViolationCodes.
  46. */
  47. public void setDataIntegrityViolationCodes(String[] dataIntegrityViolationCodes) {
  48. this.dataIntegrityViolationCodes = dataIntegrityViolationCodes;
  49. }
  50. /**
  51. * Returns the dataIntegrityViolationCodes.
  52. */
  53. public String[] getDataIntegrityViolationCodes() {
  54. return dataIntegrityViolationCodes;
  55. }
  56. /**
  57. * @return Returns the dataRetrievalFailureCodes.
  58. */
  59. public String[] getDataRetrievalFailureCodes() {
  60. return dataRetrievalFailureCodes;
  61. }
  62. /**
  63. * @param dataRetrievalFailureCodes The dataRetrievalFailureCodes to set.
  64. */
  65. public void setDataRetrievalFailureCodes(String[] dataRetrievalFailureCodes) {
  66. this.dataRetrievalFailureCodes = dataRetrievalFailureCodes;
  67. }
  68. /**
  69. * @return Returns the dataAccessResourceFailureCodes.
  70. */
  71. public String[] getDataAccessResourceFailureCodes() {
  72. return dataAccessResourceFailureCodes;
  73. }
  74. /**
  75. * @param dataAccessResourceFailureCodes The dataAccessResourceFailureCodes to set.
  76. */
  77. public void setDataAccessResourceFailureCodes(
  78. String[] dataAccessResourceFailureCodes) {
  79. this.dataAccessResourceFailureCodes = dataAccessResourceFailureCodes;
  80. }
  81. /**
  82. * @return Returns the optimisticLockingFailureCodes.
  83. */
  84. public String[] getOptimisticLockingFailureCodes() {
  85. return optimisticLockingFailureCodes;
  86. }
  87. /**
  88. * @param optimisticLockingFailureCodes The optimisticLockingFailureCodes to set.
  89. */
  90. public void setOptimisticLockingFailureCodes(
  91. String[] optimisticLockingFailureCodes) {
  92. this.optimisticLockingFailureCodes = optimisticLockingFailureCodes;
  93. }
  94. /**
  95. * @return Returns the databaseProductName.
  96. */
  97. public String getDatabaseProductName() {
  98. return databaseProductName;
  99. }
  100. /**
  101. * @param databaseProductName The databaseProductName to set.
  102. * Set this property this if the database name contains spaces, in which case
  103. * we can not use the bean id for lookup.
  104. */
  105. public void setDatabaseProductName(String databaseProductName) {
  106. this.databaseProductName = databaseProductName;
  107. }
  108. /**
  109. * @return Returns the useStateCodeForTranslation.
  110. */
  111. public boolean isUseSqlStateForTranslation() {
  112. return useSqlStateForTranslation;
  113. }
  114. /**
  115. * @param useStateCodeForTranslation The useStateCodeForTranslation to set.
  116. * Set this to true for databases that do not provide an error code but that
  117. * does provide SQL State (this includes PostgreSQL).
  118. */
  119. public void setUseSqlStateForTranslation(boolean useStateCodeForTranslation) {
  120. this.useSqlStateForTranslation = useStateCodeForTranslation;
  121. }
  122. }