/* * Copyright 2004-2015 the Seasar Foundation and the Others. * * Licensed 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.seasar.extension.jdbc.gen.task; import java.io.File; import org.apache.tools.ant.Task; import org.apache.tools.ant.types.FileList; import org.seasar.extension.jdbc.JdbcManager; import org.seasar.extension.jdbc.gen.command.Command; import org.seasar.extension.jdbc.gen.dialect.GenDialect; import org.seasar.extension.jdbc.gen.internal.command.ExecuteSqlCommand; /** * SQLを実行する{@link Task}です。 * * @author taedium * @see ExecuteSqlCommand */ public class ExecuteSqlTask extends AbstractTask { /** コマンド */ protected ExecuteSqlCommand command = new ExecuteSqlCommand(); @Override protected Command getCommand() { return command; } /** * 設定ファイルのパスを設定します。 * * @param configPath * 設定ファイルのパス */ public void setConfigPath(String configPath) { command.setConfigPath(configPath); } /** * 環境名を設定します。 * * @param env * 環境名 */ public void setEnv(String env) { command.setEnv(env); } /** * {@link JdbcManager}のコンポーネント名を設定します。 * * @param jdbcManagerName * {@link JdbcManager}のコンポーネント名 */ public void setJdbcManagerName(String jdbcManagerName) { command.setJdbcManagerName(jdbcManagerName); } /** * {@link Factory}の実装クラス名を設定します。 * * @param factoryClassName * {@link Factory}の実装クラス名 */ public void setFactoryClassName(String factoryClassName) { command.setFactoryClassName(factoryClassName); } /** * すでに値が設定された{@link FileList}を追加します。 * * @param sqlFileList * すでに値が設定された{@link FileList} */ public void addConfiguredSqlFileList(FileList sqlFileList) { File dir = sqlFileList.getDir(getProject()); for (String fileName : sqlFileList.getFiles(getProject())) { File file = new File(dir, fileName); command.getSqlFileList().add(file); } } /** * SQLブロックの区切り文字を設定します。 * * @param blockDelimiter * SQLブロックの区切り文字 */ public void setBlockDelimiter(String blockDelimiter) { command.setBlockDelimiter(blockDelimiter); } /** * SQLステートメントの区切り文字を設定します。 * * @param statementDelimiter * SQLステートメントの区切り文字 */ public void setStatementDelimiter(char statementDelimiter) { command.setStatementDelimiter(statementDelimiter); } /** * エラー発生時に処理を中止する場合{@code true}を設定します。 * * @param haltOnError * エラー発生時に処理を中止する場合{@code true} */ public void setHaltOnError(boolean haltOnError) { command.setHaltOnError(haltOnError); } /** * SQLファイルのエンコーディングを設定します。 * * @param sqlFileEncoding * SQLファイルのエンコーディング */ public void setSqlFileEncoding(String sqlFileEncoding) { command.setSqlFileEncoding(sqlFileEncoding); } /** * すべてのSQLを単一のトランザクションで実行する場合{@code true}、そうでない場合{@code false}を設定します。 * * @param transactional * すべてのSQLを単一のトランザクションで実行する場合{@code true}、そうでない場合{@code false} */ public void setTransactional(boolean transactional) { command.setTransactional(transactional); } /** * {@link GenDialect}の実装クラス名を設定します。 * * @param genDialectClassName * {@link GenDialect}の実装クラス名 */ public void setGenDialectClassName(String genDialectClassName) { command.setGenDialectClassName(genDialectClassName); } }