package com.ejie.ab39a.exceptions;

import com.ejie.ab39a.utils.Utilidades;

/**
 * Excepcion que indica un error en la ejecucion de una invocacion a un servicio
 * web
 * 
 *  
 * 
 */
public class AB39AException extends Exception {

	static final long serialVersionUID = -13430036L;

	// target de la excepcion
	private Throwable target;
	// Trazas o valores extra a indicar relacionados con la excepcion
	protected String contenido;

	/**
	 * AB39A Exception
	 * 
	 * @param paramThrowable
	 *            Throwable paramThrowable
	 * @param message
	 *            String message
	 */
	public AB39AException(Throwable paramThrowable, String message) {
		super(message, paramThrowable);
		this.target = paramThrowable;
		this.contenido = message + "\n".concat(Utilidades.getStackTrace(paramThrowable));
	}

	/**
	 * AB39A Exception
	 * 
	 * @param paramThrowable
	 *            Throwable paramThrowable
	 */
	public AB39AException(Throwable paramThrowable) {
		super(paramThrowable);
		this.target = paramThrowable;
	}

	/**
	 * AB39A Exception
	 * 
	 * @param message
	 *            String message
	 */
	public AB39AException(String message) {
		super(message);
	}

	/**
	 * 
	 * @return Throwable
	 */
	public Throwable getTarget() {
		return this.target;
	}

	/**
	 * 
	 * @param target
	 *            Throwable
	 */
	public void setTarget(Throwable target) {
		this.target = target;
	}

	/**
	 * 
	 * @return String
	 */
	public String getContenido() {
		return this.contenido;
	}

	/**
	 * 
	 * @param contenido
	 *            String
	 */
	public void setContenido(String contenido) {
		this.contenido = contenido;
	}

}
