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.fukurou.util;
017    
018    
019    /**
020     * 個ã?ã®ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’æŒã£ã¦ãŠããŸã‚ã®ã‚ªãƒ–ジェクトã§ã™ã?
021     * ã“ã?オブジェクトã?ã€ä¸å¤‰ã‚ªãƒ–ジェクトã§ã™ã?
022     * å†?ƒ¨ã«ã¯ã€è¡Œç•ªå·ã¨IDã¨çµæžœã¨ã€ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹ã§ä½¿ç”¨ã•れる引数をæŒã£ã¦ã?¾ã™ã?
023     * çµæžœã¯ 0:正常 1:è­¦å‘?2:異常 8:EXCEPTION 9:ORACLEエラーã§ã€?
024     * ErrorMessageクラス㮠public static 変数ã§å®šç¾©ã•れã¦ã?‚‹å€¤ã‚’使用ã—ã¾ã™ã?
025     *
026     * @og.group エラー処ç?
027     *
028     * @version  4.0
029     * @author   Kazuhiko Hasegawa
030     * @since    JDK5.0,
031     */
032    public final class ErrMsg {
033            /** ãƒãƒƒãƒ•ã‚¡ã®åˆæœŸå®¹é‡ã‚’通常より多ã„ç›®ã«è¨­å®šã—ã¾ã™ã?  {@value}  */
034            public static final int BUFFER_MIDDLE = 200;                                                    // 5.1.9.0 (2010/08/01) 追�
035    
036            private final int no;                   // 行番å·
037            private final int kekka;                // çµæžœ 0:正常 1:è­¦å‘?2:異常 8:EXCEPTION 9:ORACLEエラー
038            private final String id;                // メãƒ?‚»ãƒ¼ã‚¸ID
039            private final String[] args ;   // メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°é…å?
040            private final String pg;                // PGå?3.8.9.5 (2007/09/12)
041            private final String step;              // スãƒ?ƒƒãƒ—å 3.8.9.5 (2007/09/12)
042    
043            /**
044             *  å¿?¦ãªå¼•æ•°ã‚’ã™ã¹ã¦è¨­å®šã—ã¦ã€ErrMsg オブジェクトを構築ã—ã¾ã™ã?
045             *
046             * @param       no      行番å·
047             * @param       kekka   çµæžœ 0:正常 1:è­¦å‘?2:異常 8:EXCEPTION 9:ORACLEエラー
048             * @param    pg PGå?
049             * @param    step STEPå?
050             * @param       id      メãƒ?‚»ãƒ¼ã‚¸ID
051             * @param    inArgs String... メãƒ?‚»ãƒ¼ã‚¸IDã®å¼•æ•°
052             */
053            public ErrMsg( final int no,final int kekka,
054                                            final String pg,final String step,
055                                            final String id,final String... inArgs) {
056                    this.no = no;
057                    this.kekka = kekka;
058                    this.id = id;
059                    int cnt = inArgs.length;
060                    args = new String[cnt];
061                    for( int i=0; i<cnt; i++ ) {
062                            args[i] = argIn( inArgs[i] );
063                    }
064                    this.pg = pg;           // 3.8.9.5 (2007/09/12)
065                    this.step = step;       // 3.8.9.5 (2007/09/12)
066            }
067    
068            /**
069             *  行番å·ã®ã¿ç•°ãªã‚‹ã?æ–°ã—ã„ ErrMsg オブジェクトを作æ?ã—ã¾ã™ã?
070             *
071             * @param    newNo 行番å·
072             *
073             * @return   行番å·ã®ã¿ç•°ãªã‚‹ã?æ–°ã—ã„ ErrMsgオブジェクãƒ?
074             */
075            public ErrMsg copy( final int newNo ) {
076    //              return new ErrMsg( newNo,kekka,id,args );
077                    return new ErrMsg( newNo,kekka,pg,step,id,args );
078            }
079    
080            /**
081             *  行番å·ã‚’è¿”ã—ã¾ã™ã?
082             *
083             * @return   行番å·
084             */
085            public int getNo() { return no; }
086    
087            /**
088             *  çµæžœã‚’è¿”ã—ã¾ã™ã?
089             *
090             * @return   çµæžœ 0:正常 1:è­¦å‘?2:異常 8:EXCEPTION 9:ORACLEエラー
091             */
092            public int getKekka() { return kekka; }
093    
094            /**
095             *  メãƒ?‚»ãƒ¼ã‚¸IDã‚’è¿”ã—ã¾ã™ã?
096             *
097             * @return   メãƒ?‚»ãƒ¼ã‚¸ID
098             */
099            public String getId() { return id; }
100    
101            /**
102             *  メãƒ?‚»ãƒ¼ã‚¸å¼•æ•°ã‚’è¿”ã—ã¾ã™ã?
103             *
104             * @param    no 引数アドレス
105             *
106             * @return   メãƒ?‚»ãƒ¼ã‚¸å¼•æ•°
107             */
108            public String getArg( final int no ) { return args[no]; }
109    
110            /**
111             *  メãƒ?‚»ãƒ¼ã‚¸å¼•æ•°é…å?ã‚’è¿”ã—ã¾ã™ã?
112             *
113             * @return   メãƒ?‚»ãƒ¼ã‚¸å¼•æ•°é…å?
114             */
115            public String[] getArgs() { return args.clone(); }
116    
117            /**
118             * 引数ã«ã¤ã?¦ã€{#XXXX} æ–?­—å?ã®å ´åˆã?#XXXX ã«å¤‰æ›ã—ã¾ã™ã?
119             * ã“ã?ã€{#XXXX} æ–?­—å?ã¯ã€ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹ã®å¼•æ•°ã«ã€XXXX ã®
120             * ラベルリソースをé©ç”¨ã•ã›ã‚‹å?åˆã«ä½¿ç”¨ã—ã¾ã™ã?
121             * ã“ã?処ç??ã€ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹ã§ã®å‡¦ç?§äº’æ›æ€§ã‚’確ä¿ã™ã‚‹ç‚ºã§ã™ã?
122             * ãªãŠã?ã“ã?変更ã®ãŸã‚ã«ã€æ™®é€šã«ã€?YYYY ã¨æŒ?®šã—ãŸæ–‡å­—å?ã‚‚ã?
123             * ラベルキーã¨ã—ã¦å‡¦ç?•れるよã†ã«ãªã‚Šã¾ã™ã?ã§ã€ã”注æ„ãã?•ã??
124             *
125             * @og.rev 4.0.0.0 (2005/01/31) æ–°è¦ä½œæ?
126             *
127             * @param    arg        入力引数
128             *
129             * @return   変æ›å¾Œå¼•æ•°
130             */
131            private String argIn( final String arg ) {
132                    if( arg != null && arg.startsWith( "{#" ) ) {
133                            return arg.substring( 1,arg.length()-1 ) ;
134                    }
135                    else {
136                            return arg ;
137                    }
138            }
139    
140            /**
141             *  PGåã‚’è¿”ã—ã¾ã™ã?
142             *
143             * @og.rev  3.8.9.5 (2007/09/12) æ–°è¦ä½œæ?
144             *
145             * @return   PGå?
146             */
147            public String getPg() { return pg; }
148    
149            /**
150             *  スãƒ?ƒƒãƒ—åã‚’è¿”ã—ã¾ã™ã?
151             *
152             * @og.rev  3.8.9.5 (2007/09/12) æ–°è¦ä½œæ?
153             *
154             * @return   スãƒ?ƒƒãƒ—å
155             */
156            public String getStep() { return step; }
157    
158            /**
159             *  ãƒ?ƒãƒ?‚°ç”¨ã®ã‚ªãƒ–ジェクトã?å†?ƒ¨è¡¨ç¾ã®æ–?­—å?ã‚’è¿”ã—ã¾ã™ã?
160             *
161             * @og.rev 4.0.0.0 (2004/12/31) å†?ƒ¨è¡¨ç¾ã‚’文字ã?ã¿ã¨ã™ã‚‹ã€?
162             *
163             * @return   å†?ƒ¨è¡¨ç¾ã®æ–?­—å?
164             */
165            @Override
166            public String toString() {
167    //              StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
168                    StringBuilder buf = new StringBuilder( BUFFER_MIDDLE );
169                    buf.append( "id=[" ).append( id ).append( "] no=[" ).append( no ).append( "]" );
170                    buf.append( " kekka=[" ).append( kekka ).append( "] values={" );
171                    for( int i=0; i<args.length; i++ ) {
172                            if( args[i] != null ) {
173                                    buf.append( " " ).append( args[i] );
174                            }
175                    }
176                    buf.append( " }" );
177                    return buf.toString();
178            }
179    }