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.2 $ 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 /*** 58 * @param statementProvider 59 */ 60 public CachingStatementProvider(StatementProvider statementProvider) { 61 this.statementProvider = statementProvider; 62 } 63 64 public StatementProvider getNext() { 65 return statementProvider; 66 } 67 68 /*** 69 * @return 70 */ 71 public String getAddMessageStatment() { 72 if (addMessageStatment == null) { 73 addMessageStatment = statementProvider.getAddMessageStatment(); 74 } 75 return addMessageStatment; 76 } 77 78 /*** 79 * @return 80 */ 81 public String getAddXidStatment() { 82 if (addXidStatment == null) { 83 addXidStatment = statementProvider.getAddXidStatment(); 84 } 85 return addXidStatment; 86 } 87 88 /*** 89 * @return 90 */ 91 public String[] getCreateSchemaStatments() { 92 if( createSchemaStatments==null ) { 93 createSchemaStatments = statementProvider.getCreateSchemaStatments(); 94 } 95 return createSchemaStatments; 96 } 97 98 /*** 99 * @return 100 */ 101 public String[] getDropSchemaStatments() { 102 if( dropSchemaStatments==null ) { 103 dropSchemaStatments = statementProvider.getDropSchemaStatments(); 104 } 105 return dropSchemaStatments; 106 } 107 108 /*** 109 * @return 110 */ 111 public String getFindAllMessagesStatment() { 112 if( findAllMessagesStatment==null ) { 113 findAllMessagesStatment = statementProvider.getFindAllMessagesStatment(); 114 } 115 return findAllMessagesStatment; 116 } 117 118 /*** 119 * @return 120 */ 121 public String getFindAllTxStatment() { 122 if( findAllTxStatment == null ) { 123 findAllTxStatment = statementProvider.getFindAllTxStatment(); 124 } 125 return findAllTxStatment; 126 } 127 128 /*** 129 * @return 130 */ 131 public String getFindAllXidStatment() { 132 if( findAllXidStatment==null ) { 133 findAllXidStatment = statementProvider.getFindAllXidStatment(); 134 } 135 return findAllXidStatment; 136 } 137 138 /*** 139 * @return 140 */ 141 public String getFindLastSequenceId() { 142 if( findLastSequenceId==null ) { 143 findLastSequenceId = statementProvider.getFindLastSequenceId(); 144 } 145 return findLastSequenceId; 146 } 147 148 /*** 149 * @return 150 */ 151 public String getFindMessageStatment() { 152 if( findMessageStatment==null ) { 153 findMessageStatment = statementProvider.getFindMessageStatment(); 154 } 155 return findMessageStatment; 156 } 157 158 /*** 159 * @return 160 */ 161 public String getFindXidStatment() { 162 if( findXidStatment==null ) { 163 findXidStatment = statementProvider.getFindXidStatment(); 164 } 165 return findXidStatment; 166 } 167 168 /*** 169 * @return 170 */ 171 public String getRemoveMessageStatment() { 172 if( removeMessageStatment==null ) { 173 removeMessageStatment = statementProvider.getRemoveMessageStatment(); 174 } 175 return removeMessageStatment; 176 } 177 178 /*** 179 * @return 180 */ 181 public String getRemoveXidStatment() { 182 if( removeXidStatment==null ) { 183 removeXidStatment = statementProvider.getRemoveXidStatment(); 184 } 185 return removeXidStatment; 186 } 187 188 /*** 189 * @return 190 */ 191 public String getUpdateMessageStatment() { 192 if( updateMessageStatment==null ) { 193 updateMessageStatment = statementProvider.getUpdateMessageStatment(); 194 } 195 return updateMessageStatment; 196 } 197 198 /*** 199 * @return 200 */ 201 public String getUpdateXidStatment() { 202 if( updateXidStatment==null ) { 203 updateXidStatment = statementProvider.getUpdateXidStatment(); 204 } 205 return updateXidStatment; 206 } 207 208 /*** 209 * @see org.codehaus.activemq.store.jdbc.StatementProvider#getCreateDurableSubStatment() 210 */ 211 public String getCreateDurableSubStatment() { 212 if(createDurableSubStatment==null) { 213 createDurableSubStatment = statementProvider.getCreateDurableSubStatment(); 214 } 215 return createDurableSubStatment; 216 } 217 218 /*** 219 * @see org.codehaus.activemq.store.jdbc.StatementProvider#getUpdateDurableSubStatment() 220 */ 221 public String getUpdateDurableSubStatment() { 222 if( updateDurableSubStatment == null ) { 223 updateDurableSubStatment = statementProvider.getUpdateDurableSubStatment(); 224 } 225 return updateDurableSubStatment; 226 } 227 228 /*** 229 * @see org.codehaus.activemq.store.jdbc.StatementProvider#getFindDurableSubStatment() 230 */ 231 public String getFindDurableSubStatment() { 232 if(findDurableSubStatment==null) { 233 findDurableSubStatment = statementProvider.getFindDurableSubStatment(); 234 } 235 return findDurableSubStatment; 236 } 237 /*** 238 * @return 239 */ 240 public String getFindAllDurableSubMessagesStatment() { 241 if(findAllDurableSubMessagesStatment==null) { 242 findAllDurableSubMessagesStatment = statementProvider.getFindAllDurableSubMessagesStatment(); 243 } 244 return findAllDurableSubMessagesStatment; 245 } 246 /*** 247 * @return 248 */ 249 public String getUpdateLastAckOfDurableSub() { 250 if(updateLastAckOfDurableSub==null) { 251 updateLastAckOfDurableSub = statementProvider.getUpdateLastAckOfDurableSub(); 252 } 253 return updateLastAckOfDurableSub; 254 } 255 }