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 }