Source code: org/activemq/store/jdbc/adapter/CachingStatementProvider.java
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.activemq.store.jdbc.adapter;
19
20 import org.activemq.store.jdbc.StatementProvider;
21
22 /**
23 * A StatementProvider filter that caches the responses
24 * of the filtered StatementProvider.
25 *
26 * @version $Revision: 1.1 $
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 findAllXidStatment;
38 private String findLastSequenceIdInMsgs;
39 private String findMessageStatment;
40 private String findMessageAttributesStatment;
41 private String findMessageAttributesForUpdateStatment;
42 private String removeMessageStatment;
43 private String removeXidStatment;
44 private String updateMessageStatment;
45 private String createDurableSubStatment;
46 private String updateDurableSubStatment;
47 private String findDurableSubStatment;
48 private String findAllDurableSubMessagesStatment;
49 private String updateLastAckOfDurableSub;
50 private String findMessageSequenceIdStatment;
51 private String removeAllMessagesStatment;
52 private String removeAllSubscriptionsStatment;
53 private String deleteSubscriptionStatment;
54 private String deleteOldMessagesStatment;
55 private String findExpiredMessagesStatement;
56 private String deleteMessageStatement;
57 private String findLastSequenceIdInAcks;
58 private String setDeadLetterFlagStatement;
59
60 public CachingStatementProvider(StatementProvider statementProvider) {
61 this.statementProvider = statementProvider;
62 }
63
64 public StatementProvider getNext() {
65 return statementProvider;
66 }
67
68 public String getAddMessageStatment() {
69 if (addMessageStatment == null) {
70 addMessageStatment = statementProvider.getAddMessageStatment();
71 }
72 return addMessageStatment;
73 }
74
75 public String getAddXidStatment() {
76 if (addXidStatment == null) {
77 addXidStatment = statementProvider.getAddXidStatment();
78 }
79 return addXidStatment;
80 }
81
82 public String[] getCreateSchemaStatments() {
83 if( createSchemaStatments==null ) {
84 createSchemaStatments = statementProvider.getCreateSchemaStatments();
85 }
86 return createSchemaStatments;
87 }
88
89 public String[] getDropSchemaStatments() {
90 if( dropSchemaStatments==null ) {
91 dropSchemaStatments = statementProvider.getDropSchemaStatments();
92 }
93 return dropSchemaStatments;
94 }
95
96 public String getFindAllMessagesStatment() {
97 if( findAllMessagesStatment==null ) {
98 findAllMessagesStatment = statementProvider.getFindAllMessagesStatment();
99 }
100 return findAllMessagesStatment;
101 }
102
103 public String getFindAllXidStatment() {
104 if( findAllXidStatment==null ) {
105 findAllXidStatment = statementProvider.getFindAllXidStatment();
106 }
107 return findAllXidStatment;
108 }
109
110 public String getFindLastSequenceIdInMsgs() {
111 if( findLastSequenceIdInMsgs==null ) {
112 findLastSequenceIdInMsgs = statementProvider.getFindLastSequenceIdInMsgs();
113 }
114 return findLastSequenceIdInMsgs;
115 }
116
117 public String getFindLastSequenceIdInAcks() {
118 if( findLastSequenceIdInAcks==null ) {
119 findLastSequenceIdInAcks = statementProvider.getFindLastSequenceIdInAcks();
120 }
121 return findLastSequenceIdInAcks;
122 }
123
124 public String getFindMessageStatment() {
125 if( findMessageStatment==null ) {
126 findMessageStatment = statementProvider.getFindMessageStatment();
127 }
128 return findMessageStatment;
129 }
130
131 public String getFindMessageAttributesStatment() {
132 if( findMessageAttributesStatment==null ) {
133 findMessageAttributesStatment = statementProvider.getFindMessageAttributesStatment();
134 }
135 return findMessageAttributesStatment;
136 }
137
138 public String getFindMessageAttributesForUpdateStatment() {
139 if( findMessageAttributesForUpdateStatment==null ) {
140 findMessageAttributesForUpdateStatment = statementProvider.getFindMessageAttributesForUpdateStatment();
141 }
142 return findMessageAttributesForUpdateStatment;
143 }
144
145 /**
146 * @return
147 */
148 public String getRemoveMessageStatment() {
149 if( removeMessageStatment==null ) {
150 removeMessageStatment = statementProvider.getRemoveMessageStatment();
151 }
152 return removeMessageStatment;
153 }
154
155 public String getRemoveXidStatment() {
156 if( removeXidStatment==null ) {
157 removeXidStatment = statementProvider.getRemoveXidStatment();
158 }
159 return removeXidStatment;
160 }
161
162 public String getUpdateMessageStatment() {
163 if( updateMessageStatment==null ) {
164 updateMessageStatment = statementProvider.getUpdateMessageStatment();
165 }
166 return updateMessageStatment;
167 }
168
169 public String getCreateDurableSubStatment() {
170 if(createDurableSubStatment==null) {
171 createDurableSubStatment = statementProvider.getCreateDurableSubStatment();
172 }
173 return createDurableSubStatment;
174 }
175
176 public String getUpdateDurableSubStatment() {
177 if( updateDurableSubStatment == null ) {
178 updateDurableSubStatment = statementProvider.getUpdateDurableSubStatment();
179 }
180 return updateDurableSubStatment;
181 }
182
183 public String getFindDurableSubStatment() {
184 if(findDurableSubStatment==null) {
185 findDurableSubStatment = statementProvider.getFindDurableSubStatment();
186 }
187 return findDurableSubStatment;
188 }
189
190 public String getFindAllDurableSubMessagesStatment() {
191 if(findAllDurableSubMessagesStatment==null) {
192 findAllDurableSubMessagesStatment = statementProvider.getFindAllDurableSubMessagesStatment();
193 }
194 return findAllDurableSubMessagesStatment;
195 }
196
197 public String getUpdateLastAckOfDurableSub() {
198 if(updateLastAckOfDurableSub==null) {
199 updateLastAckOfDurableSub = statementProvider.getUpdateLastAckOfDurableSub();
200 }
201 return updateLastAckOfDurableSub;
202 }
203
204 public String getFindMessageSequenceIdStatment() {
205 if ( findMessageSequenceIdStatment==null ) {
206 findMessageSequenceIdStatment = statementProvider.getFindMessageSequenceIdStatment();
207 }
208 return findMessageSequenceIdStatment;
209 }
210
211 public String getRemoveAllMessagesStatment() {
212 if ( removeAllMessagesStatment==null ) {
213 removeAllMessagesStatment = statementProvider.getRemoveAllMessagesStatment();
214 }
215 return removeAllMessagesStatment;
216 }
217
218 public String getRemoveAllSubscriptionsStatment() {
219 if ( removeAllSubscriptionsStatment==null ) {
220 removeAllSubscriptionsStatment = statementProvider.getRemoveAllSubscriptionsStatment();
221 }
222 return removeAllSubscriptionsStatment;
223 }
224
225 public String getDeleteSubscriptionStatment() {
226 if ( deleteSubscriptionStatment==null ) {
227 deleteSubscriptionStatment = statementProvider.getDeleteSubscriptionStatment();
228 }
229 return deleteSubscriptionStatment;
230 }
231
232 public String getDeleteOldMessagesStatment() {
233 if ( deleteOldMessagesStatment==null ) {
234 deleteOldMessagesStatment = statementProvider.getDeleteOldMessagesStatment();
235 }
236 return deleteOldMessagesStatment;
237 }
238
239 public String getFindExpiredMessagesStatment() {
240 if ( findExpiredMessagesStatement==null) {
241 findExpiredMessagesStatement = statementProvider.getFindExpiredMessagesStatment();
242 }
243 return findExpiredMessagesStatement;
244 }
245
246 public String getDeleteMessageStatement() {
247 if ( deleteMessageStatement==null) {
248 deleteMessageStatement = statementProvider.getDeleteMessageStatement();
249 }
250 return deleteMessageStatement;
251 }
252
253 public String getSetDeadLetterFlagStatement() {
254 if ( setDeadLetterFlagStatement==null) {
255 setDeadLetterFlagStatement = statementProvider.getSetDeadLetterFlagStatement();
256 }
257 return setDeadLetterFlagStatement;
258 }
259
260 public void setTablePrefix(String tablePrefix) {
261 statementProvider.setTablePrefix(tablePrefix);
262 }
263
264 public String getTablePrefix() {
265 return statementProvider.getTablePrefix();
266 }
267 }