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 }