/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.portal.kernel.dao.db;
import com.liferay.portal.kernel.util.LoggingTimer;
import java.io.IOException;
import java.sql.Connection;
import java.sql.SQLException;
import javax.naming.NamingException;
/**
* @author Hugo Huijser
* @author Brian Wing Shun Chan
*/
public abstract class BaseDBProcess implements DBProcess {
public BaseDBProcess() {
}
@Override
public void runSQL(Connection connection, String template)
throws IOException, SQLException {
DB db = DBManagerUtil.getDB();
db.runSQL(connection, template);
}
@Override
public void runSQL(DBTypeToSQLMap dbTypeToSQLMap)
throws IOException, SQLException {
DB db = DBManagerUtil.getDB();
if (connection == null) {
db.runSQL(dbTypeToSQLMap);
}
else {
db.runSQL(connection, dbTypeToSQLMap);
}
}
@Override
public void runSQL(String template) throws IOException, SQLException {
DB db = DBManagerUtil.getDB();
if (connection == null) {
db.runSQL(template);
}
else {
db.runSQL(connection, template);
}
}
@Override
public void runSQL(String[] templates) throws IOException, SQLException {
DB db = DBManagerUtil.getDB();
if (connection == null) {
db.runSQL(templates);
}
else {
db.runSQL(connection, templates);
}
}
@Override
public void runSQLTemplate(String path)
throws IOException, NamingException, SQLException {
try (LoggingTimer loggingTimer = new LoggingTimer(path)) {
DB db = DBManagerUtil.getDB();
db.runSQLTemplate(path);
}
}
@Override
public void runSQLTemplate(String path, boolean failOnError)
throws IOException, NamingException, SQLException {
try (LoggingTimer loggingTimer = new LoggingTimer(path)) {
DB db = DBManagerUtil.getDB();
db.runSQLTemplate(path, failOnError);
}
}
@Override
public void runSQLTemplateString(
String template, boolean evaluate, boolean failOnError)
throws IOException, NamingException, SQLException {
try (LoggingTimer loggingTimer = new LoggingTimer()) {
DB db = DBManagerUtil.getDB();
if (connection == null) {
db.runSQLTemplateString(template, evaluate, failOnError);
}
else {
db.runSQLTemplateString(
connection, template, evaluate, failOnError);
}
}
}
protected boolean doHasTable(String tableName) throws Exception {
DBInspector dbInspector = new DBInspector(connection);
return dbInspector.hasTable(tableName, true);
}
protected boolean hasColumn(String tableName, String columnName)
throws Exception {
DBInspector dbInspector = new DBInspector(connection);
return dbInspector.hasColumn(tableName, columnName);
}
protected boolean hasColumnType(
Class<?> tableClass, String columnName, String columnType)
throws Exception {
DBInspector dbInspector = new DBInspector(connection);
return dbInspector.hasColumnType(tableClass, columnName, columnType);
}
protected boolean hasRows(Connection connection, String tableName) {
DBInspector dbInspector = new DBInspector(connection);
return dbInspector.hasRows(tableName);
}
protected boolean hasRows(String tableName) throws Exception {
return hasRows(connection, tableName);
}
protected boolean hasTable(String tableName) throws Exception {
DBInspector dbInspector = new DBInspector(connection);
return dbInspector.hasTable(tableName);
}
protected Connection connection;
}