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