Java tutorial
/* * 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); } } }