/*
 * blancoDb
 * Copyright (C) 2004-2005 IGA Tosiki
 * 
 * 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.
 */
package blanco.db.expander.query.field;

import blanco.ig.expander.Scope;
import blanco.ig.expander.Type;
import blanco.ig.expander.field.FieldExpander;
import blanco.ig.expander.implementor.Statement;

/**
 * QueryクラスのfLogフィールドです。
 * 
 * @author IGA Tosiki
 */
public class LogField extends FieldExpander {
    /**
     * QueryクラスのfLogフィールドのコンストラクタです。
     * 
     * @param bindClassName
     *            ログオブジェクトとして結びつける先のクラス名。
     * @author IGA Tosiki
     */
    public LogField(final String bindClassName) {
        super(new Type("org.apache.commons.logging.Log"), "fLog");

        getJavaDoc().addLine("このクラスが内部的に利用するロギングのためのオブジェクトオブジェクト。");
        getJavaDoc().addLine("");
        getJavaDoc().addLine("このオブジェクトを経由して、このクラスのロギングが実行されます。");
        setDefaultStatement(new Statement("LogFactory.getLog(" + bindClassName
                + ".class)"));
    }

    /**
     * ジェネレーションギャップデザインパターンが利用可能になる目的で、スコープはprotectedとします。
     */
    protected Scope getScope() {
        return Scope.PROTECTED;
    }

    protected boolean isStatic() {
        return true;
    }

    protected boolean isFinal() {
        return true;
    }
}
