001 /**
002 *
003 * Copyright 2004 Hiram Chirino
004 *
005 * Licensed under the Apache License, Version 2.0 (the "License");
006 * you may not use this file except in compliance with the License.
007 * You may obtain a copy of the License at
008 *
009 * http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 *
017 **/
018 package org.activemq.store.jdbc.adapter;
019
020 import org.activemq.store.jdbc.StatementProvider;
021
022 /**
023 * A StatementProvider filter that caches the responses
024 * of the filtered StatementProvider.
025 *
026 * @version $Revision: 1.1 $
027 */
028 public class CachingStatementProvider implements StatementProvider {
029
030 final private StatementProvider statementProvider;
031
032 private String addMessageStatment;
033 private String addXidStatment;
034 private String[] createSchemaStatments;
035 private String[] dropSchemaStatments;
036 private String findAllMessagesStatment;
037 private String findAllXidStatment;
038 private String findLastSequenceIdInMsgs;
039 private String findMessageStatment;
040 private String removeMessageStatment;
041 private String removeXidStatment;
042 private String updateMessageStatment;
043 private String createDurableSubStatment;
044 private String updateDurableSubStatment;
045 private String findDurableSubStatment;
046 private String findAllDurableSubMessagesStatment;
047 private String updateLastAckOfDurableSub;
048 private String findMessageSequenceIdStatment;
049 private String removeAllMessagesStatment;
050 private String removeAllSubscriptionsStatment;
051 private String deleteSubscriptionStatment;
052 private String deleteOldMessagesStatment;
053 private String findLastSequenceIdInAcks;
054
055 public CachingStatementProvider(StatementProvider statementProvider) {
056 this.statementProvider = statementProvider;
057 }
058
059 public StatementProvider getNext() {
060 return statementProvider;
061 }
062
063 public String getAddMessageStatment() {
064 if (addMessageStatment == null) {
065 addMessageStatment = statementProvider.getAddMessageStatment();
066 }
067 return addMessageStatment;
068 }
069
070 public String getAddXidStatment() {
071 if (addXidStatment == null) {
072 addXidStatment = statementProvider.getAddXidStatment();
073 }
074 return addXidStatment;
075 }
076
077 public String[] getCreateSchemaStatments() {
078 if( createSchemaStatments==null ) {
079 createSchemaStatments = statementProvider.getCreateSchemaStatments();
080 }
081 return createSchemaStatments;
082 }
083
084 public String[] getDropSchemaStatments() {
085 if( dropSchemaStatments==null ) {
086 dropSchemaStatments = statementProvider.getDropSchemaStatments();
087 }
088 return dropSchemaStatments;
089 }
090
091 public String getFindAllMessagesStatment() {
092 if( findAllMessagesStatment==null ) {
093 findAllMessagesStatment = statementProvider.getFindAllMessagesStatment();
094 }
095 return findAllMessagesStatment;
096 }
097
098 public String getFindAllXidStatment() {
099 if( findAllXidStatment==null ) {
100 findAllXidStatment = statementProvider.getFindAllXidStatment();
101 }
102 return findAllXidStatment;
103 }
104
105 public String getFindLastSequenceIdInMsgs() {
106 if( findLastSequenceIdInMsgs==null ) {
107 findLastSequenceIdInMsgs = statementProvider.getFindLastSequenceIdInMsgs();
108 }
109 return findLastSequenceIdInMsgs;
110 }
111
112 public String getFindLastSequenceIdInAcks() {
113 if( findLastSequenceIdInAcks==null ) {
114 findLastSequenceIdInAcks = statementProvider.getFindLastSequenceIdInAcks();
115 }
116 return findLastSequenceIdInAcks;
117 }
118
119 public String getFindMessageStatment() {
120 if( findMessageStatment==null ) {
121 findMessageStatment = statementProvider.getFindMessageStatment();
122 }
123 return findMessageStatment;
124 }
125
126 /**
127 * @return
128 */
129 public String getRemoveMessageStatment() {
130 if( removeMessageStatment==null ) {
131 removeMessageStatment = statementProvider.getRemoveMessageStatment();
132 }
133 return removeMessageStatment;
134 }
135
136 public String getRemoveXidStatment() {
137 if( removeXidStatment==null ) {
138 removeXidStatment = statementProvider.getRemoveXidStatment();
139 }
140 return removeXidStatment;
141 }
142
143 public String getUpdateMessageStatment() {
144 if( updateMessageStatment==null ) {
145 updateMessageStatment = statementProvider.getUpdateMessageStatment();
146 }
147 return updateMessageStatment;
148 }
149
150 public String getCreateDurableSubStatment() {
151 if(createDurableSubStatment==null) {
152 createDurableSubStatment = statementProvider.getCreateDurableSubStatment();
153 }
154 return createDurableSubStatment;
155 }
156
157 public String getUpdateDurableSubStatment() {
158 if( updateDurableSubStatment == null ) {
159 updateDurableSubStatment = statementProvider.getUpdateDurableSubStatment();
160 }
161 return updateDurableSubStatment;
162 }
163
164 public String getFindDurableSubStatment() {
165 if(findDurableSubStatment==null) {
166 findDurableSubStatment = statementProvider.getFindDurableSubStatment();
167 }
168 return findDurableSubStatment;
169 }
170
171 public String getFindAllDurableSubMessagesStatment() {
172 if(findAllDurableSubMessagesStatment==null) {
173 findAllDurableSubMessagesStatment = statementProvider.getFindAllDurableSubMessagesStatment();
174 }
175 return findAllDurableSubMessagesStatment;
176 }
177
178 public String getUpdateLastAckOfDurableSub() {
179 if(updateLastAckOfDurableSub==null) {
180 updateLastAckOfDurableSub = statementProvider.getUpdateLastAckOfDurableSub();
181 }
182 return updateLastAckOfDurableSub;
183 }
184
185 public String getFindMessageSequenceIdStatment() {
186 if ( findMessageSequenceIdStatment==null ) {
187 findMessageSequenceIdStatment = statementProvider.getFindMessageSequenceIdStatment();
188 }
189 return findMessageSequenceIdStatment;
190 }
191
192 public String getRemoveAllMessagesStatment() {
193 if ( removeAllMessagesStatment==null ) {
194 removeAllMessagesStatment = statementProvider.getRemoveAllMessagesStatment();
195 }
196 return removeAllMessagesStatment;
197 }
198
199 public String getRemoveAllSubscriptionsStatment() {
200 if ( removeAllSubscriptionsStatment==null ) {
201 removeAllSubscriptionsStatment = statementProvider.getRemoveAllSubscriptionsStatment();
202 }
203 return removeAllSubscriptionsStatment;
204 }
205
206 public String getDeleteSubscriptionStatment() {
207 if ( deleteSubscriptionStatment==null ) {
208 deleteSubscriptionStatment = statementProvider.getDeleteSubscriptionStatment();
209 }
210 return deleteSubscriptionStatment;
211 }
212
213 public String getDeleteOldMessagesStatment() {
214 if ( deleteOldMessagesStatment==null ) {
215 deleteOldMessagesStatment = statementProvider.getDeleteOldMessagesStatment();
216 }
217 return deleteOldMessagesStatment;
218 }
219 }