[Castore-commits] RechercheSimpleAction.java 1.12 1.13

Céline BENOIT cbenoit at adullact1.hosting.cri74.org
Ven 1 Déc 15:34:16 CET 2006


Update of /cvsroot/castore/castore-struts/src/java/fr/emn/castor/struts/actions/recherches
In directory adullact1:/tmp/cvs-serv4135/src/java/fr/emn/castor/struts/actions/recherches

Modified Files:
	RechercheSimpleAction.java 
Log Message:
Ajout de la gestion multifond tout en gardant la possibité de rester en recherche monofond

Index: RechercheSimpleAction.java
===================================================================
RCS file: /cvsroot/castore/castore-struts/src/java/fr/emn/castor/struts/actions/recherches/RechercheSimpleAction.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** RechercheSimpleAction.java	2 Jul 2006 16:34:37 -0000	1.12
--- RechercheSimpleAction.java	1 Dec 2006 14:34:14 -0000	1.13
***************
*** 41,44 ****
--- 41,45 ----
  
  import java.util.ArrayList;
+ import java.util.Collection;
  import java.util.HashMap;
  import java.util.List;
***************
*** 58,61 ****
--- 59,63 ----
  import fr.emn.castor.documents.IDocuments;
  import fr.emn.castor.documents.DocumentsConstants.StateEnum;
+ import fr.emn.castor.multifonds.RechercheMultifondsSimple;
  import fr.emn.castor.recherche.IRecherche;
  import fr.emn.castor.recherche.RechercheConstants;
***************
*** 93,96 ****
--- 95,100 ----
              RechercheSimpleForm rechercheForm = (RechercheSimpleForm) form;
              String queryText = rechercheForm.getQueryText();
+             boolean isFullText = rechercheForm.getFullText();
+ 
              // mise en forme de la requete
              HashMap<String, String> query = new HashMap<String, String>();
***************
*** 100,114 ****
              query.put(RechercheConstants.KEYWORD_AUTEUR, queryText);
              query.put(RechercheConstants.KEYWORD_TITRE, queryText);
!             if (rechercheForm.getFullText()) {
                  query.put(RechercheConstants.KEYWORD_CONTENT, queryText);
              }
              List<DocumentBean> docResultatEnForme = new ArrayList<DocumentBean>();
!             // on effectue la recherche dans le fonds !!
!             IRecherche recFac = CastorProxy.getModuleRecherche(request
!                 .getSession());
!             List<HashMap<String, String>> resultsRecherche = recFac
!                 .search(query);
              if (resultsRecherche != null && resultsRecherche.size() > 0) {
-                 //Mise en forme des resultats
                  for (HashMap<String, String> resultElement : resultsRecherche) {
                      String docId = resultElement
--- 104,141 ----
              query.put(RechercheConstants.KEYWORD_AUTEUR, queryText);
              query.put(RechercheConstants.KEYWORD_TITRE, queryText);
!             // s'il s'agit d'une recherche plein texte
!             if (isFullText) {
                  query.put(RechercheConstants.KEYWORD_CONTENT, queryText);
              }
+ 
+             // Recherche monofond ou multifond ?
+             List<HashMap<String, String>> resultsRecherche;
+             RechercheMultifondsSimple rechMultifonds = new RechercheMultifondsSimple();
+             String[] listeFondsChoisis = rechercheForm
+                 .getListeRechercheFondsChoisis();
+             if (rechMultifonds.isRechercheMultifondsActivee()
+                     && listeFondsChoisis != null) {
+                 // recherche multifonds a true -> Utilisation WS               
+                 // récupérer les etablissements du fichiers URL choisis 
+                 Collection<String> listeURLMultifonds = fr.emn.castor.common.Utils
+                     .transStringArrayToList(listeFondsChoisis);
+ 
+                 // recherche dans les fonds fournis dans URLMultifonds.properties
+                 resultsRecherche = rechMultifonds
+                     .runRechercheMultifondsSimple(
+                         listeURLMultifonds, queryText, isFullText);
+ 
+             } else {
+                 // recherche multifonds a false 
+                 // ->Utilisation de la recherche simple implemente dans castore-core
+                 // on effectue la recherche dans le fonds !!
+                 IRecherche recFac = CastorProxy.getModuleRecherche(request
+                     .getSession());
+                 resultsRecherche = recFac.search(query);
+             }
+ 
              List<DocumentBean> docResultatEnForme = new ArrayList<DocumentBean>();
!             // Mise en forme des resultats
              if (resultsRecherche != null && resultsRecherche.size() > 0) {
                  for (HashMap<String, String> resultElement : resultsRecherche) {
                      String docId = resultElement
***************
*** 127,132 ****
                  }
              }
!             //Transmission du résultat
              rechercheForm.setResultat(docResultatEnForme);
              //mise a jour de la liste des requetes
              rechercheForm.majListeRequete(request);
--- 154,161 ----
                  }
              }
! 
!             //transmission du résultat
              rechercheForm.setResultat(docResultatEnForme);
+ 
              //mise a jour de la liste des requetes
              rechercheForm.majListeRequete(request);
***************
*** 135,138 ****
--- 164,173 ----
      }
  
+     /**
+      * Renvoie l'information concernant l'autorisation de diffusion du document.
+      * @param idDoc identifiant du document
+      * @param request requete effectuee sur le document
+      * @return l'etat et l'autorisation de diffusion s'il est disponible du document
+      */
      private String getBeanState(String idDoc, HttpServletRequest request) {
          IDocuments fDoc = CastorProxy.getModuleDocuments(request




Plus d'informations sur la liste de diffusion Castore-commits