/* * Created on 18/03/2004 * * To change the template for this generated file go to * Window>Preferences>Java>Code Generation>Code and Comments */ package br.com.centralit.citcorpore.exception; import java.io.Serializable; import java.util.StringTokenizer; /** * @author Tellus SA * * To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public abstract class GeneralException extends Exception implements Serializable { private static final long serialVersionUID = -4719734145817383483L; protected String code; protected String arg1; protected String arg2; protected String arg3; protected Throwable causa; protected GeneralException() {} protected GeneralException(final Throwable cause) { causa = cause; } /** * * @param code * ( String ) :: C�digo da exce��o. Deve estar definido no arquivo resources.properties */ public GeneralException(final String code) { super(code); this.code = code; arg2 = null; arg3 = null; arg1 = null; } /** * * @param code * @param arg1 */ public GeneralException(final String code, final String arg1) { super(code); this.code = code; this.arg1 = arg1; arg2 = null; arg3 = null; } /** * * @param code * @param arg1 * @param arg2 */ public GeneralException(final String code, final String arg1, final String arg2) { super(code); this.code = code; this.arg1 = arg1; this.arg2 = arg2; arg3 = null; } /** * * @param code * @param arg1 * @param arg2 * @param arg3 */ public GeneralException(final String code, final String arg1, final String arg2, final String arg3) { super(code); this.code = code; this.arg1 = arg1; this.arg2 = arg2; this.arg3 = arg3; } /** * * @param code * @param cause */ public GeneralException(final String code, final Throwable cause) { causa = cause; this.code = code; arg2 = null; arg3 = null; arg1 = null; } /** * * @param code * @param arg1 * @param cause */ public GeneralException(final String code, final String arg1, final Throwable cause) { causa = cause; this.code = code; this.arg1 = arg1; arg2 = null; arg3 = null; } /** * * @param code * @param arg1 * @param arg2 * @param cause */ public GeneralException(final String code, final String arg1, final String arg2, final Throwable cause) { causa = cause; this.code = code; this.arg1 = arg1; this.arg2 = arg2; arg3 = null; } /** * * @param code * @param arg1 * @param arg2 * @param arg3 * @param cause */ public GeneralException(final String code, final String arg1, final String arg2, final String arg3, final Throwable cause) { causa = cause; this.code = code; this.arg1 = arg1; this.arg2 = arg2; this.arg3 = arg3; } public String toHTML() { final String html = "<li><b>" + this.toMessage() + "</b></li><br>"; return html; } public String getMensagem() { return this.toMessage(); } @Override public String getMessage() { return this.toMessage(); } /** * Texto HTML das mensagens de erro * * @return String */ public String toMessage() { TradutorExcecao tradutor; String message = ""; try { if (code == null) { return "Codigo de erro nao informado (nulo)!"; } tradutor = TradutorExcecao.getInstance(); final String resource = tradutor.getMensagem(code); if (resource == null) { message = "Recurso n�o encontrado: " + code; } final StringTokenizer st = new StringTokenizer(resource, "|"); if (!st.hasMoreElements()) { message = resource; } while (st.hasMoreElements()) { String arg = null; final String partMessage = st.nextToken(); if (this.isArg(partMessage)) { arg = this.getArg(partMessage); if (arg == null) { arg = ""; } message = message + arg + " "; } else { message = message + partMessage + " "; } } } catch (final Exception e) { e.printStackTrace(); } return message; } /** * * @param partMessage * @return */ private boolean isArg(final String partMessage) { if (partMessage.equals("1") || partMessage.equals("2") || partMessage.equals("3")) { return true; } return false; } /** * * @param number * @return */ private String getArg(final String number) { String arg = null; if ("1".equals(number)) { arg = arg1; } if ("2".equals(number)) { arg = arg2; } if ("3".equals(number)) { arg = arg3; } return arg; } public String toStackTrace() { Writer writer = new Writer(); String mensagem = ""; if (this.getCause() != null) { this.getCause().printStackTrace(writer); mensagem = "Causa =======================================================\n"; mensagem = mensagem + writer.getBuffer().toString() + "\n"; } writer = new Writer(); this.printStackTrace(writer); mensagem = mensagem + "Excecao =====================================================\n"; mensagem = mensagem + writer.getBuffer().toString() + "\n"; return mensagem; } @Override public Throwable getCause() { return causa; } public String getCode() { return code; } public void setCode(final String string) { code = string; } }