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.taglib;
017    
018    import org.opengion.hayabusa.common.HybsSystemException;
019    import org.opengion.hayabusa.resource.LabelInterface;
020    import org.opengion.fukurou.util.StringUtil;
021    
022    import static org.opengion.fukurou.util.StringUtil.nval ;
023    
024    /**
025     * ç”»é¢ã«ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹ã‚?ƒ©ãƒ™ãƒ«ãƒªã‚½ãƒ¼ã‚¹ç­‰ã?メãƒ?‚»ãƒ¼ã‚¸ã‚’表示ã•ã›ã‚‹ã‚¿ã‚°ã§ã™ã?
026     *
027     * msg 属æ?㫠メãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹ã®ã‚­ãƒ¼ã‚’与ãˆã‚‹ã“ã¨ã§ã€?ロケールã«ã‚ã‚ã›ãŸãƒªã‚½ãƒ¼ã‚¹ã‚’使用ã—ã¦ã€?
028     * ç”»é¢ã«è¡¨ç¤ºã—ã¾ã™ã?
029     * lbl 属æ?㫠ラベルリソース ã®ã‚­ãƒ¼ã‚’与ãˆã‚‹ã“ã¨ã§ã€?ロケールã«ã‚ã‚ã›ãŸãƒªã‚½ãƒ¼ã‚¹ã‚’使用ã—ã¦ã€?
030     * ç”»é¢ã«è¡¨ç¤ºã—ã¾ã™ã?
031     * é•ã†å€¤ã‚’ã‚»ãƒ?ƒˆã—ãŸå ´åˆã?ã€?ã‚»ãƒ?ƒˆã—ãŸå€¤ãŒã?ãã?ã¾ã¾å‡ºåŠ›ã•れã¾ã™ã?ã“れã¯ã€ãƒ­ã‚±ãƒ¼ãƒ«ã?
032     * 見ã¤ã‹ã‚‰ãªã‹ã£ãŸå?åˆã?標準ã?対応方法ã§ã™ã?
033     * ロケールã¯ã€ãƒ¦ãƒ¼ã‚¶ãƒ¼æƒ??ã® lang 属æ?ã‚’å?期å?ã§ä½¿ç”¨ã—ã? ã‚»ãƒ?ƒˆã•れã¦ã?ªã??åˆã?ã€?
034     * リクエスト情報ã®ãƒ­ã‚±ãƒ¼ãƒ«ã‹ã‚‰å–å¾—ã—ã¾ã™ã?
035     * msg 属æ?を使用ã™ã‚‹å ´åˆã?val0 ??val9 ã¾ã§ã®å¼•数を使用ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã?ã“れã¯ã€?
036     * メãƒ?‚»ãƒ¼ã‚¸ãƒ•ォーマットã?ã€å¼•æ•° {0} ??{9} ã«å¯¾å¿œã—ã¦å‰²ã‚Šä»˜ã‘られã¾ã™ã?
037     * msg 属æ?ã¨lbl 属æ?ã¯åŒæ™‚ã«ä½¿ç”¨ã§ãã¾ã›ã‚“ã€?
038     *
039     * @og.formSample
040     * â—å½¢å¼ï¼?lt;og:message msg="…" val0=[…] … />
041     * â—body?šã‚ã‚?EVAL_BODY_BUFFERED:BODYを評価ã—ã?{@XXXX} ã‚’è§£æžã—ã¾ã?
042     *
043     * â—Tag定義??
044     *   <og:message
045     *       lbl                ã€TAG】ラベルリソースã®ãƒ©ãƒ™ãƒ«IDを指定ã—ã¾ã?
046     *       language           ã€TAG】タグå†?ƒ¨ã§ä½¿ç”¨ã™ã‚‹è¨?ªžã‚³ãƒ¼ãƒ‰[ja/en/zh/…]を指定ã—ã¾ã?
047     *       command            ã€TAG】コマンãƒ?INSERT,COPY,MODIFY,DELETE)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?
048     *       comment            ã€TAG】コメントをæŒ?®šã—ã¾ã?
049     *       type               ã€TAG】タイプを(Label,Short,Tips,Description)ã‹ã‚‰æŒ?®šã—ã¾ã?åˆæœŸå€¤:Label)
050     *       val0               ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{0}を指定ã—ã¾ã?
051     *       val1               ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{1}を指定ã—ã¾ã?
052     *       val2               ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{2}を指定ã—ã¾ã?
053     *       val3               ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{3}を指定ã—ã¾ã?
054     *       val4               ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{4}を指定ã—ã¾ã?
055     *       val5               ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{5}を指定ã—ã¾ã?
056     *       val6               ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{6}を指定ã—ã¾ã?
057     *       val7               ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{7}を指定ã—ã¾ã?
058     *       val8               ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{8}を指定ã—ã¾ã?
059     *       val9               ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{9}を指定ã—ã¾ã?
060     *       caseKey            ã€TAG】ã“ã®ã‚¿ã‚°è‡ªä½“を利用ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶ã‚­ãƒ¼ã‚’指定ã—ã¾ã?åˆæœŸå€¤:null)
061     *       caseVal            ã€TAG】ã“ã®ã‚¿ã‚°è‡ªä½“を利用ã™ã‚‹ã‹ã©ã?‹ã®æ¡ä»¶å€¤ã‚’指定ã—ã¾ã?åˆæœŸå€¤:null)
062     *       caseNN             ã€TAG】指定ã?値ãŒã?null/ゼロæ–?­—å? ã§ãªã??å?Not Null=NN)ã¯ã€ã“ã®ã‚¿ã‚°ã¯ä½¿ç”¨ã•れã¾ã?åˆæœŸå€¤:true)
063     *       caseNull           ã€TAG】指定ã?値ãŒã?null/ゼロæ–?­—å? ã®å ´åˆã?ã€ã“ã®ã‚¿ã‚°ã¯ä½¿ç”¨ã•れã¾ã?åˆæœŸå€¤:true)
064     *       debug              ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
065     *   >   ... Body ...
066     *   </og:message>
067     *
068     * â—使用ä¾?
069     *     <og:message msg="MSG0032" language="ja" />
070     *
071     *        msg       : MessageResource.properties ã®ã‚­ãƒ¼
072     *        language  : ロケール(オプション)
073     *
074     *     例�
075     *         <og:message msg="MSG0032" >検索æ¡ä»¶</og:message>
076     *
077     *        BODY 部åˆ??ã€ç„¡è¦–ã•れã¾ã™ã?コメント等ã«ä½¿ç”¨ã§ãã¾ã™ã?
078     *        HTMLファイルã«ã¯ã€ã‚³ãƒ¡ãƒ³ãƒˆéƒ¨åˆ??出力ã•れã¾ã›ã‚“ã€?
079     *
080     * @og.group ç”»é¢éƒ¨å“?
081     *
082     * @version  4.0
083     * @author   Kazuhiko Hasegawa
084     * @since    JDK5.0,
085     */
086    public class MessageTag extends CommonTagSupport {
087            //* ã“ã?プログラãƒ??VERSIONæ–?­—å?を設定ã—ã¾ã™ã?       {@value} */
088            private static final String VERSION = "5.2.2.0 (2010/11/01)" ;
089    
090            private static final long serialVersionUID = 522020101101L ;
091    
092            private String          comment = null;
093            private String[]        values  = null;
094            // 4.0.0 (2005/01/31) メãƒ?‚»ãƒ¼ã‚¸ã®ç¨®é¡žã‚’æŒ?®šã§ãるよã†ã«ã—ã¾ã™ã?
095            private String          type    = "Label" ;     // Label,Short,Tips,Description ãŒæŒ‡å®šã§ãã¾ã™ã?
096            private String          cmdMsg  = null;
097    
098            private static final String[] TYPE_LIST = new String[] { "Label","Short","Tips","Description" };
099    
100            /**
101             * Taglibã®é–‹å§‹ã‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doStartTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
102             *
103             * @og.rev 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿?
104             *
105             * @return      後続å?ç??æŒ?¤º( EVAL_BODY_BUFFERED )
106             */
107            @Override
108            public int doStartTag() {
109                    // 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿?
110                    if( useTag() ) {
111                            return( EVAL_BODY_BUFFERED );   // Body を評価ã™ã‚‹ã€? extends BodyTagSupport æ™?
112                    }
113                    return ( SKIP_BODY );                           // Body を評価ã—ãªã?
114            }
115    
116            /**
117             * Taglibã®ã‚¿ã‚°æœ¬ä½“を処ç?™ã‚?doAfterBody() ã‚?オーãƒã?ライドã—ã¾ã™ã?
118             *
119             * @og.rev 3.1.1.0 (2003/03/28) ボディã®å†?®¹ã‚’å–å¾—ã™ã‚‹å?ç?‚’ã€CommonTagSupport ã§è¡Œã†ã€?
120             *
121             * @return      後続å?ç??æŒ?¤º(SKIP_BODY)
122             */
123            @Override
124            public int doAfterBody() {
125                    String str = getBodyString();
126    
127                    if( str != null && str.length() > 0 ) {
128                            comment = StringUtil.htmlFilter( str );
129                    }
130    
131                    return(SKIP_BODY);
132            }
133    
134            /**
135             * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
136             *
137             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€?
138             * @og.rev 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿?
139             *
140             * @return      後続å?ç??æŒ?¤º
141             */
142            @Override
143            public int doEndTag() {
144                    debugPrint();           // 4.0.0 (2005/02/28)
145                    // 5.2.2.0 (2010/11/01) caseKey ã€caseVal 属æ?対å¿?
146                    if( useTag() ) {
147                            jspPrint( makeTag() );
148                    }
149                    return(EVAL_PAGE);
150            }
151    
152            /**
153             * タグリブオブジェクトをリリースã—ã¾ã™ã?
154             * キャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨­å®šã‚’行ã„ã¾ã™ã?
155             *
156             * @og.rev 2.0.0.4 (2002/09/27) カスタãƒ?‚¿ã‚°ã® release() メソãƒ?ƒ‰ã‚’ã?追åŠ?
157             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€?
158             *
159             */
160            @Override
161            protected void release2() {
162                    super.release2();
163                    comment = null;
164                    values  = null;
165                    type    = "Label" ;     // Label,Short,Tips,Description ãŒæŒ‡å®šã§ãã¾ã™ã?
166                    cmdMsg  = null;
167            }
168    
169            /**
170             * è¡¨ç¤ºç”¨ã®æ–?­—å?を指定ã—ã¾ã™ã?
171             *
172             * @og.rev 4.0.0.0 (2005/01/31) タイプ別メãƒ?‚»ãƒ¼ã‚¸æƒ??ã‚’è¿”ã—ã¾ã™ã?
173             * @og.rev 4.0.0.0 (2007/10/18) メãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹çµ±å? getResource().getMessage > getResource().getLabel )
174             *
175             * @return  変æ›å¾Œã?æ–?­—å?
176             */
177            private String makeTag() {
178                    String val  = null;
179    
180                    LabelInterface label = getLabelInterface();
181    
182                    char ch = type.charAt( 0 );     // Label,Short,Tips,Description
183                    if( label != null ) {
184                            switch( ch ) {
185                                    case 'L': val = label.getMessage( values ); break;
186                                    case 'S': val = label.getShortLabel(); break;
187                                    case 'T': val = label.getLongLabel(); break;
188                                    case 'D': val = label.getDescription(); break;
189                                    default : break;
190                            }
191                    }
192                    else {
193                            if( cmdMsg != null ) {
194                                    // cmdMsg = INSERT,COPY,MODIFY,DELETE,null
195    //                              val = getResource().getMessage( cmdMsg );
196                                    val = getResource().getLabel( cmdMsg );
197                            }
198                            else {
199                                    val = comment;
200                            }
201                    }
202    
203                    return val;
204            }
205    
206            /**
207             * ã€TAG】コメントをæŒ?®šã—ã¾ã™ã?
208             *
209             * @og.tag
210             * msg 属æ?ã§ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹ã‹ã‚‰èª­ã¿å–りã¾ã™ãŒ,開発途中ã§
211             * リソース登録を済ã¾ã—ã¦ã?ªã?Š¶æ…‹ã§ã‚³ãƒ¡ãƒ³ãƒˆã‚’入れる場åˆã«ã€?
212             * 直接コメントをã‹ã‘るよã?«ã—ã¾ã™ã?
213             *
214             * @og.rev 2.2.0.0 (2002/12/17) 中国èª?国際化)対å¿?エンコードã?å–得方法変更
215             * @og.rev 3.0.0.0 (2002/12/25) StringUtil#changeString å»?­¢
216             *
217             * @param   cmnt コメント文字å?
218             */
219            public void setComment( final String cmnt ) {
220                    comment = cmnt;
221            }
222    
223            /**
224             * ã€TAG】タイプを(Label,Short,Tips,Description)ã‹ã‚‰æŒ?®šã—ã¾ã?åˆæœŸå€¤:Label)ã€?
225             *
226             * @og.tag
227             * タイプã?ã€ãƒ©ãƒ™ãƒ«?メãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹ã®ã©ã®æƒ??ã‚’å–å¾—ã—ãŸã„ã‹ã‚’æŒ?®šã§ãã¾ã™ã?
228             * 従æ¥ã®ãƒ©ãƒ™ãƒ«?メãƒ?‚»ãƒ¼ã‚¸ã¯ã€Label ã«ç›¸å½“ã—ã¾ã™ã?
229             * ãªãŠã?æŒ?®šã?ã€ãれãžã‚Œã?é ­æ–?­?'L','S','T','D')ã®ã¿ã§ã‚‚å¯èƒ½ã§ã™ã?
230             * åˆæœŸå€¤ã¯ã€?Label" ã§ã™ã?
231             * ・Label  : ラベル?メãƒ?‚»ãƒ¼ã‚¸è¡¨ç¤º
232             * ・Short  : 表形å¼ã§ä½¿ç”¨ã™ã‚‹çŸ­ã?ƒ©ãƒ™ãƒ«è¡¨ç¤º
233             * ・Tips   : ラベルã®ä¸Šã«Tips表示
234             * ・Description : 概è¦èª¬æ˜Žã‚’表示
235             *
236             * @og.rev 4.0.0.0 (2005/01/31) æ–°è¦ç™»éŒ²
237             *
238             * @param   tp タイプ文字å?('L','S','T','D','B')
239             */
240            public void setType( final String tp ) {
241                    type = nval( getRequestParameter( tp ),type );
242    
243                    char ch = type.charAt( 0 );     // Label,Short,Tips,Description
244    
245                    if( "LSTD".indexOf( ch ) < 0 ) {
246                            String errMsg = "type ã«ã€æŒ‡å®šä¸å¯èƒ½ãªæ–?­—ãŒè¨­å®šã•れã¾ã—ãŸã€‚type=[" + type
247                                            + "] TYPE_LIST=[" + StringUtil.array2csv( TYPE_LIST ) + "]";
248                            throw new HybsSystemException( errMsg );
249                    }
250            }
251    
252            /**
253             * ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{0}を指定ã—ã¾ã™ã?
254             *
255             * @og.tag メãƒ?‚»ãƒ¼ã‚¸ã®å¼•数を指定ã—ã¾ã™ã?
256             *
257             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
258             */
259            public void setVal0( final String value ) { setValues( 0, value ); }
260    
261            /**
262             * ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{1}を指定ã—ã¾ã™ã?
263             *
264             * @og.tag メãƒ?‚»ãƒ¼ã‚¸ã®å¼•数を指定ã—ã¾ã™ã?
265             *
266             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
267             */
268            public void setVal1( final String value ) { setValues( 1, value ); }
269    
270            /**
271             * ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{2}を指定ã—ã¾ã™ã?
272             *
273             * @og.tag メãƒ?‚»ãƒ¼ã‚¸ã®å¼•数を指定ã—ã¾ã™ã?
274             *
275             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
276             */
277            public void setVal2( final String value ) { setValues( 2, value ); }
278    
279            /**
280             * ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{3}を指定ã—ã¾ã™ã?
281             *
282             * @og.tag メãƒ?‚»ãƒ¼ã‚¸ã®å¼•数を指定ã—ã¾ã™ã?
283             *
284             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
285             */
286            public void setVal3( final String value ) { setValues( 3, value ); }
287    
288            /**
289             * ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{4}を指定ã—ã¾ã™ã?
290             *
291             * @og.tag メãƒ?‚»ãƒ¼ã‚¸ã®å¼•数を指定ã—ã¾ã™ã?
292             *
293             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
294             */
295            public void setVal4( final String value ) { setValues( 4, value ); }
296    
297            /**
298             * ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{5}を指定ã—ã¾ã™ã?
299             *
300             * @og.tag メãƒ?‚»ãƒ¼ã‚¸ã®å¼•数を指定ã—ã¾ã™ã?
301             *
302             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
303             */
304            public void setVal5( final String value ) { setValues( 5, value ); }
305    
306            /**
307             * ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{6}を指定ã—ã¾ã™ã?
308             *
309             * @og.tag メãƒ?‚»ãƒ¼ã‚¸ã®å¼•数を指定ã—ã¾ã™ã?
310             *
311             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
312             */
313            public void setVal6( final String value ) { setValues( 6, value ); }
314    
315            /**
316             * ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{7}を指定ã—ã¾ã™ã?
317             *
318             * @og.tag メãƒ?‚»ãƒ¼ã‚¸ã®å¼•数を指定ã—ã¾ã™ã?
319             *
320             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
321             */
322            public void setVal7( final String value ) { setValues( 7, value ); }
323    
324            /**
325             * ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{8}を指定ã—ã¾ã™ã?
326             *
327             * @og.tag メãƒ?‚»ãƒ¼ã‚¸ã®å¼•数を指定ã—ã¾ã™ã?
328             *
329             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
330             */
331            public void setVal8( final String value ) { setValues( 8, value ); }
332    
333            /**
334             * ã€TAG】メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{9}を指定ã—ã¾ã™ã?
335             *
336             * @og.tag メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°{9}を指定ã—ã¾ã™ã?
337             *
338             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
339             */
340            public void setVal9( final String value ) { setValues( 9, value ); }
341    
342            /**
343             * メãƒ?‚»ãƒ¼ã‚¸ã®å¼•数を指定ã—ã¾ã™ã?
344             *
345             * @param   no    メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°ã®é…å?番å·
346             * @param   value メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°
347             */
348            private void setValues( final int no,final String val ) {
349                    if( values == null ) { values = new String[10]; }
350                    values[no] = getRequestParameter( val );
351            }
352    
353            /**
354             * ã€TAG】コマンãƒ?INSERT,COPY,MODIFY,DELETE)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
355             *
356             * @og.tag
357             * コマンドã?,HTMLã‹ã‚‰(get/post)æŒ?®šã•れã¾ã™ã?ã§,CMD_xxx ã§è¨­å®šã•れる
358             * フィールド定数値ã®ã?¥ã‚Œã‹ã‚’ã?æŒ?®šã§ãã¾ã™ã?
359             * コマンãƒ?INSERT,COPY,MODIFY,DELETE)ã«å¯¾å¿œã—ãŸãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’表示ã—ã¾ã™ã?
360             * INSERT : MSG0044  追åŠ??ç?‚’行ã„ã¾ã™ã?
361             * COPY   : MSG0045  è¤??処ç?‚’行ã„ã¾ã™ã?
362             * MODIFY : MSG0046  変更処ç?‚’行ã„ã¾ã™ã?
363             * DELETE : MSG0047  削除処ç?‚’行ã„ã¾ã™ã?
364             *
365             * ãªãŠã?command ã«ã‚ˆã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã®è‡ªå‹•é¸æŠžã?ã€msg , lbl ã¨ã‚‚ã«ã‚»ãƒ?ƒˆã•れã¦ã?ªã?
366             * å ´åˆã«ã®ã¿æœ‰åйã«ãªã‚Šã¾ã™ã?
367             *
368             * @og.rev 4.0.0.0 (2006/11/31) æ–°è¦ç™»éŒ²
369             *
370             * @param       cmd コマンãƒ?public static final 宣è¨?•れã¦ã?‚‹æ–?­—å?)
371             */
372            public void setCommand( final String cmd ) {
373                    String cmd2 = nval( getRequestParameter( cmd ),null );
374                    if(      "INSERT".equalsIgnoreCase( cmd2 ) ) { cmdMsg = "MSG0044"; }
375                    else if( "COPY".equalsIgnoreCase(   cmd2 ) ) { cmdMsg = "MSG0045"; }
376                    else if( "MODIFY".equalsIgnoreCase( cmd2 ) ) { cmdMsg = "MSG0046"; }
377                    else if( "DELETE".equalsIgnoreCase( cmd2 ) ) { cmdMsg = "MSG0047"; }
378                    else { cmdMsg = null; }
379            }
380    
381            /**
382             * ã“ã?オブジェクトã?æ–?­—å?表ç¾ã‚’è¿”ã—ã¾ã™ã?
383             * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã?
384             *
385             * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?­—å?表ç¾
386             */
387            @Override
388            public String toString() {
389                    return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
390                                    .println( "VERSION"             ,VERSION        )
391                                    .println( "comment"             ,comment        )
392                                    .println( "values"              ,values         )
393                                    .println( "type"                ,type           )
394                                    .println( "TYPE_LIST"   ,TYPE_LIST      )
395                                    .println( "Other..."    ,getAttributes().getAttribute() )
396                                    .fixForm().toString() ;
397            }
398    }