    001/*
    002 * Copyright (c) 2009 The openGion Project.
    003 *
    004 * Licensed under the Apache License, Version 2.0 (the "License");
    005 * you may not use this file except in compliance with the License.
    006 * You may obtain a copy of the License at
    007 *
    008 *     http://www.apache.org/licenses/LICENSE-2.0
    009 *
    010 * Unless required by applicable law or agreed to in writing, software
    011 * distributed under the License is distributed on an "AS IS" BASIS,
    012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
    013 * either express or implied. See the License for the specific language
    014 * governing permissions and limitations under the License.
    015 */
    016package org.opengion.hayabusa.db;
    017
    018/**
    019 * データのコード情報を取り扱うSelectionクラスの、NULL時オブジェクトです。
    020 *
    021 * 以前は、Selection オブジェクトが null の場合に、NullPointerException で
    022 * いきなりエラーで停止していましたが、この、NULLセレクションを作成することで、
    023 * 取りあえず、どういう状況なのか、判るようにします。
    024 *
    025 * @og.rev 5.7.3.0 (2014/02/07) 新規追加
    026 * @og.rev 5.7.7.1 (2014/06/13) Selectionオブジェクトの基本実装とします。
    027 * @og.group 選択データ制御
    028 *
    029 * @version  4.0
    030 * @author   Kazuhiko Hasegawa
    031 * @since    JDK5.0,
    032 */
    033// public class Selection_NULL extends Selection_KEYVAL {
    034public class Selection_NULL implements Selection {
    035        private final String    initMsg ;
    036
    037        /**
    038         * デフォルトコンストラクター
    039         * 継承元のクラスから、呼び出させるように、作成しておきます。
    040         *
    041         * @og.rev 5.7.7.1 (2014/06/13) 新規追加
    042         */
    043        public Selection_NULL() { initMsg = null; }
    044
    045        /**
    046         * 引数に初期メッセージを指定して作成する、コンストラクター
    047         *
    048         * @og.rev 5.7.3.0 (2014/02/07) 新規追加
    049         *
    050         * @param       strCode 初期メッセージ文字列
    051         */
    052        public Selection_NULL( final String strCode ) {
    053//              super( null );
    054                initMsg = strCode ;
    055        }
    056
    057        /**
    058         * 初期値が選択済みの 選択肢(オプション)を返します。
    059         * このオプションは、引数の値を初期値とするオプションタグを返します。
    060         * このメソッドでは、ラベル(短)が設定されている場合でも、これを使用せずに必ずラベル(長)を使用します。
    061         *
    062         * @og.rev 5.7.7.1 (2014/06/13) 新規追加
    063         *
    064         * @param   selectValue  選択されている値
    065         * @param   seqFlag  シーケンスアクセス機能 [true:ON/false:OFF]
    066         *
    067         * @return  オプションタグ
    068         * @see     #getOption( String, boolean, boolean )
    069         */
    070        @Override
    071        public String getOption( final String selectValue,final boolean seqFlag ) {
    072                return getOption( selectValue, seqFlag, false );
    073        }
    074
    075        /**
    076         * 初期値が選択済みの 選択肢(オプション)を返します。
    077         * 無条件で、初期メッセージを返します。
    078         *
    079         * @og.rev 5.7.3.0 (2014/02/07) 新規追加
    080         *
    081         * @param   selectValue  選択されている値
    082         * @param   seqFlag  シーケンスアクセス機能 [true:ON/false:OFF]
    083         * @param   useShortLabel ラベル(短)をベースとしたオプション表示を行うかどうか(常にfalse)。
    084         *
    085         * @return  オプションタグ
    086         * @see     #getOption( String, boolean )
    087         */
    088        @Override
    089        public String getOption( final String selectValue,final boolean seqFlag, final boolean useShortLabel ) {
    090                return initMsg + " value=[" + selectValue + "]";
    091        }
    092
    093        /**
    094         * 初期値が選択済みの 選択肢(オプション)を返します。
    095         * このオプションは、引数の値を初期値とするオプションタグを返します。
    096         * ※ このクラスでは実装されていません。
    097         *
    098         * @param   name         ラジオの name
    099         * @param   selectValue  選択されている値
    100         * @param   useLabel     ラベル表示の有無 [true:有/false:無]
    101         *
    102         * @return  オプションタグ
    103         */
    104        @Override
    105        public String getRadio( final String name,final String selectValue,final boolean useLabel ) {
    106                String errMsg = "このクラスでは実装されていません。";
    107                throw new UnsupportedOperationException( errMsg );
    108        }
    109
    110        /**
    111         * 初期値が選択済みの 選択肢(オプション)を返します。
    112         * このオプションは、引数の値を初期値とするオプションタグを返します。
    113         * ※ このクラスでは実装されていません。
    114         *
    115         * @param   selectValue  選択されている値
    116         *
    117         * @return  オプションタグ
    118         */
    119        @Override
    120        public String getRadioLabel( final String selectValue ) {
    121                String errMsg = "このクラスでは実装されていません。";
    122                throw new UnsupportedOperationException( errMsg );
    123        }
    124
    125        /**
    126         * 選択肢(value)に対するラベルを返します。
    127         * 選択肢(value)が、存在しなかった場合は、選択肢そのものを返します。
    128         * getValueLabel( XX ) は、getValueLabel( XX,false ) と同じです。
    129         *
    130         * @param   selectValue 選択肢の値
    131         *
    132         * @return  選択肢のラベル
    133         * @see     #getValueLabel( String,boolean )
    134         */
    135        @Override
    136        public String getValueLabel( final String selectValue ) {
    137                return getValueLabel( selectValue,false );
    138        }
    139
    140        /**
    141         * 選択肢(value)に対するラベルを返します。
    142         * 無条件で、初期メッセージを返します。
    143         *
    144         * @og.rev 5.7.3.0 (2014/02/07) 新規追加
    145         *
    146         * @param       selectValue     選択肢の値
    147         * @param       flag    短縮ラベルを [true:使用する/false:しない](常に false)
    148         *
    149         * @return  選択肢のラベル
    150         * @see     #getValueLabel( String )
    151         */
    152        @Override
    153        public String getValueLabel( final String selectValue,final boolean flag ) {
    154                return initMsg + " value=[" + selectValue + "]";
    155        }
    156
    157        /**
    158         * マルチ・キーセレクトを使用するかどうかを返します。
    159         * true：使用する。false:使用しない です。
    160         * ただし、実際に使用するかどうかは、HTML出力時に決めることが出来ます。
    161         * ここでは、USE_MULTI_KEY_SELECT が true で、USE_SIZE(=20)以上の場合に
    162         * true を返します。
    163         *
    164         * ※ ここでは、常に false を返します。
    165         *
    166         * @return  選択リストで、マルチ・キーセレクトを使用するかどうか(true:使用する)
    167         */
    168        @Override
    169        public boolean useMultiSelect() {
    170                return false;
    171        }
    172
    173        /**
    174         * オブジェクトのキャッシュが時間切れかどうかを返します。
    175         * キャッシュが時間切れ(無効)であれば、true を、有効であれば、
    176         * false を返します。
    177         *
    178         * ※ ここでは、常に false を返します。
    179         *
    180         * @return  キャッシュが時間切れなら true
    181         */
    182        @Override
    183        public boolean isTimeOver() {
    184                return false;
    185        }
    186}