/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.aries.samples.blog.persistence.jdbc;
public class Statements {
private static final String I_THR_TRY_ELEMENT = "I_THR_TRY_ELEMENT";
private static final String I_THR_TRY_AUTHOR_EMAIL = "I_THR_TRY_AUTHOR_EMAIL";
public static final String I_BLGNTRY_AUTHOR = "I_BLGNTRY_AUTHOR";
public static final String AUTHOR_TABLE_NAME = "AUTHOR";
public static final String AUTHOR_BLOG_ENTRY_TABLE_NAME = "AUTHOR_BLOGENTRY";
public static final String BLOG_ENTRY_TABLE_NAME = "BLOGENTRY";
public static final String COMMENT_ENTRY_TABLE_NAME = "COMMENT";
private String[] dropSchemaStatements;
private String[] createSchemaStatements;
public synchronized String[] getCreateSchemaStatements() {
if (createSchemaStatements == null) {
createSchemaStatements = new String[] {
"CREATE TABLE "
+ AUTHOR_TABLE_NAME
+ " (email VARCHAR(255) NOT NULL, "
+ "bio VARCHAR(255), displayName VARCHAR(255), "
+ "dob TIMESTAMP, name VARCHAR(255), PRIMARY KEY (email))",
"CREATE TABLE " + AUTHOR_BLOG_ENTRY_TABLE_NAME
+ " (AUTHOR_EMAIL VARCHAR(255), POSTS_ID BIGINT)",
"CREATE TABLE "
+ BLOG_ENTRY_TABLE_NAME
+ " (id BIGINT NOT NULL, blogText VARCHAR(10000), "
+ "publishDate TIMESTAMP, title VARCHAR(255), updatedDate TIMESTAMP, "
+ "AUTHOR_EMAIL VARCHAR(255), PRIMARY KEY (id))",
"CREATE TABLE "
+ COMMENT_ENTRY_TABLE_NAME
+ " (id BIGINT NOT NULL, comment VARCHAR(255), creationDate TIMESTAMP, "
+ "AUTHOR_EMAIL VARCHAR(255), BLOGENTRY_ID BIGINT)",
"CREATE INDEX " + I_THR_TRY_AUTHOR_EMAIL + " ON "
+ AUTHOR_BLOG_ENTRY_TABLE_NAME + " (AUTHOR_EMAIL)",
"CREATE INDEX " + I_THR_TRY_ELEMENT + " ON "
+ AUTHOR_BLOG_ENTRY_TABLE_NAME + " (POSTS_ID)",
"CREATE INDEX " + I_BLGNTRY_AUTHOR + " ON "
+ BLOG_ENTRY_TABLE_NAME + " (AUTHOR_EMAIL)",
"DELETE FROM " + AUTHOR_TABLE_NAME,
"DELETE FROM " + AUTHOR_BLOG_ENTRY_TABLE_NAME,
"DELETE FROM " + BLOG_ENTRY_TABLE_NAME,
"DELETE FROM " + COMMENT_ENTRY_TABLE_NAME };
}
return createSchemaStatements;
}
public synchronized String[] getDropSchemaStatements() {
if (dropSchemaStatements == null) {
dropSchemaStatements = new String[] {
"DROP INDEX " + I_THR_TRY_ELEMENT,
"DROP INDEX " + I_BLGNTRY_AUTHOR,
"DROP INDEX " + I_THR_TRY_AUTHOR_EMAIL,
"DROP TABLE " + COMMENT_ENTRY_TABLE_NAME,
"DROP TABLE " + BLOG_ENTRY_TABLE_NAME,
"DROP TABLE " + AUTHOR_BLOG_ENTRY_TABLE_NAME,
"DROP TABLE " + AUTHOR_TABLE_NAME };
}
return dropSchemaStatements;
}
}