ips1ap101.ejb.business.process.logic.impl.ArchivoAdjuntoBusinessProcessLogicImpl.java Source code

Java tutorial

Introduction

Here is the source code for ips1ap101.ejb.business.process.logic.impl.ArchivoAdjuntoBusinessProcessLogicImpl.java

Source

/*
 * Este programa es software libre; usted puede redistribuirlo y/o modificarlo bajo los terminos
 * de la licencia "GNU General Public License" publicada por la Fundacion "Free Software Foundation".
 * Este programa se distribuye con la esperanza de que pueda ser util, pero SIN NINGUNA GARANTIA;
 * vea la licencia "GNU General Public License" para obtener mas informacion.
 */
package ips1ap101.ejb.business.process.logic.impl;

import java.io.File;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import ips1ap101.ejb.business.message.ArchivoAdjuntoEliminarArchivoServidorWebMessage;
import ips1ap101.ejb.business.message.ArchivoAdjuntoEliminarTotalmenteMessage;
import ips1ap101.ejb.business.message.ArchivoAdjuntoRestaurarArchivoServidorWebMessage;
import ips1ap101.ejb.business.process.logic.ArchivoAdjuntoBusinessProcessLogicLocal;
import ips1ap101.ejb.persistence.entity.ArchivoAdjunto;
import ips1ap101.ejb.persistence.facade.ArchivoAdjuntoFacadeLocal;
import ips1ap101.lib.base.bundle.BundleWebui;
import ips1ap101.lib.base.entity.enumeration.CondicionEjeFunEnumeration;
import ips1ap101.lib.core.app.TLC;
import ips1ap101.lib.core.util.Utils;
import org.apache.commons.io.FileUtils;

/**
 * @author adalid 1.0 (template by Jorge Campins)
 */
@Stateless
public class ArchivoAdjuntoBusinessProcessLogicImpl implements ArchivoAdjuntoBusinessProcessLogicLocal {

    @EJB
    private ArchivoAdjuntoFacadeLocal facade;
    //
    //  @EJB(beanName = "ArchivoAdjuntoBusinessProcessLogicBean")
    //  private ArchivoAdjuntoBusinessProcessLogicLocal logician;

    /**
     * SYNCHRONOUS INSTANCE PROCESS eliminarArchivoServidorWeb.
     * <p>
     * elimina el archivo solo del servidor web; el archivo quedar\u00E1 almacenado en el servidor de base de datos
     */
    @Override
    public void eliminarArchivoServidorWeb(ArchivoAdjuntoEliminarArchivoServidorWebMessage message,
            ArchivoAdjunto instance) throws Exception {
        if (message == null) {
            throw new IllegalArgumentException(
                    ArchivoAdjuntoEliminarArchivoServidorWebMessage.class.getSimpleName());
        }
        if (instance == null) {
            throw new IllegalArgumentException(ArchivoAdjunto.class.getSimpleName());
        }
        deleteQuietly(instance);
    }

    /**
     * SYNCHRONOUS INSTANCE PROCESS eliminarTotalmente.
     * <p>
     * elimina el archivo tanto del servidor web como del servidor de base de datos
     */
    @Override
    public void eliminarTotalmente(ArchivoAdjuntoEliminarTotalmenteMessage message, ArchivoAdjunto instance)
            throws Exception {
        if (message == null) {
            throw new IllegalArgumentException(ArchivoAdjuntoEliminarTotalmenteMessage.class.getSimpleName());
        }
        if (instance == null) {
            throw new IllegalArgumentException(ArchivoAdjunto.class.getSimpleName());
        }
        deleteQuietly(instance);
        facade.remove(instance);
    }

    /**
     * SYNCHRONOUS INSTANCE PROCESS restaurarArchivoServidorWeb.
     * <p>
     * restaura el archivo del servidor web con el contenido del archivo almacenado en el servidor de base de datos
     */
    @Override
    public void restaurarArchivoServidorWeb(ArchivoAdjuntoRestaurarArchivoServidorWebMessage message,
            ArchivoAdjunto instance) throws Exception {
        if (message == null) {
            throw new IllegalArgumentException(
                    ArchivoAdjuntoRestaurarArchivoServidorWebMessage.class.getSimpleName());
        }
        if (instance == null) {
            throw new IllegalArgumentException(ArchivoAdjunto.class.getSimpleName());
        }
        deleteQuietly(instance);
        File file = new File(Utils.getAttachedFileName(instance.getArchivoServidor()));
        if (file.exists()) {
            message.setCondicion(CondicionEjeFunEnumeration.EJECUTADO_CON_ERRORES);
            message.setMensaje(TLC.getBitacora().error(BundleWebui.getString("archivo_adjunto.archivo_ya_existe"),
                    file.getName()));
        } else {
            FileUtils.writeByteArrayToFile(file, instance.getOctetos());
        }
    }

    private void deleteQuietly(ArchivoAdjunto instance) throws Exception {
        String archivoServidor = instance.getArchivoServidor();
        String attachedFileName = Utils.getAttachedFileName(archivoServidor);
        File file = new File(attachedFileName);
        if (file.exists()) {
            FileUtils.deleteQuietly(file);
        }
    }

}