org.viafirma.excepciones.Excepcion.java Source code

Java tutorial

Introduction

Here is the source code for org.viafirma.excepciones.Excepcion.java

Source

/* Copyright (C) 2007 Flix Garca Borrego (borrego at gmail.com)
      
   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Library General Public
   License as published by the Free Software Foundation; either
   version 2 of the License, or (at your option) any later version.
      
   This library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Library General Public License for more details.
      
   You should have received a copy of the GNU Library General Public
   License along with this library; if not, write to the Free
   Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
   MA 02111-1307, USA 
*/

package org.viafirma.excepciones;

import org.apache.commons.lang.StringUtils;

/**
 * Excepcion generica de la que extienden todas las excepciones 
 * de la aplicacin
 * Define un cdigo de error
 *
 * @author Felix Garcia Borrego (borrego at gmail.com)
 */
public class Excepcion extends Exception {

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

    /**
     * Codigo de error 
     */
    private CodigoError codError;

    /**
     * @return Returns the codError.
     */
    public CodigoError getCodError() {
        return codError;
    }

    /**
     * @param codError The codError to set.
     */
    public void setCodError(CodigoError codError) {
        this.codError = codError;
    }

    /**
     * Crea una nueva excepcin
     */
    public Excepcion(CodigoError codigo, String mensaje, Throwable e) {
        super(mensaje, e);
        codError = codigo;
    }

    /**
     * Crea una nueva excepcin
     */
    public Excepcion(CodigoError codigo, Throwable e) {
        super(e);
        codError = codigo;
    }

    /**
     * Crea una nueva excepcin
     */
    public Excepcion(CodigoError codigo, String mensaje) {
        super(mensaje);
        codError = codigo;
    }

    /**
     * No permitimos el constructor sin parametros
     *
     */
    @SuppressWarnings("unused")
    private Excepcion() {
    }

    /**
     * Crea una excepcion solo indicando el codigo de error.
     * y generando el texto del mensaje utilizando el codigo
     * @param codigo
     */
    public Excepcion(CodigoError codigo) {
        super(codigo.toString());
        this.codError = codigo;
    }

    /** Retorna el mensaje con el motivo del error y su cdigo.
      *  Si hay un mensaje de error, retorna el mensaje y su codigo
      *  Si no hay mensaje de error retorna solo el codigo de error.
     */
    @Override
    public String getMessage() {
        if (StringUtils.isEmpty(super.getMessage())) {
            return getCodError().toString();
        } else if (super.getMessage().equals(getCodError().toString())) {
            return super.getMessage();
        } else {
            return super.getMessage() + "{" + getCodError() + "}";
        }
    }
}