1 /*** 2 * 3 * Copyright 2004 Hiram Chirino 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); 6 * you may not use this file except in compliance with the License. 7 * You may obtain a copy of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 * See the License for the specific language governing permissions and 15 * limitations under the License. 16 * 17 **/ 18 package org.codehaus.activemq.store.jdbc.adapter; 19 20 import org.codehaus.activemq.store.jdbc.StatementProvider; 21 22 /*** 23 * A StatementProvider filter that caches the responses 24 * of the filtered StatementProvider. 25 * 26 * @version $Revision: 1.3 $ 27 */ 28 public class CachingStatementProvider implements StatementProvider { 29 30 final private StatementProvider statementProvider; 31 32 private String addMessageStatment; 33 private String addXidStatment; 34 private String[] createSchemaStatments; 35 private String[] dropSchemaStatments; 36 private String findAllMessagesStatment; 37 private String findAllTxStatment; 38 private String findAllXidStatment; 39 private String findLastSequenceId; 40 private String findMessageStatment; 41 private String findXidStatment; 42 private String removeMessageStatment; 43 private String removeXidStatment; 44 private String updateMessageStatment; 45 private String updateXidStatment; 46 47 private String createDurableSubStatment; 48 49 private String updateDurableSubStatment; 50 51 private String findDurableSubStatment; 52 53 private String findAllDurableSubMessagesStatment; 54 55 private String updateLastAckOfDurableSub; 56 57 private String findMessageSequenceIdStatment; 58 59 /*** 60 * @param statementProvider 61 */ 62 public CachingStatementProvider(StatementProvider statementProvider) { 63 this.statementProvider = statementProvider; 64 } 65 66 public StatementProvider getNext() { 67 return statementProvider; 68 } 69 70 /*** 71 * @return 72 */ 73 public String getAddMessageStatment() { 74 if (addMessageStatment == null) { 75 addMessageStatment = statementProvider.getAddMessageStatment(); 76 } 77 return addMessageStatment; 78 } 79 80 /*** 81 * @return 82 */ 83 public String getAddXidStatment() { 84 if (addXidStatment == null) { 85 addXidStatment = statementProvider.getAddXidStatment(); 86 } 87 return addXidStatment; 88 } 89 90 /*** 91 * @return 92 */ 93 public String[] getCreateSchemaStatments() { 94 if( createSchemaStatments==null ) { 95 createSchemaStatments = statementProvider.getCreateSchemaStatments(); 96 } 97 return createSchemaStatments; 98 } 99 100 /*** 101 * @return 102 */ 103 public String[] getDropSchemaStatments() { 104 if( dropSchemaStatments==null ) { 105 dropSchemaStatments = statementProvider.getDropSchemaStatments(); 106 } 107 return dropSchemaStatments; 108 } 109 110 /*** 111 * @return 112 */ 113 public String getFindAllMessagesStatment() { 114 if( findAllMessagesStatment==null ) { 115 findAllMessagesStatment = statementProvider.getFindAllMessagesStatment(); 116 } 117 return findAllMessagesStatment; 118 } 119 120 /*** 121 * @return 122 */ 123 public String getFindAllTxStatment() { 124 if( findAllTxStatment == null ) { 125 findAllTxStatment = statementProvider.getFindAllTxStatment(); 126 } 127 return findAllTxStatment; 128 } 129 130 /*** 131 * @return 132 */ 133 public String getFindAllXidStatment() { 134 if( findAllXidStatment==null ) { 135 findAllXidStatment = statementProvider.getFindAllXidStatment(); 136 } 137 return findAllXidStatment; 138 } 139 140 /*** 141 * @return 142 */ 143 public String getFindLastSequenceId() { 144 if( findLastSequenceId==null ) { 145 findLastSequenceId = statementProvider.getFindLastSequenceId(); 146 } 147 return findLastSequenceId; 148 } 149 150 /*** 151 * @return 152 */ 153 public String getFindMessageStatment() { 154 if( findMessageStatment==null ) { 155 findMessageStatment = statementProvider.getFindMessageStatment(); 156 } 157 return findMessageStatment; 158 } 159 160 /*** 161 * @return 162 */ 163 public String getFindXidStatment() { 164 if( findXidStatment==null ) { 165 findXidStatment = statementProvider.getFindXidStatment(); 166 } 167 return findXidStatment; 168 } 169 170 /*** 171 * @return 172 */ 173 public String getRemoveMessageStatment() { 174 if( removeMessageStatment==null ) { 175 removeMessageStatment = statementProvider.getRemoveMessageStatment(); 176 } 177 return removeMessageStatment; 178 } 179 180 /*** 181 * @return 182 */ 183 public String getRemoveXidStatment() { 184 if( removeXidStatment==null ) { 185 removeXidStatment = statementProvider.getRemoveXidStatment(); 186 } 187 return removeXidStatment; 188 } 189 190 /*** 191 * @return 192 */ 193 public String getUpdateMessageStatment() { 194 if( updateMessageStatment==null ) { 195 updateMessageStatment = statementProvider.getUpdateMessageStatment(); 196 } 197 return updateMessageStatment; 198 } 199 200 /*** 201 * @return 202 */ 203 public String getUpdateXidStatment() { 204 if( updateXidStatment==null ) { 205 updateXidStatment = statementProvider.getUpdateXidStatment(); 206 } 207 return updateXidStatment; 208 } 209 210 /*** 211 * @see org.codehaus.activemq.store.jdbc.StatementProvider#getCreateDurableSubStatment() 212 */ 213 public String getCreateDurableSubStatment() { 214 if(createDurableSubStatment==null) { 215 createDurableSubStatment = statementProvider.getCreateDurableSubStatment(); 216 } 217 return createDurableSubStatment; 218 } 219 220 /*** 221 * @see org.codehaus.activemq.store.jdbc.StatementProvider#getUpdateDurableSubStatment() 222 */ 223 public String getUpdateDurableSubStatment() { 224 if( updateDurableSubStatment == null ) { 225 updateDurableSubStatment = statementProvider.getUpdateDurableSubStatment(); 226 } 227 return updateDurableSubStatment; 228 } 229 230 /*** 231 * @see org.codehaus.activemq.store.jdbc.StatementProvider#getFindDurableSubStatment() 232 */ 233 public String getFindDurableSubStatment() { 234 if(findDurableSubStatment==null) { 235 findDurableSubStatment = statementProvider.getFindDurableSubStatment(); 236 } 237 return findDurableSubStatment; 238 } 239 /*** 240 * @return 241 */ 242 public String getFindAllDurableSubMessagesStatment() { 243 if(findAllDurableSubMessagesStatment==null) { 244 findAllDurableSubMessagesStatment = statementProvider.getFindAllDurableSubMessagesStatment(); 245 } 246 return findAllDurableSubMessagesStatment; 247 } 248 /*** 249 * @return 250 */ 251 public String getUpdateLastAckOfDurableSub() { 252 if(updateLastAckOfDurableSub==null) { 253 updateLastAckOfDurableSub = statementProvider.getUpdateLastAckOfDurableSub(); 254 } 255 return updateLastAckOfDurableSub; 256 } 257 258 public String getFindMessageSequenceIdStatment() { 259 if ( findMessageSequenceIdStatment==null ) { 260 findMessageSequenceIdStatment = statementProvider.getFindMessageSequenceIdStatment(); 261 } 262 return findMessageSequenceIdStatment; 263 } 264 }