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 }