List of usage examples for org.apache.commons.collections.functors StringValueTransformer getInstance
public static Transformer getInstance()
From source file:com.square.core.dao.implementations.AgenceDaoImplementation.java
@SuppressWarnings("unchecked") @Override/* ww w .j a v a 2 s .c om*/ public List<Agence> rechercherAgenceParCriteres(DimensionCriteresRechercheDto criteres) { final Criteria criteria = createCriteria(Agence.class); final Long idAgence = criteres.getId(); final Set<Long> eidsAgences = criteres.getEids(); if (idAgence != null) { criteria.add(Restrictions.eq("id", idAgence)); } if (eidsAgences != null && !eidsAgences.isEmpty()) { criteria.add(Restrictions.in("identifiantExterieur", (List<String>) CollectionUtils.collect(eidsAgences, StringValueTransformer.getInstance()))); } // Critre sur le libell de l'agence. final String libelleAgence = criteres.getLibelle(); if (!StringUtils.isBlank(libelleAgence)) { criteria.add(Restrictions.or(Restrictions.ilike("libelle", libelleAgence + "%"), Restrictions.or(Restrictions.ilike("libelle", "% " + libelleAgence + "%"), Restrictions.ilike("libelle", "%'" + libelleAgence + "%")))); } if (criteres.getIdentifiantExterieur() != null) { criteria.add(Restrictions.eq("identifiantExterieur", criteres.getIdentifiantExterieur())); } if (criteres.getVisible() != null) { criteria.add(Restrictions.eq("supprime", !criteres.getVisible())); } criteria.addOrder(Order.asc("libelle")); return criteria.list(); }
From source file:com.ironiacorp.statistics.r.AbstractRClient.java
@Override public String assignMatrix(DoubleMatrix<?, ?> matrix) { return assignMatrix(matrix, StringValueTransformer.getInstance()); }
From source file:com.square.core.dao.implementations.PersonneMoraleDaoImplementation.java
@Override @SuppressWarnings("unchecked") public ResultatPaginationFullText<PersonneMorale> rechercherPersonneMoraleParCriteres( RemotePagingCriteriasDto<PersonneMoralCriteresRechercheDto> criteres) throws ParseException { final PersonneMoralCriteresRechercheDto criteresRecherche = criteres.getCriterias(); final BooleanQuery bq = new BooleanQuery(); if (criteresRecherche.getRaisonSociale() != null && !("".equals(criteresRecherche.getRaisonSociale()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "raisonSociale", getAnalyser(PersonneMorale.class)); parser.setAllowLeadingWildcard(true); final String raisonSociale = criteresRecherche.getRaisonSociale().replaceAll(POURCENT, ETOILE); final org.apache.lucene.search.Query requeteLucene = parser .parse(raisonSociale.lastIndexOf(ETOILE) == raisonSociale.length() - 1 ? raisonSociale : raisonSociale + ETOILE); bq.add(requeteLucene, BooleanClause.Occur.MUST); }//w w w .j a v a 2 s. c o m if (criteresRecherche.getEnseigneCommerciale() != null && !("".equals(criteresRecherche.getEnseigneCommerciale()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "enseigneCommercial", getAnalyser(PersonneMorale.class)); parser.setAllowLeadingWildcard(true); final String enseigneCommerciale = criteresRecherche.getEnseigneCommerciale().replaceAll(POURCENT, ETOILE); final org.apache.lucene.search.Query requeteLucene = parser .parse(enseigneCommerciale.lastIndexOf(ETOILE) == enseigneCommerciale.length() - 1 ? enseigneCommerciale : enseigneCommerciale + ETOILE); bq.add(requeteLucene, BooleanClause.Occur.MUST); } // Critre sur le numro de l'entreprise String numeroEntreprise = criteresRecherche.getNumeroEntreprise(); if (!StringUtils.isBlank(numeroEntreprise)) { numeroEntreprise = numeroEntreprise.replaceAll(POURCENT, ETOILE); final MultiFieldQueryParser parser = new MultiFieldQueryParser(getMatchingVersion(), new String[] { "numSiret", "num" }, getAnalyser(PersonneMorale.class)); parser.setAllowLeadingWildcard(true); final org.apache.lucene.search.Query requeteLucene = parser.parse(numeroEntreprise); bq.add(requeteLucene, BooleanClause.Occur.MUST); } // Critere sur le complement du nom if (criteresRecherche.getComplementNom() != null && !("".equals(criteresRecherche.getComplementNom()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "adresses.complementNom", getAnalyser(PersonneMorale.class)); parser.setAllowLeadingWildcard(true); final String complementNom = criteresRecherche.getComplementNom().replaceAll(POURCENT, ETOILE); final org.apache.lucene.search.Query requeteLucene = parser .parse(complementNom.lastIndexOf(ETOILE) == complementNom.length() - 1 ? complementNom : complementNom + ETOILE); bq.add(requeteLucene, BooleanClause.Occur.MUST); } // Critre sur le dpartement if (criteresRecherche.getListeDepartements() != null && !criteresRecherche.getListeDepartements().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeDepartements(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("adresses.codePostalCommune.commune.departement.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la ville if (criteresRecherche.getListeVilles() != null && !criteresRecherche.getListeVilles().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeVilles(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("adresses.codePostalCommune.commune.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur le code postal if (criteresRecherche.getListeCodesPostaux() != null && !criteresRecherche.getListeCodesPostaux().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeCodesPostaux(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("adresses.codePostalCommune.codePostal.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la forme juridique if (criteresRecherche.getListeFormesJuridiques() != null && !criteresRecherche.getListeFormesJuridiques().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeFormesJuridiques(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("formeJuridique.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur le commercial if (criteresRecherche.getListeCommerciaux() != null && !criteresRecherche.getListeCommerciaux().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeCommerciaux(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("attribution.ressource.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur l'agence if (criteresRecherche.getListeAgences() != null && !criteresRecherche.getListeAgences().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeAgences(), StringValueTransformer.getInstance()); bq.add(getInQuery("attribution.agence.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la nature if (criteresRecherche.getListeNatures() != null && !criteresRecherche.getListeNatures().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeNatures(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("naturePersonneMorale.id", listeValeurs), BooleanClause.Occur.MUST); } // Construction de la requte par defaut. if (criteresRecherche.getRaisonSociale() == null || "".equals(criteresRecherche.getRaisonSociale())) { final QueryParser parser = new QueryParser(getMatchingVersion(), "raisonSociale", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); final org.apache.lucene.search.Query requeteLucene = parser.parse("*"); bq.add(requeteLucene, BooleanClause.Occur.MUST); } // CONSTRUCTION DE LA REQUETE final FullTextQuery fullTextQuery = createFullTextQuery(bq, PersonneMorale.class); // AJOUT DES INFORMATION DE TRI if (criteres.getListeSorts().size() > 0) { final SortField[] listeChamp = new SortField[criteres.getListeSorts().size()]; for (int index = 0; index < criteres.getListeSorts().size(); index++) { listeChamp[index] = new SortField(criteres.getListeSorts().get(index).getSortField(), SortField.STRING, criteres.getListeSorts().get(index) .getSortAsc() == RemotePagingSort.REMOTE_PAGING_SORT_DESC); } final Sort sort = new Sort(listeChamp); fullTextQuery.setSort(sort); } // AJOUT DES INFORMATIONS DE PAGINATION fullTextQuery.setFirstResult(criteres.getFirstResult()); fullTextQuery.setMaxResults(criteres.getMaxResult()); // RETOURNE LA LISTE DES RESULTATS ET LE NOMBRE TOTAL DE RESULTAT (non affct par la pagination) return new ResultatPaginationFullText<PersonneMorale>(fullTextQuery.list(), fullTextQuery.getResultSize()); }
From source file:com.square.core.dao.implementations.PersonnePhysiqueDaoImplementation.java
@SuppressWarnings("unchecked") @Override//from www .j av a 2s .com public ResultatPaginationFullText<PersonnePhysique> rechercheFullTextPersonne( RemotePagingCriteriasDto<PersonneCriteresRechercheDto> criteres) throws ParseException { final PersonneCriteresRechercheDto criteresRecherche = criteres.getCriterias(); // Si des critres ont t fournis on traite ces critres final BooleanQuery bq = new BooleanQuery(); if (criteresRecherche.getNumeroClient() != null && !("".equals(criteresRecherche.getNumeroClient()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "num", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String numeroClient = criteresRecherche.getNumeroClient().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { numeroClient = numeroClient.lastIndexOf(ETOILE) == numeroClient.length() - 1 ? numeroClient : numeroClient + ETOILE; } final org.apache.lucene.search.Query requeteLucene = parser.parse(numeroClient); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteresRecherche.getNom() != null && !("".equals(criteresRecherche.getNom()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "nom", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String nom = criteresRecherche.getNom().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { nom = nom.lastIndexOf(ETOILE) == nom.length() - 1 ? nom : nom + ETOILE; } final org.apache.lucene.search.Query requeteLucene = parser.parse(nom); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteresRecherche.getNomJeuneFille() != null && !("".equals(criteresRecherche.getNomJeuneFille()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "nomJeuneFille", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String nomJeuneFille = criteresRecherche.getNomJeuneFille().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { nomJeuneFille = nomJeuneFille.lastIndexOf(ETOILE) == nomJeuneFille.length() - 1 ? nomJeuneFille : nomJeuneFille + ETOILE; } final org.apache.lucene.search.Query requeteLucene = parser.parse(nomJeuneFille); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteresRecherche.getPrenom() != null && !("".equals(criteresRecherche.getPrenom()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "prenom", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String prenom = criteresRecherche.getPrenom().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { prenom = prenom.lastIndexOf(ETOILE) == prenom.length() - 1 ? prenom : prenom + ETOILE; } final org.apache.lucene.search.Query requeteLucene = parser.parse(prenom); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteresRecherche.getNro() != null && !("".equals(criteresRecherche.getNro()))) { if (criteresRecherche.getNro().length() == 15) { final NumeroRoDto numeroRo = squareMappingService.convertirNroVersNss(criteresRecherche.getNro()); AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "infoSante.numSecuriteSocial", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String numeroSs = numeroRo.getNumeroSS().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { numeroSs = numeroSs.lastIndexOf(ETOILE) == numeroSs.length() - 1 ? numeroSs : numeroSs + ETOILE; } org.apache.lucene.search.Query requeteLucene = parser.parse(numeroSs); bq.add(requeteLucene, BooleanClause.Occur.MUST); parser = new AnalysingCustomQueryParser(getMatchingVersion(), "infoSante.cleSecuriteSocial", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String cleSs = numeroRo.getCleSS().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { cleSs = cleSs.lastIndexOf(ETOILE) == cleSs.length() - 1 ? cleSs : cleSs + ETOILE; } requeteLucene = parser.parse(cleSs); bq.add(requeteLucene, BooleanClause.Occur.MUST); } else { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "infoSante.numSecuriteSocial", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String numeroSs = criteresRecherche.getNro().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { numeroSs = numeroSs.lastIndexOf(ETOILE) == numeroSs.length() - 1 ? numeroSs : numeroSs + ETOILE; } final org.apache.lucene.search.Query requeteLucene = parser.parse(numeroSs); bq.add(requeteLucene, BooleanClause.Occur.MUST); } } if (criteresRecherche.getDateNaissance() != null) { final DateNaissanceBridge dateBridge = new DateNaissanceBridge(); final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "dateNaissance", getAnalyser(PersonnePhysique.class)); final org.apache.lucene.search.Query requeteLucene = parser .parse(dateBridge.objectToString(criteresRecherche.getDateNaissance())); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteresRecherche.getListeNatures() != null && !criteresRecherche.getListeNatures().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeNatures(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("nature.id", listeValeurs), BooleanClause.Occur.MUST); } if (criteresRecherche.getTelephone() != null && !("".equals(criteresRecherche.getTelephone()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "telephones.numTelephone", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String telephone = criteresRecherche.getTelephone().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { telephone = telephone.lastIndexOf(ETOILE) == telephone.length() - 1 ? telephone : telephone + ETOILE; } final org.apache.lucene.search.Query requeteLucene = parser.parse(telephone); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteresRecherche.getEmail() != null && !("".equals(criteresRecherche.getEmail()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "emails.adresse", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String email = criteresRecherche.getEmail().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { email = email.lastIndexOf(ETOILE) == email.length() - 1 ? email : email + ETOILE; } final org.apache.lucene.search.Query requeteLucene = parser.parse(email); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteresRecherche.getNumVoie() != null && !("".equals(criteresRecherche.getNumVoie()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "adresses.numeroVoie", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String numVoie = criteresRecherche.getNumVoie().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { numVoie = numVoie.lastIndexOf(ETOILE) == numVoie.length() - 1 ? numVoie : numVoie + ETOILE; } final org.apache.lucene.search.Query requeteLucene = parser.parse(numVoie); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteresRecherche.getListeNaturesVoie() != null && !criteresRecherche.getListeNaturesVoie().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeNaturesVoie(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("adresses.typeVoie.id", listeValeurs), BooleanClause.Occur.MUST); } if (criteresRecherche.getListeNaturesTelephones() != null && !criteresRecherche.getListeNaturesTelephones().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeNaturesTelephones(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("telephones.natureTelephone.id", listeValeurs), BooleanClause.Occur.MUST); } if (criteresRecherche.getAdresse() != null && !("".equals(criteresRecherche.getAdresse()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "adresses.nomVoie", getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); String adresse = criteresRecherche.getAdresse().replaceAll(POURCENT, ETOILE); if (!criteres.getCriterias().isRechercheStricte()) { adresse = adresse.lastIndexOf(ETOILE) == adresse.length() - 1 ? adresse : adresse + ETOILE; } final org.apache.lucene.search.Query requeteLucene = parser.parse(adresse); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteresRecherche.getListeCodesPostaux() != null && !criteresRecherche.getListeCodesPostaux().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeCodesPostaux(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("adresses.codePostalCommune.codePostal.id", listeValeurs), BooleanClause.Occur.MUST); } if (criteresRecherche.getListeVilles() != null && !criteresRecherche.getListeVilles().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeVilles(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("adresses.codePostalCommune.commune.id", listeValeurs), BooleanClause.Occur.MUST); } if (criteresRecherche.getIdCommerciaux() != null && !criteresRecherche.getIdCommerciaux().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getIdCommerciaux(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("attribution.ressource.id", listeValeurs), BooleanClause.Occur.MUST); } if (criteresRecherche.getIdAgences() != null && !criteresRecherche.getIdAgences().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getIdAgences(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("attribution.agence.id", listeValeurs), BooleanClause.Occur.MUST); } if (criteresRecherche.getIdPersonnesAIgnorer() != null && !criteresRecherche.getIdPersonnesAIgnorer().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getIdPersonnesAIgnorer(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("id", listeValeurs), BooleanClause.Occur.MUST_NOT); } if (criteresRecherche.getListeReseaux() != null && !criteresRecherche.getListeReseaux().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeReseaux(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("reseau.id", listeValeurs), BooleanClause.Occur.MUST); } final List<Long> idPersonnes = criteresRecherche.getIdPersonnes(); if (idPersonnes != null && !idPersonnes.isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils.collect(idPersonnes, StringValueTransformer.getInstance()); bq.add((Query) getInQuery("id", listeValeurs), BooleanClause.Occur.MUST); } // On ne recherche que les personnes non supprimes if (criteresRecherche.getSupprime() != null) { bq.add(new TermQuery(new Term("supprime", criteresRecherche.getSupprime().toString())), BooleanClause.Occur.MUST); } // CONSTRUCTION DE LA REQUETE final FullTextQuery fullTextQuery = createFullTextQuery(bq, PersonnePhysique.class); logger.debug("Requte full text : " + fullTextQuery.getQueryString()); // AJOUT DES INFORMATION DE TRI if (criteres.getListeSorts().size() > 0) { final SortField[] listeChamp = new SortField[criteres.getListeSorts().size()]; for (int index = 0; index < criteres.getListeSorts().size(); index++) { listeChamp[index] = new SortField(criteres.getListeSorts().get(index).getSortField(), SortField.STRING, criteres.getListeSorts().get(index) .getSortAsc() == RemotePagingSort.REMOTE_PAGING_SORT_DESC); } final Sort sort = new Sort(listeChamp); fullTextQuery.setSort(sort); } // AJOUT DES INFORMATIONS DE PAGINATION final int nbMaxDocs = fullTextQuery.getResultSize(); fullTextQuery.setFirstResult(criteres.getFirstResult()); fullTextQuery.setMaxResults((criteres.getFirstResult() + criteres.getMaxResult()) > nbMaxDocs ? (nbMaxDocs == 0 ? nbMaxDocs + 1 : nbMaxDocs) : criteres.getMaxResult()); // RETOURNE LA LISTE DES RESULTATS ET LE NOMBRE TOTAL DE RESULTAT (non affct par la pagination) return new ResultatPaginationFullText<PersonnePhysique>(fullTextQuery.list(), nbMaxDocs); }
From source file:com.square.core.dao.implementations.RessourceDaoImplementation.java
@SuppressWarnings("unchecked") @Override//from ww w. j av a 2 s . c o m public ResultatPaginationFullText<Ressource> rechercherFullTextRessource( RemotePagingCriteriasDto<RessourceCriteresRechercheDto> criteres) throws ParseException { final RessourceCriteresRechercheDto criteresRecherche = criteres.getCriterias(); // Si des critres ont t fournis on traite ces critres final BooleanQuery bq = new BooleanQuery(); if (criteresRecherche.getNom() != null && !("".equals(criteresRecherche.getNom()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), FIELD_NOM, getAnalyser(Ressource.class)); parser.setAllowLeadingWildcard(true); final String nom = criteresRecherche.getNom().replaceAll(POURCENT, ETOILE); final org.apache.lucene.search.Query requeteLucene = parser .parse(nom.lastIndexOf(ETOILE) == nom.length() - 1 ? nom : nom + ETOILE); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteresRecherche.getPrenom() != null && !("".equals(criteresRecherche.getPrenom()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "prenom", getAnalyser(Ressource.class)); parser.setAllowLeadingWildcard(true); final String prenom = criteresRecherche.getPrenom().replaceAll(POURCENT, ETOILE); final org.apache.lucene.search.Query requeteLucene = parser .parse(prenom.lastIndexOf(ETOILE) == prenom.length() - 1 ? prenom : prenom + ETOILE); bq.add(requeteLucene, BooleanClause.Occur.MUST); } // Critre sur la liste des services if (criteresRecherche.getIdServices() != null && !criteresRecherche.getIdServices().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getIdServices(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("service.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la liste des fonctions if (criteresRecherche.getIdFonctions() != null && !criteresRecherche.getIdFonctions().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getIdFonctions(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("fonction.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la liste des etats if (criteresRecherche.getIdEtats() != null && !criteresRecherche.getIdEtats().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils.collect(criteresRecherche.getIdEtats(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("etat.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la liste des agences if (criteresRecherche.getIdAgences() != null && !criteresRecherche.getIdAgences().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getIdAgences(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("agence.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la liste des identifiants extrieurs des fonctions if (criteresRecherche.getListeIdsExtsFonctions() != null && !criteresRecherche.getListeIdsExtsFonctions().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteresRecherche.getListeIdsExtsFonctions(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("fonction.identifiantExterieur", listeValeurs), BooleanClause.Occur.SHOULD); } // PARAMETRE TOUJOURS VRAI POUR RECHERCHER SANS CRITERE if (criteresRecherche.getNom() == null || "".equals(criteresRecherche.getNom())) { final QueryParser parser = new QueryParser(getMatchingVersion(), FIELD_NOM, getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); final org.apache.lucene.search.Query requeteLucene = parser.parse("*"); bq.add(requeteLucene, BooleanClause.Occur.MUST); } // CONSTRUCTION DE LA REQUETE final FullTextQuery fullTextQuery = createFullTextQuery(bq, Ressource.class); // AJOUT DES INFORMATION DE TRI if (criteres.getListeSorts().size() > 0) { final SortField[] listeChamp = new SortField[criteres.getListeSorts().size()]; for (int index = 0; index < criteres.getListeSorts().size(); index++) { listeChamp[index] = new SortField(criteres.getListeSorts().get(index).getSortField(), SortField.STRING, criteres.getListeSorts().get(index) .getSortAsc() == RemotePagingSort.REMOTE_PAGING_SORT_DESC); } final Sort sort = new Sort(listeChamp); fullTextQuery.setSort(sort); } // AJOUT DES INFORMATIONS DE PAGINATION fullTextQuery.setFirstResult(criteres.getFirstResult()); fullTextQuery.setMaxResults(criteres.getMaxResult()); // RETOURNE LA LISTE DES RESULTATS ET LE NOMBRE TOTAL DE RESULTAT (non affct par la pagination) return new ResultatPaginationFullText<Ressource>(fullTextQuery.list(), fullTextQuery.getResultSize()); }
From source file:com.square.core.dao.implementations.RessourceDaoImplementation.java
@SuppressWarnings("unchecked") @Override/*from w w w . jav a 2 s . c om*/ public List<Long> rechercherFullTextIdsRessources(RessourceCriteresRechercheDto criteres) throws ParseException { // Si des critres ont t fournis on traite ces critres final BooleanQuery bq = new BooleanQuery(); if (criteres.getNom() != null && !("".equals(criteres.getNom()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), FIELD_NOM, getAnalyser(Ressource.class)); parser.setAllowLeadingWildcard(true); final String nom = criteres.getNom().replaceAll(POURCENT, ETOILE); final org.apache.lucene.search.Query requeteLucene = parser .parse(nom.lastIndexOf(ETOILE) == nom.length() - 1 ? nom : nom + ETOILE); bq.add(requeteLucene, BooleanClause.Occur.MUST); } if (criteres.getPrenom() != null && !("".equals(criteres.getPrenom()))) { final AnalysingCustomQueryParser parser = new AnalysingCustomQueryParser(getMatchingVersion(), "prenom", getAnalyser(Ressource.class)); parser.setAllowLeadingWildcard(true); final String prenom = criteres.getPrenom().replaceAll(POURCENT, ETOILE); final org.apache.lucene.search.Query requeteLucene = parser .parse(prenom.lastIndexOf(ETOILE) == prenom.length() - 1 ? prenom : prenom + ETOILE); bq.add(requeteLucene, BooleanClause.Occur.MUST); } // Critre sur la liste des services if (criteres.getIdServices() != null && !criteres.getIdServices().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils.collect(criteres.getIdServices(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("service.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la liste des fonctions if (criteres.getIdFonctions() != null && !criteres.getIdFonctions().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils.collect(criteres.getIdFonctions(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("fonction.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la liste des etats if (criteres.getIdEtats() != null && !criteres.getIdEtats().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils.collect(criteres.getIdEtats(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("etat.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la liste des agences if (criteres.getIdAgences() != null && !criteres.getIdAgences().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils.collect(criteres.getIdAgences(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("agence.id", listeValeurs), BooleanClause.Occur.MUST); } // Critre sur la liste des identifiants extrieurs des fonctions if (criteres.getListeIdsExtsFonctions() != null && !criteres.getListeIdsExtsFonctions().isEmpty()) { final List<String> listeValeurs = (List<String>) CollectionUtils .collect(criteres.getListeIdsExtsFonctions(), StringValueTransformer.getInstance()); bq.add((Query) getInQuery("fonction.identifiantExterieur", listeValeurs), BooleanClause.Occur.SHOULD); } // PARAMETRE TOUJOURS VRAI POUR RECHERCHER SANS CRITERE if (criteres.getNom() == null || "".equals(criteres.getNom())) { final QueryParser parser = new QueryParser(getMatchingVersion(), FIELD_NOM, getAnalyser(PersonnePhysique.class)); parser.setAllowLeadingWildcard(true); final org.apache.lucene.search.Query requeteLucene = parser.parse("*"); bq.add(requeteLucene, BooleanClause.Occur.MUST); } // CONSTRUCTION DE LA REQUETE final FullTextQuery fullTextQuery = createFullTextQuery(bq, Ressource.class); fullTextQuery.setProjection("id"); final List<Object[]> listeResultats = (List<Object[]>) fullTextQuery.list(); // Mapping des rsultats final List<Long> resultats = new ArrayList<Long>(); for (Object[] resultat : listeResultats) { resultats.add((Long) resultat[0]); } return resultats; }