[Castore-commits] ExtractionMDAction.java NONE 1.1
mathieu grimault
grimault-m at adullact1.hosting.cri74.org
Mar 5 Déc 12:30:07 CET 2006
Update of /cvsroot/castore/castore-struts/src/java/fr/emn/castor/struts/actions/documents
In directory adullact1:/tmp/cvs-serv25748/src/java/fr/emn/castor/struts/actions/documents
Added Files:
ExtractionMDAction.java
Log Message:
Intégration de l'import UNIMARC
--- NEW FILE: ExtractionMDAction.java ---
/*
* $$Id$$
*
* Plateforme CASTORE
* CeCILL Copyright (C) 2005-2006 by EMN
* Made by Grimault Mathieu
* Web site = http://www.emn.fr/castore
* Contact = Cédric Dumas, e-mail = Cedric.Dumas at emn.fr
*
* Version 1.0 (1er mars 2005)
*
* Ce logiciel est un programme informatique servant à créer une plateforme
* open-source de bibliothèque numérique XML pour Conserver, Valoriser et
* Diffuser le patrimoine documentaire de votre institut.
*
* Ce logiciel est régi par la licence CeCILL soumise au droit français et
* respectant les principes de diffusion des logiciels libres. Vous pouvez
* utiliser, modifier et/ou redistribuer ce programme sous les conditions de la
* licence CeCILL telle que diffusée par le CEA, le CNRS et l'INRIA sur le site
* "http://www.cecill.info". En contrepartie de l'accessibilité au code source
* et des droits de copie, de modification et de redistribution accordés par
* cette licence, il n'est offert aux utilisateurs qu'une garantie limitée. Pour
* les mêmes raisons, seule une responsabilité restreinte pèse sur l'auteur du
* programme, le titulaire des droits patrimoniaux et les concédants successifs.
* A cet égard l'attention de l'utilisateur est attirée sur les risques associés
* au chargement, à l'utilisation, à la modification et/ou au développement et à
* la reproduction du logiciel par l'utilisateur étant donné sa spécificité de
* logiciel libre, qui peut le rendre complexe à manipuler et qui le réserve
* donc à des développeurs et des professionnels avertis possédant des
* connaissances informatiques approfondies. Les utilisateurs sont donc invités
* à charger et tester l'adéquation du logiciel à leurs besoins dans des
* conditions permettant d'assurer la sécurité de leurs systèmes et ou de leurs
* données et, plus généralement, à l'utiliser et l'exploiter dans les mêmes
* conditions de sécurité. Le fait que vous puissiez accéder à cet en-tête
* signifie que vous avez pris connaissance de la licence CeCILL, et que vous en
* avez accepté les termes.
*
*/
package fr.emn.castor.struts.actions.documents;
import java.util.Enumeration;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import fr.emn.castor.documents.metier.unimarc.ExtractionUnimarc;
import fr.emn.castor.documents.metier.unimarc.UnimarcException;
import fr.emn.castor.struts.common.session.StrutsConstants;
import fr.emn.castor.struts.forms.documents.ExtractionMDForm;
/**
* Extraction des métadonnées d'un motice UNIMARC vers une notice Castore.
* Le mapping est réalisé via le fichier de description XML dans CASTORE_HOME/typeDoc
* correspondant au document en cours de soumission.
*
* @author $Author$
* @version $Revision$
*
*/
public class ExtractionMDAction extends Action {
/** le logger. */
private static Log log = LogFactory.getLog(ExtractionMDAction.class);
/**
* @see org.apache.struts.action.Action#execute(org.apache.struts.action.ActionMapping, org.apache.struts.action.ActionForm, javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse)
*/
public final ActionForward execute(
final ActionMapping mapping, final ActionForm form,
final HttpServletRequest request,
final HttpServletResponse response) throws Exception {
// Récupération du formulaire
ExtractionMDForm extractionMDForm = (ExtractionMDForm)form;
ActionMessages errors = null;
// Récupération de l'id du document
String idDoc =
(String)request.getSession().getAttribute(
StrutsConstants.SESSION_SOUMISSION_INFOS_ID_DOC);
if ("unimarc".equals(extractionMDForm.getImportation())) {
// Extraction des infos Unimarc -> Dublin Core
try {
ExtractionUnimarc eu =
new ExtractionUnimarc(
idDoc,
extractionMDForm.getFormFile().getInputStream()
);
eu.extraire();
} catch (UnimarcException e) {
if (log.isDebugEnabled()) {
log.debug(
"Echec de la récupération des métadonnées " +
"pour le document " + idDoc
);
}
errors = new ActionErrors();
errors.add(
ActionMessages.GLOBAL_MESSAGE,
new ActionMessage(
"Impossible de récupérer les métadonnées, " +
"une erreur est survenue !"
)
);
saveErrors(request, errors);
} catch (Exception e) {
log.error(
"Une Exception a été levée : \n"+e, e
);
errors.add(
ActionMessages.GLOBAL_MESSAGE,
new ActionMessage(
"Impossible de récupérer les métadonnées, " +
"une erreur est survenue !"
)
);
saveErrors(request, errors);
}
} else {
// On a pas retrouvé le paramètre désignant l'extraction à réaliser
log.error(
"Impossible de retrouver le type d'extraction à effectuer"
);
errors.add(
ActionMessages.GLOBAL_MESSAGE,
new ActionMessage(
"Impossible de récupérer les métadonnées, " +
"il existe un problème de paramétrage !"
)
);
saveErrors(request, errors);
}
// libération des ressources
if (extractionMDForm.getFormFile() != null) {
extractionMDForm.getFormFile().destroy();
}
return mapping.findForward("succes");
}
}
Plus d'informations sur la liste de diffusion Castore-commits