org.nuiton.wikitty.storage.solr
Class WikittyQueryVisitorToSolr

java.lang.Object
  extended by org.nuiton.wikitty.query.WikittyQueryVisitor
      extended by org.nuiton.wikitty.storage.solr.WikittyQueryVisitorToSolr

public class WikittyQueryVisitorToSolr
extends WikittyQueryVisitor

Converti une Condition en une requete Solr, une fois la condition converti on peut la recuperer par getSolrQuery(). Cette objet ne peut etre utiliser qu'un seul fois, il faut creer un nouveau visiteur pour chaque convertion.

Since:
3.3 Last update: $Date: 2012-05-31 17:11:50 +0200 (Thu, 31 May 2012) $ by : $Author: bpoussin $
Version:
$Revision: 1478 $
Author:
poussin

Field Summary
protected  ElementModifier elementModifier
           
protected  WikittySearchEngineSolr searchEngine
           
protected  String solrQuery
           
protected  WikittyTransaction tx
           
protected  int wikittyFieldSearchDepth
          indique la profondeur de recherche en suivant les liens des champs de type wikitty
 
Constructor Summary
WikittyQueryVisitorToSolr(WikittyTransaction tx, WikittySearchEngineSolr solrServer, ElementModifier elementModifier, int wikittyFieldSearchDepth)
           
 
Method Summary
protected  String deepSearchOnWikittyField(String query, String element2solr, String operator, Collection<String> values)
          Si element2solr est de type Wikitty, alors on fait une recherche pour recuperer tous les ids des objets qui contiennent dans 1 de leur champs une valeur de l'argument values.
protected  String deepSearchOnWikittyField(String query, String element2solr, String operateur, String value)
           
 void defaultVisit(Object o)
           
 boolean defaultVisitEnter(Object o)
           
 void defaultVisitLeave(Object o, boolean enterResult)
           
 boolean defaultVisitMiddle(Object o)
           
protected  String evalConditionValue(ConditionValue o)
           
protected  List<String> evalConditionValueAsList(ConditionValue o)
           
protected  List<String> evalConditionValueAsList(List<ConditionValue> o)
           
 String getSolrQuery()
           
 void visit(ConditionValueString o)
           
 void visit(False o)
           
 void visit(NotNull o)
           
 void visit(Null o)
           
 void visit(True o)
           
 boolean visitEnter(And o)
           
 boolean visitEnter(Between o)
           
 boolean visitEnter(ContainsAll o)
           
 boolean visitEnter(ContainsOne o)
           
 boolean visitEnter(Equals o)
           
 boolean visitEnter(Greater o)
           
 boolean visitEnter(GreaterOrEquals o)
           
 boolean visitEnter(Keyword o)
           
 boolean visitEnter(Less o)
           
 boolean visitEnter(LessOrEquals o)
           
 boolean visitEnter(Like o)
           
 boolean visitEnter(Not o)
           
 boolean visitEnter(NotEquals o)
           
 boolean visitEnter(Or o)
           
 boolean visitEnter(Select o)
           
 boolean visitEnter(Unlike o)
           
 boolean visitEnter(WikittyQuery o)
           
 void visitLeave(And o, boolean enterResult)
           
 void visitLeave(Between o, boolean enterOrMiddleResult)
           
 void visitLeave(ContainsAll o, boolean enterOrMiddleResult)
           
 void visitLeave(ContainsOne o, boolean enterOrMiddleResult)
           
 void visitLeave(Equals o, boolean enterOrMiddleResult)
           
 void visitLeave(Greater o, boolean enterOrMiddleResult)
           
 void visitLeave(GreaterOrEquals o, boolean enterOrMiddleResult)
           
 void visitLeave(Keyword o, boolean enterOrMiddleResult)
           
 void visitLeave(Less o, boolean enterOrMiddleResult)
           
 void visitLeave(LessOrEquals o, boolean enterOrMiddleResult)
           
 void visitLeave(Like o, boolean enterOrMiddleResult)
           
 void visitLeave(Not o, boolean enterResult)
           
 void visitLeave(NotEquals o, boolean enterOrMiddleResult)
           
 void visitLeave(Or o, boolean enterResult)
           
 void visitLeave(Select o, boolean enterOrMiddleResult)
           
 void visitLeave(Unlike o, boolean enterOrMiddleResult)
           
 void visitLeave(WikittyQuery o, boolean enterOrMiddleResult)
           
 boolean visitMiddle(And o)
           
 boolean visitMiddle(Between o)
           
 boolean visitMiddle(ContainsAll o)
           
 boolean visitMiddle(ContainsOne o)
           
 boolean visitMiddle(Or o)
           
 
Methods inherited from class org.nuiton.wikitty.query.WikittyQueryVisitor
visit, visitEnter, visitLeave, visitMiddle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tx

protected WikittyTransaction tx

searchEngine

protected WikittySearchEngineSolr searchEngine

elementModifier

protected ElementModifier elementModifier

solrQuery

protected String solrQuery

wikittyFieldSearchDepth

protected int wikittyFieldSearchDepth
indique la profondeur de recherche en suivant les liens des champs de type wikitty

Constructor Detail

WikittyQueryVisitorToSolr

public WikittyQueryVisitorToSolr(WikittyTransaction tx,
                                 WikittySearchEngineSolr solrServer,
                                 ElementModifier elementModifier,
                                 int wikittyFieldSearchDepth)
Method Detail

getSolrQuery

public String getSolrQuery()

evalConditionValueAsList

protected List<String> evalConditionValueAsList(List<ConditionValue> o)

evalConditionValueAsList

protected List<String> evalConditionValueAsList(ConditionValue o)

evalConditionValue

protected String evalConditionValue(ConditionValue o)

deepSearchOnWikittyField

protected String deepSearchOnWikittyField(String query,
                                          String element2solr,
                                          String operator,
                                          Collection<String> values)
Si element2solr est de type Wikitty, alors on fait une recherche pour recuperer tous les ids des objets qui contiennent dans 1 de leur champs une valeur de l'argument values. La chaine retournee est (query OR element2solr:(valeur retournee par la recherche concatenee par de OR)) ou directement query si element2solr n'est pas de type Wikitty

Parameters:
query - la requete initial de l'utilisateur
element2solr - l'element sur lequel la requete est faite
operator - l'operateur pour concatener les sous requetes
values - les differentes valeurs a rechercher
Returns:

deepSearchOnWikittyField

protected String deepSearchOnWikittyField(String query,
                                          String element2solr,
                                          String operateur,
                                          String value)
See Also:
#deepSearchOnWikittyField(java.lang.String, java.lang.String, java.util.Collection) }

visit

public void visit(ConditionValueString o)
Specified by:
visit in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(WikittyQuery o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(WikittyQuery o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(And o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitMiddle

public boolean visitMiddle(And o)
Specified by:
visitMiddle in class WikittyQueryVisitor

visitLeave

public void visitLeave(And o,
                       boolean enterResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(Or o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitMiddle

public boolean visitMiddle(Or o)
Specified by:
visitMiddle in class WikittyQueryVisitor

visitLeave

public void visitLeave(Or o,
                       boolean enterResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(Select o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(Select o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(Not o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(Not o,
                       boolean enterResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(Between o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitMiddle

public boolean visitMiddle(Between o)
Specified by:
visitMiddle in class WikittyQueryVisitor

visitLeave

public void visitLeave(Between o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(ContainsAll o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitMiddle

public boolean visitMiddle(ContainsAll o)
Specified by:
visitMiddle in class WikittyQueryVisitor

visitLeave

public void visitLeave(ContainsAll o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(ContainsOne o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitMiddle

public boolean visitMiddle(ContainsOne o)
Specified by:
visitMiddle in class WikittyQueryVisitor

visitLeave

public void visitLeave(ContainsOne o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(Equals o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(Equals o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(NotEquals o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(NotEquals o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(Greater o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(Greater o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(GreaterOrEquals o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(GreaterOrEquals o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(Keyword o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(Keyword o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(Less o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(Less o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(LessOrEquals o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(LessOrEquals o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(Like o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(Like o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visitEnter

public boolean visitEnter(Unlike o)
Specified by:
visitEnter in class WikittyQueryVisitor

visitLeave

public void visitLeave(Unlike o,
                       boolean enterOrMiddleResult)
Specified by:
visitLeave in class WikittyQueryVisitor

visit

public void visit(Null o)
Specified by:
visit in class WikittyQueryVisitor

visit

public void visit(NotNull o)
Specified by:
visit in class WikittyQueryVisitor

visit

public void visit(True o)
Specified by:
visit in class WikittyQueryVisitor

visit

public void visit(False o)
Specified by:
visit in class WikittyQueryVisitor

defaultVisit

public void defaultVisit(Object o)
Specified by:
defaultVisit in class WikittyQueryVisitor

defaultVisitEnter

public boolean defaultVisitEnter(Object o)
Specified by:
defaultVisitEnter in class WikittyQueryVisitor

defaultVisitMiddle

public boolean defaultVisitMiddle(Object o)
Specified by:
defaultVisitMiddle in class WikittyQueryVisitor

defaultVisitLeave

public void defaultVisitLeave(Object o,
                              boolean enterResult)
Specified by:
defaultVisitLeave in class WikittyQueryVisitor


Copyright © 2009-2012 CodeLutin. All Rights Reserved.