maia_modificado/.svn/pristine/66/66126ba39c245d4f8df70ff4b57...

74 lines
1.8 KiB
Plaintext
Executable File

package com.fp.common.exception;
import java.text.MessageFormat;
import java.util.Locale;
import java.util.ResourceBundle;
/**
* Clase que se encarga del manejo de excepciones.
* @author Jorge Vaca.
* @version 2.1
*/
public abstract class ExceptionManager {
/**Bundle que maneja los texto de error por idioma, locale*/
private ResourceBundle messages;
/**Locale con el cual se obtiene el bundle.*/
private Locale locale;
/**
* Metodoq ue entrega el mensaje de usuario dada la Excepcion.
* @param pException Excepcion utilizada para obtener el mensaje de usuario.
* @return String
*/
abstract public String getUserMessage(Throwable pException);
/**
* Metodo que entrega el codigo de excepcion.
* @param pException Excepcion utilizada para obtener el codigo de excepcion.
* @return String
*/
abstract public String getCode(Throwable pException);
/**
* Metodo que fija el Locale, que sirve para obtener el bundel que maneja los textos de la excepcion.
* @param pLocale
*/
public void setLocale(Locale pLocale) {
locale = pLocale;
messages = ResourceBundle.getBundle("userMessages", locale);
}
/**
* Entrega el mensaje del bundle.
* @param pKey Codigo de mensaje del bundle.
* @return
*/
protected String getMessage(String pKey) {
try {
return messages.getString(pKey);
} catch (Throwable e) {
return null;
}
}
/**
* Entrega el mensaje del bundle.
* @param pKey Codigo de mensaje del bundle.
* @param pParameters Parametros con los que se cpmpleta el mensaje definido en el bundle.
* @return String
*/
protected String getMessage(String pKey, Object... pParameters) {
try {
String msg = this.getMessage(pKey);
if(msg == null){
msg = pKey;
}
return MessageFormat.format(msg, pParameters);
} catch (Throwable e) {
return null;
}
}
}