Example usage for org.apache.commons.collections.functors StringValueTransformer getInstance

List of usage examples for org.apache.commons.collections.functors StringValueTransformer getInstance

Introduction

In this page you can find the example usage for org.apache.commons.collections.functors StringValueTransformer getInstance.

Prototype

public static Transformer getInstance() 

Source Link

Document

Factory returning the singleton instance.

Usage

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;
}