org.nuiton.wikitty.storage
Class WikittySearchEngineInMemory.WikittyQueryVisitorCheckCondition

java.lang.Object
  extended by org.nuiton.wikitty.query.WikittyQueryVisitor
      extended by org.nuiton.wikitty.storage.WikittySearchEngineInMemory.WikittyQueryVisitorCheckCondition
Enclosing class:
WikittySearchEngineInMemory

public static class WikittySearchEngineInMemory.WikittyQueryVisitorCheckCondition
extends WikittyQueryVisitor


Field Summary
protected  Deque<Boolean> evalStack
          la pile d'evaluation des differencetes contraintes
protected  WikittySearchEngine searchEngine
           
protected  WikittyTransaction tx
          transaction used to check wikitty
protected  Wikitty w
          wikitty to check
 
Constructor Summary
WikittySearchEngineInMemory.WikittyQueryVisitorCheckCondition(WikittySearchEngine searchEngine, WikittyTransaction tx, Wikitty w)
           
 
Method Summary
protected  boolean check(org.nuiton.wikitty.storage.WikittySearchEngineInMemory.WikittyQueryVisitorCheckCondition.Predicate predicate, Element element, Object expected)
          Verifie qu'un predicat est vrai pour un element et une valeur attendu
protected  void collectFieldValue(Element e, Map<String,Collection> values)
          Collecte les valeur possible de l'element demande
protected  Collection convert(FieldType type, Object o)
          Converti o en une list de valeur compatible avec type
 void defaultVisit(Object o)
           
 boolean defaultVisitEnter(Object o)
          True if we want visit sub-element, otherwize false
 void defaultVisitLeave(Object o, boolean enterOrMiddleResult)
          Leave method is alway called, but evaluation of enter is passed in arguement
 boolean defaultVisitMiddle(Object o)
          True if we want visit others elements, otherwize false visitMiddle for this node is never called
protected  String evalConditionValue(ConditionValue o)
           
protected  List<String> evalConditionValueAsList(ConditionValue o)
           
protected  List<String> evalConditionValueAsList(List<ConditionValue> o)
           
 boolean getResult()
           
 void visit(ConditionValueString o)
           
 void visit(False o)
           
 void visit(NotNull o)
           
 void visit(Null o)
           
 void visit(True o)
           
 boolean visitEnter(And o)
          True if we want visit sub-element, otherwize false
 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)
          True if we want visit sub-element, otherwize false
 boolean visitEnter(NotEquals o)
           
 boolean visitEnter(Or o)
          True if we want visit sub-element, otherwize false visitMiddle for this node is never called
 boolean visitEnter(Select o)
          True if we want visit sub-element, otherwize false
 boolean visitEnter(Unlike o)
           
 boolean visitEnter(WikittyQuery o)
          True if we want visit sub-element, otherwize false
 void visitLeave(And o, boolean enterOrMiddleResult)
          Leave method is alway called, but evaluation of enter is passed in arguement
 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 enterOrMiddleResult)
          Leave method is alway called, but evaluation of enter is passed in arguement
 void visitLeave(NotEquals o, boolean enterOrMiddleResult)
           
 void visitLeave(Or o, boolean enterOrMiddleResult)
          Leave method is alway called, but evaluation of enter is passed in arguement
 void visitLeave(Select o, boolean enterOrMiddleResult)
          Leave method is alway called, but evaluation of enter is passed in arguement
 void visitLeave(Unlike o, boolean enterOrMiddleResult)
           
 void visitLeave(WikittyQuery o, boolean enterOrMiddleResult)
          Leave method is alway called, but evaluation of enter is passed in arguement
 boolean visitMiddle(And o)
          True if we want visit others elements, otherwize false.
 boolean visitMiddle(Between o)
           
 boolean visitMiddle(ContainsAll o)
           
 boolean visitMiddle(ContainsOne o)
           
 boolean visitMiddle(Or o)
          True if we want visit others elements, otherwize false
 
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

searchEngine

protected WikittySearchEngine searchEngine

tx

protected WikittyTransaction tx
transaction used to check wikitty


w

protected Wikitty w
wikitty to check


evalStack

protected Deque<Boolean> evalStack
la pile d'evaluation des differencetes contraintes

Constructor Detail

WikittySearchEngineInMemory.WikittyQueryVisitorCheckCondition

public WikittySearchEngineInMemory.WikittyQueryVisitorCheckCondition(WikittySearchEngine searchEngine,
                                                                     WikittyTransaction tx,
                                                                     Wikitty w)
Method Detail

getResult

public boolean getResult()

collectFieldValue

protected void collectFieldValue(Element e,
                                 Map<String,Collection> values)
Collecte les valeur possible de l'element demande

Parameters:
e - l'element demande. Peut etre l'id, l'extension ou un champs. le champs pouvant contenir des * pour remplacer le nom de extension ou le nom du champs (ex: *.name, myext.*)
values - une map avec en cle le nom du champs et en valeur la valeur du champs

convert

protected Collection convert(FieldType type,
                             Object o)
Converti o en une list de valeur compatible avec type

Parameters:
type - le type dans lequel doit etre converti o
o - la valeur a convertir, si o est une collection, chaque element de la collection est converti
Returns:
une nouvelle collection avec les elements dans le bon type

check

protected boolean check(org.nuiton.wikitty.storage.WikittySearchEngineInMemory.WikittyQueryVisitorCheckCondition.Predicate predicate,
                        Element element,
                        Object expected)
Verifie qu'un predicat est vrai pour un element et une valeur attendu

Parameters:
predicate - le predicat a verifier
element - l'element mis en cause (id, extension, field)
expected - la/les valeur(s) attendu(s)
Returns:
vrai si le predicat est verifie

visit

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

visitEnter

public boolean visitEnter(WikittyQuery o)
Description copied from class: WikittyQueryVisitor
True if we want visit sub-element, otherwize false

Specified by:
visitEnter in class WikittyQueryVisitor
Returns:
True if we want visit sub-element, otherwize false

visitLeave

public void visitLeave(WikittyQuery o,
                       boolean enterOrMiddleResult)
Description copied from class: WikittyQueryVisitor
Leave method is alway called, but evaluation of enter is passed in arguement

Specified by:
visitLeave in class WikittyQueryVisitor
enterOrMiddleResult - result returned by visitEnter method

visitEnter

public boolean visitEnter(And o)
Description copied from class: WikittyQueryVisitor
True if we want visit sub-element, otherwize false

Specified by:
visitEnter in class WikittyQueryVisitor
Returns:
True if we want visit sub-element, otherwize false

visitMiddle

public boolean visitMiddle(And o)
Description copied from class: WikittyQueryVisitor
True if we want visit others elements, otherwize false. If false visitMiddle for this node is never called

Specified by:
visitMiddle in class WikittyQueryVisitor
Returns:
True if we want visit others elements, otherwize false

visitLeave

public void visitLeave(And o,
                       boolean enterOrMiddleResult)
Description copied from class: WikittyQueryVisitor
Leave method is alway called, but evaluation of enter is passed in arguement

Specified by:
visitLeave in class WikittyQueryVisitor
enterOrMiddleResult - result returned by visitEnter method

visitEnter

public boolean visitEnter(Or o)
Description copied from class: WikittyQueryVisitor
True if we want visit sub-element, otherwize false visitMiddle for this node is never called

Specified by:
visitEnter in class WikittyQueryVisitor
Returns:
True if we want visit sub-element, otherwize false

visitMiddle

public boolean visitMiddle(Or o)
Description copied from class: WikittyQueryVisitor
True if we want visit others elements, otherwize false

Specified by:
visitMiddle in class WikittyQueryVisitor
Returns:
True if we want visit others elements, otherwize false

visitLeave

public void visitLeave(Or o,
                       boolean enterOrMiddleResult)
Description copied from class: WikittyQueryVisitor
Leave method is alway called, but evaluation of enter is passed in arguement

Specified by:
visitLeave in class WikittyQueryVisitor
enterOrMiddleResult - result returned by visitEnter method

visitEnter

public boolean visitEnter(Select o)
Description copied from class: WikittyQueryVisitor
True if we want visit sub-element, otherwize false

Specified by:
visitEnter in class WikittyQueryVisitor
Returns:
True if we want visit sub-element, otherwize false

visitLeave

public void visitLeave(Select o,
                       boolean enterOrMiddleResult)
Description copied from class: WikittyQueryVisitor
Leave method is alway called, but evaluation of enter is passed in arguement

Specified by:
visitLeave in class WikittyQueryVisitor
enterOrMiddleResult - result returned by visitEnter method

evalConditionValueAsList

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

evalConditionValueAsList

protected List<String> evalConditionValueAsList(ConditionValue o)

evalConditionValue

protected String evalConditionValue(ConditionValue o)

visitEnter

public boolean visitEnter(Not o)
Description copied from class: WikittyQueryVisitor
True if we want visit sub-element, otherwize false

Specified by:
visitEnter in class WikittyQueryVisitor
Returns:
True if we want visit sub-element, otherwize false

visitLeave

public void visitLeave(Not o,
                       boolean enterOrMiddleResult)
Description copied from class: WikittyQueryVisitor
Leave method is alway called, but evaluation of enter is passed in arguement

Specified by:
visitLeave in class WikittyQueryVisitor
enterOrMiddleResult - result returned by visitEnter method

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

visit

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

visit

public void visit(True o)
Specified by:
visit 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

defaultVisit

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

defaultVisitEnter

public boolean defaultVisitEnter(Object o)
Description copied from class: WikittyQueryVisitor
True if we want visit sub-element, otherwize false

Specified by:
defaultVisitEnter in class WikittyQueryVisitor
Returns:
True if we want visit sub-element, otherwize false

defaultVisitMiddle

public boolean defaultVisitMiddle(Object o)
Description copied from class: WikittyQueryVisitor
True if we want visit others elements, otherwize false visitMiddle for this node is never called

Specified by:
defaultVisitMiddle in class WikittyQueryVisitor
Returns:
True if we want visit others elements, otherwize false

defaultVisitLeave

public void defaultVisitLeave(Object o,
                              boolean enterOrMiddleResult)
Description copied from class: WikittyQueryVisitor
Leave method is alway called, but evaluation of enter is passed in arguement

Specified by:
defaultVisitLeave in class WikittyQueryVisitor
enterOrMiddleResult - result returned by visitEnter method


Copyright © 2009-2012 CodeLutin. All Rights Reserved.