001    /*
002     * Licensed to the Apache Software Foundation (ASF) under one or more
003     * contributor license agreements.  See the NOTICE file distributed with
004     * this work for additional information regarding copyright ownership.
005     * The ASF licenses this file to You under the Apache License, Version 2.0
006     * (the "License"); you may not use this file except in compliance with
007     * the License.  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    package org.apache.servicemix.jdbc;
018    
019    /**
020     * @version $Revision: 1.4 $
021     * 
022     * @org.apache.xbean.XBean element="statements"
023     * 
024     */
025    public class Statements {
026    
027        protected String storeTableName = "SM_STORE";
028        protected String binaryDataType = "BLOB";
029        protected String idDataType = "VARCHAR(255)";
030        private String tablePrefix = "";
031        private String storeDataStatement;
032        private String updateDataStatement;
033        private String removeDataStatement;
034        private String findDataStatement;
035        private String findAllIdsStatement;
036        private String findAllDataStatement;
037        private String countStatement;
038        private String[] createSchemaStatements;
039        private String[] dropSchemaStatements;
040    
041        public String[] getCreateSchemaStatements() {
042            if (createSchemaStatements == null) {
043                createSchemaStatements = new String[] {
044                    "CREATE TABLE " + getFullStoreTableName() + "(" + "ID " + idDataType + " NOT NULL"
045                                + ", DATA " + binaryDataType
046                                + ", PRIMARY KEY ( ID ) )",
047                };
048            }
049            return createSchemaStatements;
050        }
051    
052        public String[] getDropSchemaStatements() {
053            if (dropSchemaStatements == null) {
054                dropSchemaStatements = new String[] { 
055                    "DROP TABLE " + getFullStoreTableName() + "", 
056                };
057            }
058            return dropSchemaStatements;
059        }
060    
061        public String getStoreDataStatement() {
062            if (storeDataStatement == null) {
063                storeDataStatement = "INSERT INTO " + getFullStoreTableName()
064                        + "(ID, DATA) VALUES (?, ?)";
065            }
066            return storeDataStatement;
067        }
068    
069        public String getUpdateDataStatement() {
070            if (updateDataStatement == null) {
071                updateDataStatement = "UPDATE " + getFullStoreTableName() + " SET DATA=? WHERE ID=?";
072            }
073            return updateDataStatement;
074        }
075    
076        public String getRemoveDataStatement() {
077            if (removeDataStatement == null) {
078                removeDataStatement = "DELETE FROM " + getFullStoreTableName() + " WHERE ID=?";
079            }
080            return removeDataStatement;
081        }
082    
083        public String getFindDataStatement() {
084            if (findDataStatement == null) {
085                findDataStatement = "SELECT DATA FROM " + getFullStoreTableName() + " WHERE ID=?";
086            }
087            return findDataStatement;
088        }
089    
090        public String getFindAllIdsStatement() {
091            if (findAllIdsStatement == null) {
092                findAllIdsStatement = "SELECT ID FROM " + getFullStoreTableName() 
093                        + " ORDER BY ID"; 
094            }
095            return findAllIdsStatement;
096        }
097    
098        public String getFindAllDataStatement() {
099            if (findAllDataStatement == null) {
100                findAllDataStatement = "SELECT ID, DATA FROM " + getFullStoreTableName()
101                        + " WHERE ORDER BY ID";
102            }
103            return findAllDataStatement;
104        }
105    
106        public String getCountStatement() {
107            if (countStatement == null) {
108                countStatement = "SELECT COUNT(ID) FROM " + getFullStoreTableName();
109            }
110            return countStatement;
111        }
112    
113        public String getFullStoreTableName() {
114            return getTablePrefix() + getStoreTableName();
115        }
116    
117        /**
118         * @return Returns the messageDataType.
119         */
120        public String getBinaryDataType() {
121            return binaryDataType;
122        }
123    
124        /**
125         * @param messageDataType
126         *            The messageDataType to set.
127         */
128        public void setBinaryDataType(String messageDataType) {
129            this.binaryDataType = messageDataType;
130        }
131    
132        /**
133         * @return Returns the storeTableName.
134         */
135        public String getStoreTableName() {
136            return storeTableName;
137        }
138    
139        /**
140         * @param storeTableName
141         *            The storeTableName to set.
142         */
143        public void setStoreTableName(String storeTableName) {
144            this.storeTableName = storeTableName;
145        }
146    
147        /**
148         * @return Returns the idDataType.
149         */
150        public String getIdDataType() {
151            return idDataType;
152        }
153    
154        /**
155         * @param idDataType
156         *            The idDataType to set.
157         */
158        public void setIdDataType(String msgIdDataType) {
159            this.idDataType = msgIdDataType;
160        }
161    
162        /**
163         * @return Returns the tablePrefix.
164         */
165        public String getTablePrefix() {
166            return tablePrefix;
167        }
168    
169        /**
170         * @param tablePrefix
171         *            The tablePrefix to set.
172         */
173        public void setTablePrefix(String tablePrefix) {
174            this.tablePrefix = tablePrefix;
175        }
176    
177        public void setStoreDataStatement(String addMessageStatment) {
178            this.storeDataStatement = addMessageStatment;
179        }
180    
181        public void setCreateSchemaStatements(String[] createSchemaStatments) {
182            this.createSchemaStatements = createSchemaStatments;
183        }
184    
185        public void setDropSchemaStatements(String[] dropSchemaStatments) {
186            this.dropSchemaStatements = dropSchemaStatments;
187        }
188    
189        public void setFindAllDataStatement(String findAllMessagesStatment) {
190            this.findAllDataStatement = findAllMessagesStatment;
191        }
192    
193        public void setFindDataStatement(String findMessageStatment) {
194            this.findDataStatement = findMessageStatment;
195        }
196    
197        public void setRemoveDataStatement(String removeMessageStatment) {
198            this.removeDataStatement = removeMessageStatment;
199        }
200    
201        public void setUpdateDataStatement(String updateMessageStatment) {
202            this.updateDataStatement = updateMessageStatment;
203        }
204    
205        public void setFindAllIdsStatement(String findAllIdsStatement) {
206            this.findAllIdsStatement = findAllIdsStatement;
207        }
208    
209        public void setCountStatement(String getCountStatement) {
210            this.countStatement = getCountStatement;
211        }
212    
213    }