All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.seasar.extension.sql.SqlContext Maven / Gradle / Ivy

The newest version!
/*
 * 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.sql;

/**
 * jSQLを実行するときのコンテキストです。 コンテキストでSQLを実行するのに必要な情報を組み立てた後、
 * getSql(), getBindVariables(),
 * getBindVariableTypes()で、 情報を取り出してSQLを実行します。
 * SQLBEGINコメントとENDコメントで囲まれている部分が、
 * 子供のコンテキストになります。 通常は、 WHERE句をBEGINコメントとENDコメントで囲み、
 * WHERE句の中のIFコメントが1つでも成立した場合、enabledになります。
 * 
 * @author higa
 * 
 */
public interface SqlContext {

    /**
     * 名前に応じた引数を返します。
     * 
     * @param name
     *            引数名
     * @return 名前に応じた引数
     */
    Object getArg(String name);

    /**
     * 引数が存在するかどうかを返します。
     * 
     * @param name
     *            引数名
     * @return 引数が存在するか
     */

    boolean hasArg(String name);

    /**
     * 名前に応じた引数のクラスを返します。 getArg()nullを返す場合があるので、
     * このメソッドが用意されています。
     * 
     * @param name
     *            引数名
     * @return 名前に応じた引数のクラスを返します。
     */
    Class getArgType(String name);

    /**
     * 引数を追加します。
     * 
     * @param name
     *            引数名
     * @param arg
     *            引数
     * @param argType
     *            引数の型
     */
    void addArg(String name, Object arg, Class argType);

    /**
     * 追加されたすべてのSQLを返します。
     * 
     * @return SQL
     */
    String getSql();

    /**
     * 追加されたすべてのバインド変数の配列を返します。
     * 
     * @return バインド変数の配列
     */
    Object[] getBindVariables();

    /**
     * 追加されたすべてのバインド変数の型の配列を返します。
     * 
     * @return バインド変数の型の配列
     */
    Class[] getBindVariableTypes();

    /**
     * SQLを追加します。
     * 
     * @param sql String
     * @return コンテキスト自身
     */
    SqlContext addSql(String sql);

    /**
     * SQLとバインド変数を追加します。
     * 
     * @param sql String
     * @param bindVariable Object
     * @param bindVariableType Class
     * @return SqlContext
     */
    SqlContext addSql(String sql, Object bindVariable, Class bindVariableType);

    /**
     * SQLとバインド変数の配列を追加します。
     * 
     * @param sql String
     * @param bindVariables Object[]
     * @param bindVariableTypes Class[]
     * @return SqlContext
     */
    SqlContext addSql(String sql, Object[] bindVariables,
            Class[] bindVariableTypes);

    /**
     * BEGINコメントとENDコメントで、
     * 囲まれた子供のコンテキストが有効かどうかを返します。
     * 
     * @return 有効かどうか
     */
    boolean isEnabled();

    /**
     * BEGINコメントとENDコメントで、
     * 囲まれた子供のコンテキストが有効かどうかを設定します。
     * 
     * @param enabled
     *            有効かどうか
     */
    void setEnabled(boolean enabled);
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy