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     */
016    package org.opengion.hayabusa.db;
017    
018    import java.util.Calendar;
019    import java.util.Locale;
020    import java.text.DateFormat;
021    import java.text.SimpleDateFormat;
022    
023    import org.opengion.hayabusa.common.HybsSystem;
024    import org.opengion.fukurou.util.LogWriter;
025    import org.opengion.fukurou.util.HybsDateUtil;
026    
027    /**
028     * ãƒ??ã‚¿ã®ã‚³ãƒ¼ãƒ‰æƒ…報をå–り扱ã?‚¯ãƒ©ã‚¹ã§ã™ã?
029     *
030     * ãƒ‘ãƒ©ãƒ¡ãƒ¼ã‚¿ã§æŒ?®šã—ãŸã?é–‹å§‹ã?終äº??スãƒ?ƒƒãƒ—ã?フォーマットã?titleフォーマットã?æƒ??ã‹ã‚‰ã€?
031     * HTMLã®ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚?ƒªã‚¹ãƒˆã‚’作æ?ã™ã‚‹ãŸã‚㮠オプション
032     * タグを作æ?ã—ãŸã‚Šã?与ãˆã‚‰ã‚ŒãŸã‚­ãƒ¼ã‚’ã‚‚ã¨ã«ã€ãƒã‚§ãƒ?‚¯æ¸ˆã¿ã®ã‚ªãƒ—ションタグを作æ?ã—ãŸã‚Šã—ã¾ã™ã?
033     * パラメータã®åˆæœŸå€¤ã¯ã€?–‹å§?0)ã€çµ‚äº?14)ã€ã‚¹ãƒ?ƒƒãƒ?1)ã€ãƒ•ォーマッãƒ?MM/dd)ã€titleフォーマッãƒ?null) ã§ã™ã?
034     * 
035     * ã“ã“ã§ã¯ã€æ—¥ä»?å¹´/æœ?æ—¥?‰ã?自動生æˆã‚’行ã„ã¾ã™ã?
036     * 基準ã?ã€å®Ÿè¡Œæ—¥ã«å¯¾ã—ã¦ã€?¼‹ï¼ã?æ•°å­—ã‚’æŒ?®šã—ã¾ã™ã?
037     * 例ï¼?0130206 ã«å¯¾ã—ã¦ã€?2,3,1 を指定ã™ã‚‹ã¨ã€?0130204,20130205,20130206,20130207,20130208,20130209 ã¨ãªã‚Šã¾ã™ã?
038     * 
039     * é–‹å§‹ã?終äº?«ã€ç‰¹æ®Šãªã‚³ãƒžãƒ³ãƒ‰ã‚’æŒ?®šã™ã‚‹äº‹ã‚‚å¯èƒ½ã§ã™ã?
040     * ・SD ?šå½“æœˆã®æœ??ã®æ—¥ä»˜ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(当月?‘æ—¥)
041     * ・ED ?šå½“æœˆã®æœ?¾Œã?日付ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(当月月末)
042     * ・SW ?šæ—¥ä»˜å?ç??週åˆã‚(月曜日)ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?日付ã?当日よりå‰ã«ç§»å‹•ã—ã¾ã™ã?
043     * ・EW ?šæ—¥ä»˜å?ç??週末(日曜日)ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?日付ã?当日より後ã‚ã«ç§»å‹•ã—ã¾ã™ã?
044     * ・D1 ??DXXX ?šæ—¥ã‚’æŒ‡å®šã?åˆ? ã‘é?ã‚ã¾ã™ã?D1ãªã‚‰ç¿Œæ—¥ã€D200 ãªã‚?00æ—¥å¾?
045     * ・M1 ??MXXX ?šæœˆã‚’æŒ‡å®šã?åˆ? ã‘é?ã‚ã¾ã™ã?M1ãªã‚‰ç¿Œæœˆã€M6 ãªã‚‰åŠå¹´å¾?
046     * ・BSD ?šå?月ã?æœ??ã®æ—¥ä»˜ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(先月?‘æ—¥)
047     * ・BED ?šå?月ã?æœ?¾Œã?日付ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(先月月末)
048     * ・ASD ?šç¿Œæœˆã®æœ??ã®æ—¥ä»˜ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(翌月?‘æ—¥)
049     * ・AED ?šç¿Œæœˆã®æœ?¾Œã?日付ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?(翌月月末)
050     * ・M1  ?šï¼‘ã‹æœˆå?。数字部åˆ??ã€ä»»æ„ã«æŒ?®šã§ãã‚‹ãŸã‚ã€M5 ã¨ã™ã‚Œã°ã€?¼•ã‹æœˆå?ã€?-2 ã¯ã€?¼’ã‹æœˆå‰
051     *
052     * スãƒ?ƒƒãƒ—ã?ã€ç„¡æŒ?®šã?å ´åˆã?ã€?¼‘æ—¥å˜ä½ã§ã™ã?例ãˆã°ã€SW,M6,7 ã¨ã™ã‚Œã°ã€æ¯Žé?æœˆæ›œæ—¥ã‚’ï¼–ã‹æœˆå?ã¾ã§ä½œæ?ã—ã¾ã™ã?
053     * ã¾ãŸã?M1 ã¯ã€?¼‘ã‹æœˆå˜ä½ã«ãªã‚Šã¾ã™ã?ãŸã ã—ã?é–‹å§‹æ—¥ã‚?SD ãªã©ã«ã—ãªã?¨ã€å¤§ã®æœˆã¨å°ã?月ã§ã€ãŠã‹ã—ããªã‚‹ã?ã§
054     * ã”æ³¨æ„ãã?•ã??
055     *
056     * キーã¯ã€?¼˜æ–‡å­—ã? yyyyMMdd å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã¾ã™ã?ラベルã¯ã€ãƒ•ォーマットã?æŒ?®šã«æº–æ‹ ã—ã¾ã™ã?
057     * フォーマットをæŒ?®šã™ã‚‹å?åˆã?ã€ã‚¹ãƒ?ƒƒãƒ—ã?ã€å¿??ã¨ãªã‚Šã¾ã™ã?
058     * フォーマットã?åˆæœŸå€¤ã¯ã€MM/dd ã§ã™ã?
059     * titleフォーマッãƒ?ã¯ã€tips表示ã™ã‚‹å ´åˆã?フォーマットã«ãªã‚Šã¾ã™ã?åˆæœŸå€¤ã¯ã€ã‚りã¾ã›ã‚“ã€?
060     *
061     * @og.group é¸æŠžãƒ‡ãƒ¼ã‚¿åˆ¶å¾¡
062     * @og.rev 5.6.1.1 (2013/02/08) æ–°è¦è¿½åŠ?
063     *
064     * @version  4.0
065     * @author   Kazuhiko Hasegawa
066     * @since    JDK5.0,
067     */
068    // public class Selection_YMD implements Selection {
069    public class Selection_YMD extends Selection_NULL {
070            private final String   CACHE ;
071            private final String   ST_ED_STEP ;
072    
073            private final DateFormat lblFmt  ;
074            private final DateFormat tipsFmt ;
075    
076            private final long      maxCacheTime ;          // キャãƒ?‚·ãƒ¥ã®ç ´æ£?‚¿ã‚¤ãƒŸãƒ³ã‚°ã‚’計るãŸã‚ã®æœ?¤§æœ‰åŠ¹æ™‚é–“
077    
078            /**
079             * コンストラクター
080             *
081             * 引数ã¯ã€?–‹å§‹ã?終äº??スãƒ?ƒƒãƒ—ã?フォーマットã?titleフォーマットã§ã™ã?
082             * パラメータã®åˆæœŸå€¤ã¯ã€?–‹å§?0)ã€çµ‚äº?14)ã€ã‚¹ãƒ?ƒƒãƒ?1)ã€ãƒ•ォーマッãƒ?MM/dd)ã€titleフォーマッãƒ?null) ã§ã™ã?
083             *
084             * @param       editPrm é–‹å§‹ã?終äº??スãƒ?ƒƒãƒ—ã?フォーマットã?titleフォーマットを表ã™å¼•æ•°(-2,3,1)
085             */
086            public Selection_YMD( final String editPrm ) {
087            //      if( param.length < 2 ) {
088            //              String errMsg = "引数ã¯ã€?–‹å§‹ã?終äº??[スãƒ?ƒƒãƒ—]ã€[フォーマッãƒ?ã€?[titleフォーマッãƒ?ã§ã™ã?æœ?½Žã§ã‚‚ï¼’å?å¿?¦ã§ã™ã?";
089            //              throw new IllegalArgumentException( errMsg );
090            //      }
091    
092                    String[] param = (editPrm == null) ? new String[0] : editPrm.split( "," ) ;
093    
094                    String start   = (param.length > 0) ? param[0].trim() : "0" ;
095                    String end     = (param.length > 1) ? param[1].trim() : "14" ;
096    
097                    String step    = (param.length > 2) ? param[2].trim() : "1" ;
098                    String lblPrm  = (param.length > 3) ? param[3].trim() : "MM/dd" ;
099                    String tipsPrm = (param.length > 4) ? param[4].trim() : "MM�d日(EEE)" ;
100    
101                    Calendar cal = Calendar.getInstance();
102                    HybsDateUtil.calendarCalc( cal , start );
103    
104                    Calendar endCal = Calendar.getInstance();
105                    HybsDateUtil.calendarCalc( endCal , end );
106    
107                    DateFormat keyFmt  = new SimpleDateFormat( "yyyyMMdd",Locale.JAPAN );                                   // キーã¨ãªã‚‹ãƒ•ォーマットã?yyyyMMdd 固å®?
108                    lblFmt  = new SimpleDateFormat( lblPrm,Locale.JAPAN );                                                                  // ラベルã®ãƒ•ォーマッãƒ?
109                    tipsFmt = ( tipsPrm != null ) ? new SimpleDateFormat( tipsPrm,Locale.JAPAN ) : null ;   // titleフォーマッ�
110    
111                    ST_ED_STEP = "Start=" + lblFmt.format( cal.getTime() ) +
112                                             " , End=" + lblFmt.format( endCal.getTime() ) + " , Step=" + step ;
113    
114                    StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
115    
116                    // cal.before( endCal ) ã§ã¯ã€åŒä¸?™‚刻ã®å ´åˆã« false ã«ãªã‚‹ç‚ºã€ã“ã“ã?判定ã§ã¯ä½¿ãˆã¾ã›ã‚“ã€?
117                    // sign を掛ã‘ç®—ã—ã¦ã?‚‹ã®ã¯ã€??é ?¯¾å¿?
118                    int sign = ( step.indexOf( '-' ) < 0 ) ? 1 : -1 ;    // スãƒ?ƒƒãƒ—ã?符å·ã€?
119                    while( endCal.compareTo( cal ) * sign >= 0 ) {
120                            String key  = keyFmt.format( cal.getTime() );
121                            String val  = lblFmt.format( cal.getTime() );
122    
123                            buf.append( "<option value=\"" ).append( key ).append( "\"" );
124                            if( tipsFmt != null ) {
125                                    String tips = tipsFmt.format( cal.getTime() ) ;
126                                    buf.append(" title=\"").append( tips ).append("\"");
127                            }
128                            buf.append( ">" ).append( val ).append( "</option>" );
129    
130                            HybsDateUtil.calendarCalc( cal , step );
131                    }
132    
133                    CACHE = buf.toString();
134    
135                    // ã‚­ãƒ£ã‚·ãƒ¥ã®æœ‰åŠ¹æœŸé–“ã‚’æ±‚ã‚ã‚‹ãŸã‚ã?時刻を作æ?ã—ã¾ã™ã?キャãƒ?‚·ãƒ¥ã¯ã€å½“æ—¥ã®ã¿æœ‰åйã§ã™ã?
136                    Calendar now   = Calendar.getInstance();
137                    now.set( Calendar.HOUR   , 0 );                         // 時ã?åˆ??ç§?をリセãƒ?ƒˆã—ã¾ã™ã?
138                    now.set( Calendar.MINUTE , 0 );
139                    now.set( Calendar.SECOND , 0 );
140                    now.add( Calendar.DAY_OF_MONTH , 1 );           // 1日進ã‚ã¾ã™ã?
141    
142                    maxCacheTime = now.getTimeInMillis() ;
143            }
144    
145            /**
146             * åˆæœŸå€¤ãŒé¸æŠžæ¸ˆã¿ã® é¸æŠžè‚¢(オプション)ã‚’è¿”ã—ã¾ã™ã?
147             * ã“ã?オプションã¯ã€å¼•æ•°ã®å€¤ã‚’å?期å?ã¨ã™ã‚‹ã‚ªãƒ—ションタグを返ã—ã¾ã™ã?
148             * ã“ã?メソãƒ?ƒ‰ã§ã¯ã€ãƒ©ãƒ™ãƒ«(短)ãŒè¨­å®šã•れã¦ã?‚‹å ´åˆã§ã‚‚ã?ã“れを使用ã›ãšã«å¿?šãƒ©ãƒ™ãƒ«(é•·)を使用ã—ã¾ã™ã?
149             *
150             * @og.rev 3.6.0.6 (2004/10/22) シーケンスアクセス機è?を指定ã™ã‚?seqFlag ã‚’å°Žå?
151             * @og.rev 4.0.0.0 (2005/01/31) selectValue ãŒã?null/ゼロæ–?­—å?ã§ãªã??åˆã«ã€?¸æŠžè‚¢ã«ãªã??åˆã?ã€ã‚¨ãƒ©ãƒ¼
152             * @og.rev 5.7.7.1 (2014/06/13) Selection_NULL ã‚?継承ã™ã‚‹ãŸã‚ã€å‰Šé™¤
153             *
154             * @param   selectValue  é¸æŠžã•れã¦ã?‚‹å€¤
155             * @param   seqFlag  シーケンスアクセス機è? [true:ON/false:OFF]
156             *
157             * @return  オプションタグ
158             * @see     #getOption( String, boolean, boolean )
159             */
160    //      public String getOption( final String selectValue,final boolean seqFlag ) {
161    //              return getOption( selectValue, seqFlag, false );
162    //      }
163    
164            /**
165             * åˆæœŸå€¤ãŒé¸æŠžæ¸ˆã¿ã® é¸æŠžè‚¢(オプション)ã‚’è¿”ã—ã¾ã™ã?
166             * ã“ã?オプションã¯ã€å¼•æ•°ã®å€¤ã‚’å?期å?ã¨ã™ã‚‹ã‚ªãƒ—ションタグを返ã—ã¾ã™ã?
167             * ã“ã?メソãƒ?ƒ‰ã§ã¯ã€å¼•æ•°ã®useShortLabelãŒtrueã«æŒ?®šã•れãŸå ´åˆã«ã€ãƒ©ãƒ™ãƒ«(短)ã‚’ã?ースã¨ã—ãŸ
168             * ãƒ??ルãƒãƒƒãƒ—表示を行ã„ã¾ã™ã?
169             *
170             * @param   selectValue  é¸æŠžã•れã¦ã?‚‹å€¤
171             * @param   seqFlag  シーケンスアクセス機è? [true:ON/false:OFF]
172             * @param   useShortLabel ラベル(短)ã‚’ã?ースã¨ã—ãŸã‚ªãƒ—ション表示を行ã†ã‹ã©ã?‹ã€?未使用)
173             *
174             * @return  オプションタグ
175             * @see     #getOption( String, boolean )
176             */
177            @Override
178            public String getOption( final String selectValue,final boolean seqFlag, final boolean useShortLabel ) {
179                    // マッãƒã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’探ã™ã?
180                    int selected = CACHE.indexOf( "\"" + selectValue + "\"" );
181    
182                    if( selected < 0 ) {
183                            if( selectValue != null && selectValue.length() > 0 ) {
184                                    String errMsg = "年月日ç¯?›²ã«å­˜åœ¨ã—ãªã??ãŒæŒ‡å®šã•れã¾ã—ãŸã€?
185                                                            + " value=[" + selectValue + "]"
186                                                            + HybsSystem.CR + ST_ED_STEP ;
187                                    LogWriter.log( errMsg );
188                            }
189                            return CACHE;
190                    }
191                    else {
192                            // "年月日" æ–?­—å?ã®ä½ç½®ãŒã?selected ãªã®ã§ã€å¹´æœˆæ—¥ã®æ–?­—æ•°?‹ï¼’ã¾ã§ãŒã?å‰åŠéƒ¨åˆ?«ãªã‚‹ã?(å¹´æœˆæ—¥ã®æ–?­—æ•°ã¯?˜å›ºå®šã?ã¯ã?
193                            int indx = selected + selectValue.length() + 2 ;
194    
195                            StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
196                            // 3.6.0.6 (2004/10/22) シーケンスアクセス機è?を指定ã™ã‚?seqFlag ã‚’å°Žå?
197                            if( seqFlag ) {
198                                    buf.append( "<option value=\"" ).append( selectValue ).append( "\"" );
199                            }
200                            else {
201                                    buf.append( CACHE.substring( 0,indx ) );
202                            }
203                            buf.append( " selected=\"selected\"" );
204                            buf.append( CACHE.substring( indx ) );
205                            return buf.toString() ;
206                    }
207            }
208    
209            /**
210             * åˆæœŸå€¤ãŒé¸æŠžæ¸ˆã¿ã® é¸æŠžè‚¢(オプション)ã‚’è¿”ã—ã¾ã™ã?
211             * ã“ã?オプションã¯ã€å¼•æ•°ã®å€¤ã‚’å?期å?ã¨ã™ã‚‹ã‚ªãƒ—ションタグを返ã—ã¾ã™ã?
212             * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?
213             *
214             * @og.rev 2.1.0.1 (2002/10/17) é¸æŠžãƒªã‚¹ãƒˆã‚’ã€æ­£æ–¹å‘ã«ã—ã‹é¸ã¹ãªã?‚ˆã?«ã™ã‚‹ sequenceFlag ã‚’å°Žå?ã™ã‚‹
215             * @og.rev 3.8.6.0 (2006/09/29) useLabel 属æ? 追åŠ?
216             * @og.rev 5.7.7.1 (2014/06/13) Selection_NULL ã‚?継承ã™ã‚‹ãŸã‚ã€å‰Šé™¤
217             *
218             * @param   name         ラジオ㮠name
219             * @param   selectValue  é¸æŠžã•れã¦ã?‚‹å€¤
220             * @param   useLabel     ãƒ©ãƒ™ãƒ«è¡¨ç¤ºã®æœ‰ç„¡ [true:æœ?false:ç„¡]
221             *
222             * @return  オプションタグ
223             */
224    //      public String getRadio( final String name,final String selectValue,final boolean useLabel ) {
225    //              String errMsg = "ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?;
226    //              throw new UnsupportedOperationException( errMsg );
227    //      }
228    
229            /**
230             * åˆæœŸå€¤ãŒé¸æŠžæ¸ˆã¿ã® é¸æŠžè‚¢(オプション)ã‚’è¿”ã—ã¾ã™ã?
231             * ã“ã?オプションã¯ã€å¼•æ•°ã®å€¤ã‚’å?期å?ã¨ã™ã‚‹ã‚ªãƒ—ションタグを返ã—ã¾ã™ã?
232             * ※ ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?
233             *
234             * @og.rev 5.7.7.1 (2014/06/13) Selection_NULL ã‚?継承ã™ã‚‹ãŸã‚ã€å‰Šé™¤
235             *
236             * @param   selectValue  é¸æŠžã•れã¦ã?‚‹å€¤
237             *
238             * @return  オプションタグ
239             */
240    //      public String getRadioLabel( final String selectValue ) {
241    //              String errMsg = "ã“ã?クラスã§ã¯å®Ÿè£?•れã¦ã?¾ã›ã‚“ã€?;
242    //              throw new UnsupportedOperationException( errMsg );
243    //      }
244    
245            /**
246             * é¸æŠžè‚¢(value)ã«å¯¾ã™ã‚‹ãƒ©ãƒ™ãƒ«ã‚’è¿”ã—ã¾ã™ã?
247             * é¸æŠžè‚¢(value)ãŒã?存在ã—ãªã‹ã£ãŸå?åˆã?ã€?¸æŠžè‚¢ãã?ã‚‚ã?ã‚’è¿”ã—ã¾ã™ã?
248             * getValueLabel( XX ) ã¯ã€getValueLabel( XX,false ) ã¨åŒã˜ã§ã™ã?
249             *
250             * @og.rev 5.7.7.1 (2014/06/13) Selection_NULL ã‚?継承ã™ã‚‹ãŸã‚ã€å‰Šé™¤
251             *
252             * @param   selectValue é¸æŠžè‚¢ã®å€¤
253             *
254             * @return  é¸æŠžè‚¢ã®ãƒ©ãƒ™ãƒ«
255             * @see     #getValueLabel( String,boolean )
256             */
257    //      public String getValueLabel( final String selectValue ) {
258    //              return getValueLabel( selectValue,false );
259    //      }
260    
261            /**
262             * é¸æŠžè‚¢(value)ã«å¯¾ã™ã‚‹ãƒ©ãƒ™ãƒ«ã‚’è¿”ã—ã¾ã™ã?
263             * é¸æŠžè‚¢(value)ãŒã?存在ã—ãªã‹ã£ãŸå?åˆã?ã€?¸æŠžè‚¢ãã?ã‚‚ã?ã‚’è¿”ã—ã¾ã™ã?
264             * ã“ã?メソãƒ?ƒ‰ã§ã¯ã€çŸ­ç¸®ãƒ©ãƒ™ãƒ«ã‚’è¿”ã™ã‹ã©ã?‹ã‚’指定ã™ã‚‹ãƒ•ラグを指定ã—ã¾ã™ã?
265             * getValueLabel( XX,false ) ã¯ã€getValueLabel( XX ) ã¨åŒã˜ã§ã™ã?
266             *
267             * @og.rev 4.0.0.0 (2005/11/30) を追�
268             *
269             * @param       selectValue     é¸æŠžè‚¢ã®å€¤
270             * @param       flag    短縮ラベルã‚?[true:使用ã™ã‚‹/false:ã—ãªã„]
271             *
272             * @return  é¸æŠžè‚¢ã®ãƒ©ãƒ™ãƒ«
273             * @see     #getValueLabel( String )
274             */
275            @Override
276            public String getValueLabel( final String selectValue,final boolean flag ) {
277                    // é¸æŠžè‚¢ãŒã‚ã‚ã†ã¨ãªã‹ã‚ã?¨ã€ãƒ•ォーマット変æ›ã—ã¦å€¤ã‚’è¿”ã™ã€?
278    
279                    Calendar cal = HybsDateUtil.getCalendar( selectValue );
280    
281                    if( flag && tipsFmt != null ) {
282                            return "<span title=\"" + tipsFmt.format( cal.getTime() ) + "\">" + lblFmt.format( cal.getTime() ) + "</span>";
283                    }
284                    else {
285                            return lblFmt.format( cal.getTime() );
286                    }
287            }
288    
289            /**
290             * マルãƒã?キーセレクトを使用ã™ã‚‹ã‹ã©ã?‹ã‚’è¿”ã—ã¾ã™ã?
291             * true?šä½¿ç”¨ã™ã‚‹ã€‚false:使用ã—ãªã?ã§ã™ã?
292             * ãŸã ã—ã?実際ã«ä½¿ç”¨ã™ã‚‹ã‹ã©ã?‹ã¯ã€HTMLå‡ºåŠ›æ™‚ã«æ±ºã‚ã‚‹ã“ã¨ãŒå?æ¥ã¾ã™ã?
293             * ã“ã“ã§ã¯ã€USE_MULTI_KEY_SELECT ã?true ã§ã€USE_SIZE(=20)以上ã?å ´åˆã«
294             * true ã‚’è¿”ã—ã¾ã™ã?
295             *
296             * @og.rev 3.5.5.7 (2004/05/10) æ–°è¦ä½œæ?
297             * @og.rev 5.7.7.1 (2014/06/13) Selection_NULL ã‚?継承ã™ã‚‹ãŸã‚ã€å‰Šé™¤
298             *
299             * @return  é¸æŠžãƒªã‚¹ãƒˆã§ã€ã?ルãƒã?キーセレクトを使用ã™ã‚‹ã‹ã©ã?‹(true:使用ã™ã‚‹)(false固å®?
300             */
301    //      public boolean useMultiSelect() {
302    //              return false;
303    //      }
304    
305            /**
306             * オブジェクトã?キャãƒ?‚·ãƒ¥ãŒæ™‚é–“å?れã‹ã©ã?‹ã‚’è¿”ã—ã¾ã™ã?
307             * キャãƒ?‚·ãƒ¥ãŒæ™‚é–“å?ã‚?無効)ã§ã‚れã°ã€true ã‚’ã?有効ã§ã‚れã°ã€?
308             * false ã‚’è¿”ã—ã¾ã™ã?
309             *
310             * @og.rev 4.0.0.0 (2005/01/31) æ–°è¦ä½œæ?
311             *
312             * @return  キャãƒ?‚·ãƒ¥ãŒæ™‚é–“å?れãªã‚?true
313             */
314            @Override
315            public boolean isTimeOver() {
316                    return System.currentTimeMillis() > maxCacheTime ;
317            }
318    }