package com.fp.common.exception;

import com.fp.common.logger.APPLogger;

/**
 * Clase que se encarga del manejo de excepcion cuando el registro es modificado en otra session de base 
 * de datos. 
 * @author Jorge Vaca
 * @version 2.1
 */
public class StaleObjectStateException extends ExceptionManager{
	
	/**
	 * Metodo que entrega el mensaje de usuario. 
	 */
	public String getUserMessage(Throwable pException) {
		try{
			String data=pException.getMessage();
			data=data.substring(data.indexOf(':')+1, data.length());
			data=data.substring(data.indexOf('.')+1);
			data=data.substring(0,data.indexOf('#'));
			String[]param=data.split("\\.");	
			data=param[param.length-1];
			return this.getMessage("StaleObjectStateException", data);
		}catch(Exception e){
			APPLogger.getLogger().warn(e);
		}
		return pException.getLocalizedMessage();
	}

	/**
	 * Metodo que entrega el codigo de excepcion. 
	 */
	public String getCode(Throwable pException) {
		return pException.getClass().getName();
	}
}
