All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.goikosoft.reflection.MethodException Maven / Gradle / Ivy

The newest version!
package com.goikosoft.reflection;

import java.lang.reflect.Method;

/**
 * Lanzada cuando no se permite ejecutar un método o constructor.
 * 
 * Las causas pueden varias: No existe, no hay permisos, etc.
 * 
 * @author Dario
 *
 */
public class MethodException extends ReflectionException {

	private String nombreMetodo;
	
	private Method metodo;
	
	private Class clase;

	/**
	 * 
	 */
	private static final long serialVersionUID = 6970954305065639057L;

	public MethodException() {
		super();
		nombreMetodo = null;
		this.clase = null;
	}

	public MethodException(String message, String nombreMetodo, Class clase, Throwable cause) {
		super(message, cause);
		this.nombreMetodo = nombreMetodo;
		this.clase = clase;
	}

	public MethodException(String message, String nombreMetodo, Class clase) {
		super(message);
		this.nombreMetodo = nombreMetodo;
		this.clase = clase;
	}
	
	public MethodException(String nombreMetodo, Class clase, Throwable cause) {
		super(cause);
		this.nombreMetodo = nombreMetodo;
		this.clase = clase;
	}
	
	public MethodException(Method method) {
		super();
		metodo = method;
		this.clase = null;
	}
	
	public MethodException(String message, Method method, Class clase, Throwable cause) {
		super(message, cause);
		this.metodo = method;
		this.clase = clase;
	}

	public MethodException(String message, Method method, Class clase) {
		super(message);
		this.metodo = method;
		this.clase = clase;
	}
	
	public MethodException(Method method, Class clase, Throwable cause) {
		super(cause);
		this.metodo = method;
		this.clase = clase;
	}

	public MethodException(String message, Throwable cause) {
		super(message, cause);
		nombreMetodo = null;
		this.clase = null;
	}

	public MethodException(String message) {
		super(message);
		nombreMetodo = null;
		this.clase = null;
	}

	public MethodException(Throwable cause) {
		super(cause);
		nombreMetodo = null;
		this.clase = null;
	}
	
	public Method getMetodo() {
		return metodo;
	}

	protected void setMetodo(Method metodo) {
		this.metodo = metodo;
	}
	
	public String getNombreMetodo() {
		if(nombreMetodo == null && metodo != null) return metodo.getName();
		return nombreMetodo;
	}

	protected void setNombreMetodo(String metodo) {
		this.nombreMetodo = metodo;
	}

	public Class getClase() {
		return clase;
	}

	protected void setClase(Class clase) {
		this.clase = clase;
	}
	
	public String getMessage() {
		String causa;
		if(this.getCause()!=null) causa = ". Causa: "+getCause();
		else causa="";
		return super.getMessage() + causa;
	}
	
	@Override
	protected String getOnlyMsg() {
		return super.getOnlyMsg() + (clase != null ? ". Clase: " + clase.getName() : "") + (nombreMetodo != null ? ". Método: " + nombreMetodo : "");
	}
	
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy