1 28 package net.sf.jguard.ext.util; 29 30 import java.io.Serializable ; 31 import java.util.MissingResourceException ; 32 import java.util.ResourceBundle ; 33 34 import javax.security.auth.login.LoginException ; 35 36 import org.apache.commons.logging.Log; 37 import org.apache.commons.logging.LogFactory; 38 39 44 public class LocalizedThrowable extends Throwable implements Serializable { 45 46 47 private static final Log logger = LogFactory.getLog(LocalizedThrowable.class); 48 51 private static final long serialVersionUID = 1L; 52 53 private String errorKey = ""; 54 private Throwable cause = null; 55 private ResourceBundle rb = null; 56 57 58 61 public LocalizedThrowable(String errorKey,ResourceBundle rb) { 62 this.errorKey = errorKey; 63 this.rb = rb; 64 65 } 66 67 70 public LocalizedThrowable(Throwable wrappedThrowable,ResourceBundle rb) { 71 this.errorKey = wrappedThrowable.getMessage(); 72 this.rb = rb; 73 } 74 75 79 public LocalizedThrowable(Throwable wrappedThrowable,Throwable cause,ResourceBundle rb) { 80 this.errorKey = wrappedThrowable.getMessage(); 81 this.cause = cause; 82 this.rb = rb; 83 } 84 85 90 public LocalizedThrowable(String errorKey,Throwable cause,ResourceBundle rb){ 91 this.errorKey = errorKey; 92 this.cause = cause; 93 this.rb = rb; 94 } 95 96 97 public String getLocalizedMessage(){ 98 return getLocalizedMessage(this.rb); 99 } 100 101 public String getLocalizedMessage(ResourceBundle rb) { 102 103 String message = null; 104 try { 105 message = rb.getString(errorKey); 106 } catch (MissingResourceException e) { 107 logger.error("Login error!!! but missing specific error key in bundle: " + errorKey); 108 message = errorKey; 109 } 110 return message; 111 } 112 113 114 public Throwable getCause(){ 115 return cause; 116 } 117 } 118 | Popular Tags |