/* ====================================================================
 * The Apache Software License, Version 1.1
 *
 * Copyright (c) 2002 The Apache Software Foundation.  All rights
 * reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in
 *    the documentation and/or other materials provided with the
 *    distribution.
 *
 * 3. The end-user documentation included with the redistribution, if
 *    any, must include the following acknowlegement:
 *       "This product includes software developed by the
 *        Apache Software Foundation (http://www.apache.org/)."
 *    Alternately, this acknowlegement may appear in the software itself,
 *    if and wherever such third-party acknowlegements normally appear.
 *
 * 4. The names "The Jakarta Project", "Commons", and "Apache Software
 *    Foundation" must not be used to endorse or promote products derived
 *    from this software without prior written permission. For written
 *    permission, please contact apache@apache.org.
 *
 * 5. Products derived from this software may not be called "Apache"
 *    nor may "Apache" appear in their names without prior written
 *    permission of the Apache Software Foundation.
 *
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 * ====================================================================
 *
 * This software consists of voluntary contributions made by many
 * individuals on behalf of the Apache Software Foundation.  For more
 * information on the Apache Software Foundation, please see
 * <http://www.apache.org/>.
 */
package org.apache.commons.lang.builder;

/**
 * <code>StandardToStringStyle</code> は ToStringBuilder 
 * と共に動作し、toString を生成します。
 * {@primary <code>StandardToStringStyle</code> works with ToStringBuilder to create a
 * toString.}
 * <p>
 * このクラスはシングルトンで利用されることを意図されています。
 * 毎回新しいスタイルのインスタンスを生成する必要はありません。
 * コード内では1度だけクラスのインスタンスを作成して必要な値を修正し、
 * プログラムからのアクセスに対して静的な public static final の変数に保持するべきです。
 * {@primary This class is intended to be used as a singleton. There is no need 
 * to instantiate a new style each time. Your code should instantiate the class
 * once, customize the values as required, and then store the result in a 
 * public static final variable for the rest of the program to access.}
 *
 * @author <a href="mailto:scolebourne@joda.org">Stephen Colebourne</a>
 * @translator 日置 聡
 * @status firstdraft
 * @update 2003/08/16
 * @version $Id: StandardToStringStyle.java,v 1.1.1.1 2004/02/13 10:02:04 hioki Exp $
 */
public class StandardToStringStyle extends ToStringStyle {
    
    /**
     * コンストラクタ。{@primary Constructor.}
     */
    public StandardToStringStyle() {
        super();
    }
    
    //---------------------------------------------------------------------
    
    /**
     * クラス名を使用するかどうかを取得します。
     * {@primary Gets whether to use the class name.}
     * @return 現在の useClassName フラグ
     * {@primary the current useClassName flag}
     */
    public boolean isUseClassName() {
        return super.isUseClassName();
    }

    /**
     * クラス名を使用するかどうかを設定します。
     * {@primary Sets whether to use the class name.}
     * @param useClassName  新たな useClassName フラグ
     * {@primary the new useClassName flag}
     */
    public void setUseClassName(boolean useClassName) {
        super.setUseClassName(useClassName);
    }

    //---------------------------------------------------------------------
    
    /**
     * クラスの短縮名を使用するかフルネームを使用するかを取得します。
     * {@primary Gets whether to output short or long class names.}
     * @return 現在の shortClassName フラグ
     * {@primary the current shortClassName flag}
     */
    public boolean isShortClassName() {
        return super.isShortClassName();
    }

    /**
     * クラスの短縮名を使用するかフルネームを使用するかを設定します。
     * {@primary Sets whether to output short or long class names.}
     * @param shortClassName  新たな shortClassName フラグ
     * {@primary shortClassName  the new shortClassName flag}
     */
    public void setShortClassName(boolean shortClassName) {
        super.setShortClassName(shortClassName);
    }

    //---------------------------------------------------------------------
    
    /**
     * ハッシュコードを使用するかどうかを取得します。
     * {@primary Gets whether to use the identity hash code.}
     * @return 現在の useIdentityHashCode フラグ
     * {@primary the current useIdentityHashCode flag}
     */
    public boolean isUseIdentityHashCode() {
        return super.isUseIdentityHashCode();
    }

    /**
     * ハッシュコードを使用するかどうかを設定します。
     * {@primary Sets whether to use the identity hash code.}
     * @param useIdentityHashCode  新たな useIdentityHashCode フラグ
     * {@primary useIdentityHashCode  the new useIdentityHashCode flag}
     */
    public void setUseIdentityHashCode(boolean useIdentityHashCode) {
        super.setUseIdentityHashCode(useIdentityHashCode);
    }

    //---------------------------------------------------------------------
    
    /**
     * 入力されたフィールド名を使用するかどうかを取得します。
     * {@primary Gets whether to use the field names passed in.}
     * @return 現在の useFieldNames フラグ
     * {@primary the current useFieldNames flag}
     */
    public boolean isUseFieldNames() {
        return super.isUseFieldNames();
    }

    /**
     * 入力されたフィールド名を使用するかどうかを設定します。
     * {@primary Sets whether to use the field names passed in.}
     * @param useFieldNames  新たな useFieldNames フラグ
     * {@primary the new useFieldNames flag}
     */
    public void setUseFieldNames(boolean useFieldNames) {
        super.setUseFieldNames(useFieldNames);
    }

    //---------------------------------------------------------------------
    
    /**
     * 明示されなかった場合に詳細情報を(デフォルトで)出力するかどうかを取得します。
     * {@primary Gets whether to use full detail when the caller doesn't specify.}
     * @return 現在の defaultFullDetail フラグ
     * {@primary the current defaultFullDetail flag}
     */
    public boolean isDefaultFullDetail() {
        return super.isDefaultFullDetail();
    }

    /**
     * 明示されなかった場合に詳細情報を(デフォルトで)出力するかどうかを設定します。
     * {@primary Sets whether to use full detail when the caller doesn't specify.}
     * @param defaultFullDetail  新たな defaultFullDetail フラグ
     * {@primary the new defaultFullDetail flag}
     */
    public void setDefaultFullDetail(boolean defaultFullDetail) {
        super.setDefaultFullDetail(defaultFullDetail);
    }

    //---------------------------------------------------------------------
    
    /**
     * 配列の詳細な内容を出力するかどうかを取得します。
     * {@primary Gets whether to output array content detail.}
     * @return 現在の配列の詳細な内容の設定
     * {@primary the current array content detail setting}
     */
    public boolean isArrayContentDetail() {
        return super.isArrayContentDetail();
    }
    
    /**
     * 配列の詳細な内容を出力するかどうかを設定します。
     * {@primary Sets whether to output array content detail.}
     * @param arrayContentDetail  新たな arrayContentDetail フラグ
     * {@primary the new arrayContentDetail flag}
     */
    public void setArrayContentDetail(boolean arrayContentDetail) {
        super.setArrayContentDetail(arrayContentDetail);
    }

    //---------------------------------------------------------------------
    
    /**
     * 配列の開始を示すテキストを取得します。
     * {@primary Gets the array start text.}
     * @return 現在の配列の開始を示すテキスト
     * {@primary the current array start text}
     */
    public String getArrayStart() {
        return super.getArrayStart();
    }

    /**
     * 配列の開始を示すテキストを設定します。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the array start text.
     * Null is accepted, but will be converted to a blank string.}
     * @param arrayStart  新たな配列の開始を示すテキスト
     * {@primary the new array start text}
     */
    public void setArrayStart(String arrayStart) {
        super.setArrayStart(arrayStart);
    }

    //---------------------------------------------------------------------
    
    /**
     * 配列の終了を示すテキストを取得します。
     * {@primary Gets the array end text.}
     * @return 現在の配列の終了を示すテキスト
     * {@primary the current array end text}
     */
    public String getArrayEnd() {
        return super.getArrayEnd();
    }

    /**
     * 配列の終了を示すテキストを設定します。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the array end text.}
     * Null is accepted, but will be converted to a blank string.
     * @param arrayEnd  新たな配列の終了を示すテキスト
     * {@primary the new array end text}
     */
    public void setArrayEnd(String arrayEnd) {
        super.setArrayEnd(arrayEnd);
    }

    //---------------------------------------------------------------------
    
    /**
     * 配列の区切り文字を取得します。
     * {@primary Gets the array separator text.}
     * @return 現在の配列の区切り文字
     * {@primary the current array separator text}
     */
    public String getArraySeparator() {
        return super.getArraySeparator();
    }

    /**
     * 配列の区切り文字を設定します。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the array separator text.
     * Null is accepted, but will be converted to a blank string.}
     * @param arraySeparator  新たな配列の区切り文字
     * {@primary the new array separator text}
     */
    public void setArraySeparator(String arraySeparator) {
        super.setArraySeparator(arraySeparator);
    }

    //---------------------------------------------------------------------
    
    /**
     * 内容の開始を示すテキストを取得します。
     * {@primary Gets the content start text.}
     * @return 現在の内容の開始を示すテキスト
     * {@primary the current content start text}
     */
    public String getContentStart() {
        return super.getContentStart();
    }

    /**
     * 内容の開始を示すテキストを設定します。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the content start text.
     * Null is accepted, but will be converted to a blank string.}
     * @param contentStart  新たな内容の開始を示すテキスト
     * {@primary the new content start text}
     */
    public void setContentStart(String contentStart) {
        super.setContentStart(contentStart);
    }

    //---------------------------------------------------------------------
    
    /**
     * 内容の終了を示すテキストを取得します。
     * {@primary Gets the content end text.}
     * @return 現在の内容の終了を示すテキスト
     * {@primary the current content end text}
     */
    public String getContentEnd() {
        return super.getContentEnd();
    }

    /**
     * 内容の終了を示すテキストを設定します。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the content end text.
     * Null is accepted, but will be converted to a blank string.}
     * @param contentEnd  新たな内容の終了を示すテキスト
     * {@primary the new content end text}
     */
    public void setContentEnd(String contentEnd) {
        super.setContentEnd(contentEnd);
    }

    //---------------------------------------------------------------------
    
    /**
     * フィールドの名前と値の区切り文字を取得します。
     * {@primary Gets the field name value separator text.}
     * @return 現在のフィールドの名前と値の区切り文字
     * {@primary the current field name value separator text}
     */
    public String getFieldNameValueSeparator() {
        return super.getFieldNameValueSeparator();
    }

    /**
     * フィールドの名前と値の区切り文字を設定します。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the field name value separator text.
     * Null is accepted, but will be converted to a blank string.}
     * @param fieldNameValueSeparator  新たなフィールドの名前と値の区切り文字
     * {@primary the new field name value separator text}
     */
    public void setFieldNameValueSeparator(String fieldNameValueSeparator) {
        super.setFieldNameValueSeparator(fieldNameValueSeparator);
    }

    //---------------------------------------------------------------------
    
    /**
     * フィールドの区切り文字を取得します。
     * {@primary Gets the field separator text.}
     * @return 現在のフィールドの区切り文字
     * {@primary the current field separator text}
     */
    public String getFieldSeparator() {
        return super.getFieldSeparator();
    }

    /**
     * フィールドの区切り文字を設定します。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the field separator text.
     * Null is accepted, but will be converted to a blank string.}
     * @param fieldSeparator  新たなフィールドの区切り文字
     * {@primary the new field separator text}
     */
    public void setFieldSeparator(String fieldSeparator) {
        super.setFieldSeparator(fieldSeparator);
    }

    //---------------------------------------------------------------------
    
    /**
     * null が見つかった場合に出力されるテキストを取得します。
     * {@primary Gets the text to output when null found.}
     * @return 現在の null が見つかった場合のテキスト
     * {@primary the current text to output when null found}
     */
    public String getNullText() {
        return super.getNullText();
    }

    /**
     * null が見つかった場合に出力されるテキストを設定します。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the text to output when null found.
     * Null is accepted, but will be converted to a blank string.}
     * @param nullText  新たな null が見つかった場合のテキスト
     * {@primary the new text to output when null found}
     */
    public void setNullText(String nullText) {
        super.setNullText(nullText);
    }

    //---------------------------------------------------------------------
    
    /**
     * Collection、Map または Array のサイズを出力する際のテキストを取得します。
     * これはサイズの値の前に出力されます。
     * {@primary Gets the text to output when a Collection, Map or Array size is output.
     * This is output before the size value.}
     * @return 現在のサイズ開始のテキスト
     * {@primary the current start of size text}
     */
    public String getSizeStartText() {
        return super.getSizeStartText();
    }

    /**
     * Collection、Map または Array のサイズを出力する際のテキストを設定します。
     * これはサイズの値の前に出力されます。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the text to output when a Collection, Map or Array size is output.
     * This is output before the size value.
     * Null is accepted, but will be converted to a blank string.}
     * @param sizeStartText  新たなサイズ開始のテキスト
     * {@primary the new start of size text}
     */
    public void setSizeStartText(String sizeStartText) {
        super.setSizeStartText(sizeStartText);
    }

    //---------------------------------------------------------------------
    
    /**
     * Collection、Map または Array のサイズを出力する際のテキストを取得します。
     * これはサイズの値の後に出力されます。
     * {@primary Gets the text to output when a Collection, Map or Array size is output.
     * This is output after the size value.}
     * @return 現在のサイズ終了のテキスト
     * {@primary the current end of size text}
     */
    public String getSizeEndText() {
        return super.getSizeEndText();
    }

    /**
     * Collection、Map または Array のサイズを出力する際のテキストを設定します。
     * これはサイズの値の後に出力されます。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the text to output when a Collection, Map or Array size is output.
     * This is output after the size value.
     * Null is accepted, but will be converted to a blank string.}
     * @param sizeEndText  新たなサイズ終了のテキスト
     * {@primary the new end of size text}
     */
    public void setSizeEndText(String sizeEndText) {
        super.setSizeEndText(sizeEndText);
    }

    //---------------------------------------------------------------------
    
    /**
     * オブジェクトの概要を出力する際のテキストを取得します。
     * これはサイズの値の前に出力されます。
     * {@primary Gets the text to output when an Object is output in summary mode.
     * This is output before the size value.}
     * @return 現在の概要開始のテキスト
     * {@primary the current start of summary text}
     */
    public String getSummaryObjectStartText() {
        return super.getSummaryObjectStartText();
    }

    /**
     * オブジェクトの概要を出力する際のテキストを設定します。
     * これはサイズの値の前に出力されます。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the text to output when an Object is output in summary mode.
     * This is output before the size value.
     * Null is accepted, but will be converted to a blank string.}
     * @param summaryObjectStartText  新たな概要開始のテキスト
     * {@primary the new start of summary text}
     */
    public void setSummaryObjectStartText(String summaryObjectStartText) {
        super.setSummaryObjectStartText(summaryObjectStartText);
    }

    //---------------------------------------------------------------------
    
    /**
     * オブジェクトの概要を出力する際のテキストを取得します。
     * これはサイズの値の後に出力されます。
     * {@primary Gets the text to output when an Object is output in summary mode.
     * This is output after the size value.}
     * @return 現在の概要終了のテキスト
     * {@primary the current end of summary text}
     */
    public String getSummaryObjectEndText() {
        return super.getSummaryObjectEndText();
    }

    /**
     * オブジェクトの概要を出力する際のテキストを設定します。
     * これはサイズの値の後に出力されます。
     * nullの入力は受け付けられますが、これは空の文字列に変換されます。
     * {@primary Sets the text to output when an Object is output in summary mode.
     * This is output after the size value.
     * Null is accepted, but will be converted to a blank string.}
     * @param summaryObjectEndText  新たな概要終了のテキスト
     * {@primary the new end of summary text}
     */
    public void setSummaryObjectEndText(String summaryObjectEndText) {
        super.setSummaryObjectEndText(summaryObjectEndText);
    }

    //---------------------------------------------------------------------
    
}
