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 import java.util.List;
019 import java.util.ArrayList;
020
021
022 /**
023 * エラーメãƒ?‚»ãƒ¼ã‚¸ã‚’å—ã‘æ¸¡ã™ã¨ãã«ä½¿ç”¨ã™ã‚‹ã‚¯ãƒ©ã‚¹ã§ã™ã?
024 * çµæžœå€¤ã¨ã—ã¦ã€?:æ£å¸¸ 1:è¦å‘?2:異常 8:EXCEPTION 9:ORACLEエラー ã‚’æŒã£ã¦ã?¾ã™ã?
025 *
026 * @og.group エラー処ç?
027 *
028 * @version 4.0
029 * @author Kazuhiko Hasegawa
030 * @since JDK5.0,
031 */
032 public final class ErrorMessage {
033 /** 改行コー�*/
034 public static final String CR = System.getProperty("line.separator"); // 5.1.9.0 (2010/08/01) 追�
035
036 /** ãƒãƒƒãƒ•ã‚¡ã®åˆæœŸå®¹é‡ã‚’通常より多ã„ç›®ã«è¨å®šã—ã¾ã™ã? {@value} */
037 public static final int BUFFER_MIDDLE = 200; // 5.1.9.0 (2010/08/01) 追�
038
039 /** çµæžœå€¤ 0:æ£å¸¸ {@value} */
040 public static final int OK = 0;
041 /** çµæžœå€¤ 1:è¦å‘?{@value} */
042 public static final int WARNING = 1;
043 /** çµæžœå€¤ 2:異常 {@value} */
044 public static final int NG = 2;
045 /** çµæžœå€¤ 8:EXCEPTION {@value} */
046 public static final int EXCEPTION = 8;
047 /** çµæžœå€¤ 9:ORACLEエラー {@value} */
048 public static final int ORCL_ERR = 9;
049
050 private int maxKekka = OK;
051 private String title = "";
052 private final List<ErrMsg> list = new ArrayList<ErrMsg>();
053
054 private boolean setPgStep = false; // 3.8.9.5 (2007/09/12)
055
056 /**
057 * ãƒ?ƒ•ォルトコンストラクター
058 * 詳細メãƒ?‚»ãƒ¼ã‚¸ã‚’指定ã—ãªã?§ ErrorMessage を構築ã—ã¾ã™ã?
059 * (明示ã—ãªã?¨ã€å¼•ã通付ãコンストラクタã®ã¿ã®ã‚¯ãƒ©ã‚¹ã«ãªã£ã¦ã—ã¾ã?¾ã™ã?)
060 */
061 public ErrorMessage() {
062 setTitle( "NO TITLE" );
063 }
064
065 /**
066 * タイトルを指定ã—㦠ErrorMessage を構築ã—ã¾ã™ã?
067 *
068 * @param title タイトル
069 */
070 public ErrorMessage( final String title ) {
071 setTitle( title );
072 }
073
074 /**
075 * æŒ?®šã•れãŸã‚¨ãƒ©ãƒ¼æƒ??を追åŠ?™»éŒ²ã—ã¾ã™ã?
076 * ã“れã¯ã€è¡Œç•ªå·?ã?çµæžœ?šNG IDã¯ç„¡ã?ã‚¼ãƒæ–?—å?)ã§ã™ã?
077 *
078 * @param args String... メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°(å¯å¤‰å¼•æ•°)
079 */
080 public void addMessage( final String... args ) {
081 addMessage( 0,NG,"",args );
082 }
083
084 /**
085 * æŒ?®šã•れãŸã‚¨ãƒ©ãƒ¼æƒ??を追åŠ?™»éŒ²ã—ã¾ã™ã?
086 *
087 * @param no 行番å·
088 * @param kekka çµæžœ 0:æ£å¸¸ 1:è¦å‘?2:異常
089 * @param id メãƒ?‚»ãƒ¼ã‚¸ID
090 * @param args String... メãƒ?‚»ãƒ¼ã‚¸ã®å¼•æ•°(å¯å¤‰å¼•æ•°)
091 */
092 public void addMessage( final int no,final int kekka,final String id,final String... args ) {
093 if( id != null ) {
094 ErrMsg msg = new ErrMsg( no,kekka,null,null,id,args );
095 list.add( msg );
096 if( maxKekka < kekka ) { maxKekka = kekka; }
097 }
098 }
099
100 /**
101 * æŒ?®šã•れãŸã‚¨ãƒ©ãƒ¼ã‚ªãƒ–ジェクトを追åŠ?™»éŒ²ã—ã¾ã™ã?
102 * 追åŠ?™ã‚‹ErrMsgãŒã?å†?ƒ¨ã®çµæžœå€¤ã‚ˆã‚Šå¤§ãã„å ´åˆã?ã€ãã®çµæžœå€¤ã«ã‚»ãƒ?ƒˆã—ã¾ã™ã?
103 * ã¤ã¾ã‚Šã?å†?ƒ¨çµæžœå€¤ã¯ã€ç™»éŒ²ã•れãŸã™ã¹ã¦ã®ã‚¨ãƒ©ãƒ¼ã‚ªãƒ–ジェクトã?æœ?¤§å€¤ã§ã™ã?
104 *
105 * @param msg エラーオブジェク�
106 */
107 public void addMessage( final ErrMsg msg ) {
108 list.add( msg );
109 if( maxKekka < msg.getKekka() ) { maxKekka = msg.getKekka(); }
110 if( msg.getPg() != null || msg.getStep() != null ) { setPgStep = true; } // 3.8.9.5 (2007/09/12)
111 }
112
113 /**
114 * æŒ?®šã•れ㟠ErrorMessageオブジェクトを追åŠ?™»éŒ²ã—ã¾ã™ã?
115 * タイトルã¯å…??ã¾ã¾å¤‰ã‚りã¾ã›ã‚“ã€?
116 * ç¾çŠ¶ã® ErrorMessage ã®ç¶šãã«ã€è¿½åŠ?—ã¦ã?ã¾ã™ã?
117 * 引数㮠ErrorMessageオブジェクãƒ?ã?null ã®å ´åˆã?,何もã—ã¾ã›ã‚“ã€?
118 *
119 * @param msg ErrorMessageオブジェク�
120 */
121 public void append( final ErrorMessage msg ) {
122 if( msg != null ) {
123 if( maxKekka < msg.getKekka() ) { maxKekka = msg.getKekka(); }
124
125 ErrMsg[] emsg = msg.toArray();
126 for( int i=0; i<emsg.length; i++ ) {
127 list.add( emsg[i] );
128 }
129 }
130 }
131
132 /**
133 * æŒ?®šã•れ㟠ErrorMessageã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã‚’è¡Œç•ªå·æŒ?®šã§è¿½åŠ?™»éŒ²ã—ã¾ã™ã?
134 * タイトルã¯å…??ã¾ã¾å¤‰ã‚りã¾ã›ã‚“ã€?
135 * ç¾çŠ¶ã® ErrorMessage ã®ç¶šãã«ã€è¿½åŠ?—ã¦ã?ã¾ã™ã?
136 * 引数㮠ErrorMessageオブジェクãƒ?ã?null ã®å ´åˆã?,何もã—ã¾ã›ã‚“ã€?
137 *
138 * @param no 行番å·
139 * @param msg ErrorMessageオブジェク�
140 */
141 public void append( final int no,final ErrorMessage msg ) {
142 if( msg != null ) {
143 if( maxKekka < msg.getKekka() ) { maxKekka = msg.getKekka(); }
144
145 ErrMsg[] emsg = msg.toArray();
146 for( int i=0; i<emsg.length; i++ ) {
147 list.add( emsg[i].copy( no ) );
148 }
149 }
150 }
151
152 /**
153 * ã“ã?リストå?ã®è¦ç´?‚’é©åˆ?ªé ?ºã§ç¹°ã‚Šè¿”ã—処ç?™ã‚‹å復åã‚’è¿”ã—ã¾ã™ã?
154 *
155 * @og.rev 4.0.0.0 (2004/12/31) æ–°è¦è¿½åŠ?
156 * @og.rev 4.3.2.0 (2008/09/11) private â‡?public ã«å¤‰æ›´ã€?
157 *
158 * @return ã™ã¹ã¦ã®è¦ç´?‚’æ£ã—ã„é ?ºã§ä¿æŒã™ã‚‹ErrMsgé…å?
159 */
160 // private ErrMsg[] toArray() {
161 public ErrMsg[] toArray() {
162 return list.toArray( new ErrMsg[list.size()] ) ;
163 }
164
165 /**
166 * リストå?ã®ã‚ーã¨å€¤ã®ãƒžãƒƒãƒ”ãƒ³ã‚°ã®æ•°ã‚’è¿”ã—ã¾ã™ã?
167 *
168 * @return リストå?ã® size
169 */
170 public int size() {
171 return list.size() ;
172 }
173
174 /**
175 * タイトルを返ã—ã¾ã™ã?
176 *
177 * @return タイトル
178 */
179 public String getTitle() {
180 return title;
181 }
182
183 /**
184 * タイトルをセãƒ?ƒˆã—ã¾ã™ã?
185 *
186 * @param title タイトル
187 */
188 public void setTitle( final String title ) {
189 this.title = title;
190 }
191
192 /**
193 * æŒ?®šã?行ã?ä½ç½®ã®ã‚¨ãƒ©ãƒ¼è¡Œç•ªå·ã‚’è¿”ã—ã¾ã™ã?
194 *
195 * @og.rev 4.3.2.0 (2008/09/11) å»?¢
196 *
197 * @param row 行ã?ä½ç½®
198 *
199 * @return 行番å·
200 */
201 // public int getNo( final int row ) {
202 // return list.get(row).getNo();
203 // }
204
205 /**
206 * æŒ?®šã?行ã?ä½ç½®ã®ã‚¨ãƒ©ãƒ¼ã‚ªãƒ–ジェクトを返ã—ã¾ã™ã?
207 *
208 * @og.rev 4.0.0.0 (2004/12/31) æ–°è¦è¿½åŠ?
209 * @og.rev 4.3.2.0 (2008/09/11) å»?¢
210 *
211 * @param row 行ã?ä½ç½®
212 *
213 * @return エラーオブジェク�
214 */
215 // public ErrMsg getErrMsg( final int row ) {
216 // return list.get(row);
217 // }
218
219 /**
220 * ã“ã?エラーメãƒ?‚»ãƒ¼ã‚¸ã®ä¸ã§ã€æœ€å¤§ã®çµæžœå€¤(ã‚¨ãƒ©ãƒ¼ã®æœ?¤§ãƒ¬ãƒ™ãƒ«)ã‚’è¿”ã—ã¾ã™ã?
221 *
222 * @return çµæžœ OK, WARNING, NG, ORCL_ERR
223 */
224 public int getKekka() {
225 return maxKekka;
226 }
227
228 /**
229 * æŒ?®šã?行ã?ä½ç½®ã®çµæžœã‚’è¿”ã—ã¾ã™ã?
230 *
231 * @og.rev 4.3.2.0 (2008/09/11) å»?¢
232 *
233 * @param row 行ã?ä½ç½®
234 *
235 * @return çµæžœ OK, WARNING, NG, EXCEPTION , ORCL_ERR
236 */
237 // public int getKekka( final int row ) {
238 // return list.get(row).getKekka();
239 // }
240
241 /**
242 * ã™ã¹ã¦ã®ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã?æ£å¸¸(OK)ã‹ã‚’è¿”ã—ã¾ã™ã?
243 *
244 * @return çµæžœ ã™ã¹ã¦OK?štrue / ãれ以å¤?false
245 */
246 public boolean isOK() {
247 return ( maxKekka == OK );
248 }
249
250 /**
251 * æŒ?®šã?行ã?ä½ç½®ã®ã‚¨ãƒ©ãƒ¼ã‚³ãƒ¼ãƒ‰IDã‚’è¿”ã—ã¾ã™ã?
252 *
253 * @og.rev 4.3.2.0 (2008/09/11) å»?¢
254 *
255 * @param row 行ã?ä½ç½®
256 *
257 * @return エラーコードID
258 */
259 // public String getId( final int row ) {
260 // return list.get(row).getId();
261 // }
262
263 /**
264 * æŒ?®šã?行ã?ä½ç½®ã®PGåã‚’è¿”ã—ã¾ã™ã?
265 *
266 * @og.rev 3.8.9.5 (2007/09/12) æ–°è¦ä½œæ?
267 * @og.rev 4.3.2.0 (2008/09/11) å»?¢
268 *
269 * @param row 行ã?ä½ç½®
270 *
271 * @return PGå?
272 */
273 // public String getPg( final int row ) {
274 //// return ((ErrMsg)list.get(row)).getPg();
275 // return (list.get(row)).getPg(); // 4.0.0.0 (2007/09/25)
276 // }
277
278 /**
279 * æŒ?®šã?行ã?ä½ç½®ã®ã‚¹ãƒ?ƒƒãƒ—åã‚’è¿”ã—ã¾ã™ã?
280 *
281 * @og.rev 3.8.9.5 (2007/09/12) æ–°è¦ä½œæ?
282 * @og.rev 4.3.2.0 (2008/09/11) å»?¢
283 *
284 * @param row 行ã?ä½ç½®
285 *
286 * @return スãƒ?ƒƒãƒ—å
287 */
288 // public String getStep( final int row ) {
289 //// return ((ErrMsg)list.get(row)).getStep();
290 // return (list.get(row)).getStep(); // 4.0.0.0 (2007/09/25)
291 // }
292
293 /**
294 * é…å?ä¸ã«PGåã¾ãŸã?スãƒ?ƒƒãƒ—åãŒè¨å®šã•れã¦ã?‚‹ã‹ã‚’è¿”ã—ã¾ã™ã?
295 *
296 * @og.rev 3.8.9.5 (2007/09/12) æ–°è¦ä½œæ?
297 *
298 * @return PGåã¾ãŸã?スãƒ?ƒƒãƒ—åãŒè¨å®šã•れã¦ã?‚‹ã?
299 */
300 public boolean isSetPgStep() {
301 return setPgStep;
302 }
303
304 /**
305 * メãƒ?‚»ãƒ¼ã‚¸ã®é€£çµãƒªã‚¹ãƒˆã‚’è¿”ã—ã¾ã™ã?
306 *
307 * @return メãƒ?‚»ãƒ¼ã‚¸ã®é€£çµãƒªã‚¹ãƒ?
308 */
309 @Override
310 public String toString() {
311 // StringBuilder rtn = new StringBuilder( HybsSystem.BUFFER_MIDDLE );
312 StringBuilder rtn = new StringBuilder( BUFFER_MIDDLE );
313 // rtn.append( getTitle() ).append( HybsSystem.CR );
314 rtn.append( getTitle() ).append( CR );
315 ErrMsg[] msg = list.toArray( new ErrMsg[list.size()] );
316 for( int i=0; i<msg.length; i++ ) {
317 rtn.append( msg[i] );
318 // rtn.append( HybsSystem.CR );
319 rtn.append( CR );
320 }
321 return rtn.toString();
322 }
323 }