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 }