[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