Class XPathQueryBuilder
- java.lang.Object
-
- org.apache.jackrabbit.spi.commons.query.xpath.XPathQueryBuilder
-
- All Implemented Interfaces:
XPathTreeConstants,XPathVisitor
public class XPathQueryBuilder extends java.lang.Object implements XPathVisitor, XPathTreeConstants
Query builder that translates a XPath statement into a query tree structure.
-
-
Field Summary
-
Fields inherited from interface org.apache.jackrabbit.spi.commons.query.xpath.XPathTreeConstants
JJTADDITIVEEXPR, JJTANDEXPR, JJTANYKINDTEST, JJTANYNAME, JJTAPOSATTRCONTENTCHAR, JJTAPOSATTRVALUECONTENT, JJTAS, JJTASCENDING, JJTASSIGNEQUALS, JJTAT, JJTATOMICTYPE, JJTATSTRINGLITERAL, JJTATTRIBNAMEORWILDCARD, JJTATTRIBUTEDECLARATION, JJTATTRIBUTELBRACE, JJTATTRIBUTENAME, JJTATTRIBUTEQNAMELBRACE, JJTATTRIBUTETEST, JJTATTRIBUTETYPE, JJTATTRIBUTETYPEFORKINDTEST, JJTATWORD, JJTAXISANCESTOR, JJTAXISANCESTORORSELF, JJTAXISATTRIBUTE, JJTAXISCHILD, JJTAXISDESCENDANT, JJTAXISDESCENDANTORSELF, JJTAXISFOLLOWING, JJTAXISFOLLOWINGSIBLING, JJTAXISPARENT, JJTAXISPRECEDING, JJTAXISPRECEDINGSIBLING, JJTAXISSELF, JJTBASEURIDECL, JJTCASE, JJTCASECLAUSE, JJTCASTABLEEXPR, JJTCASTAS, JJTCASTEXPR, JJTCDATASECTION, JJTCDATASECTIONCHAR, JJTCDATASECTIONCONTENTS, JJTCDATASECTIONEND, JJTCDATASECTIONSTART, JJTCDATASECTIONSTARTFORELEMENTCONTENT, JJTCHARREF, JJTCLOSEAPOS, JJTCLOSEQUOT, JJTCOLLATION, JJTCOLONEQUALS, JJTCOMMAFORKINDTEST, JJTCOMMENTCONTENTCHAR, JJTCOMMENTCONTENTCHARDASH, JJTCOMMENTLBRACE, JJTCOMMENTLPARFORKINDTEST, JJTCOMMENTTEST, JJTCOMMONCONTENT, JJTCOMPARISONEXPR, JJTCOMPATTRCONSTRUCTOR, JJTCOMPCOMMENTCONSTRUCTOR, JJTCOMPDOCCONSTRUCTOR, JJTCOMPELEMCONSTRUCTOR, JJTCOMPPICONSTRUCTOR, JJTCOMPTEXTCONSTRUCTOR, JJTCOMPUTEDCONSTRUCTOR, JJTCONSTRUCTIONDECL, JJTCONSTRUCTOR, JJTCONTENTEXPR, JJTDECIMALLITERAL, JJTDECLAREBASEURI, JJTDECLARECOLLATION, JJTDECLARECONSTRUCTION, JJTDECLAREDEFAULTELEMENT, JJTDECLAREDEFAULTFUNCTION, JJTDECLAREDEFAULTORDERINGEMPTY, JJTDECLAREINHERITNAMESPACES, JJTDECLARENAMESPACE, JJTDECLAREORDERING, JJTDECLAREXMLSPACE, JJTDEFAULT, JJTDEFAULTCOLLATIONDECL, JJTDEFAULTELEMENT, JJTDEFAULTNAMESPACEDECL, JJTDEFINEFUNCTION, JJTDEFINEVARIABLE, JJTDESCENDING, JJTDIRATTRIBUTELIST, JJTDIRATTRIBUTEVALUE, JJTDIRCOMMENTCONSTRUCTOR, JJTDIRCOMMENTCONTENTS, JJTDIRECTCONSTRUCTOR, JJTDIRELEMCONSTRUCTOR, JJTDIRELEMCONTENT, JJTDIRPICONSTRUCTOR, JJTDIRPICONTENTS, JJTDOCUMENTLBRACE, JJTDOCUMENTLPAR, JJTDOCUMENTLPARFORKINDTEST, JJTDOCUMENTTEST, JJTDOT, JJTDOTDOT, JJTDOUBLELITERAL, JJTELEMENTCONTENTCHAR, JJTELEMENTDECLARATION, JJTELEMENTLBRACE, JJTELEMENTNAME, JJTELEMENTNAMEORWILDCARD, JJTELEMENTQNAMELBRACE, JJTELEMENTTEST, JJTELEMENTTYPE, JJTELEMENTTYPEFORDOCUMENTTEST, JJTELEMENTTYPEFORKINDTEST, JJTEMPTYGREATEST, JJTEMPTYLEAST, JJTEMPTYORDERINGDECL, JJTEMPTYTAGCLOSE, JJTEMPTYTOK, JJTENCLOSEDEXPR, JJTENDTAGCLOSE, JJTENDTAGOPEN, JJTESCAPEAPOS, JJTESCAPEQUOT, JJTEVERY, JJTEXPR, JJTEXTERNAL, JJTFLWOREXPR, JJTFUNCTIONCALL, JJTFUNCTIONDECL, JJTIFEXPR, JJTIMPORT, JJTIMPORTMODULETOKEN, JJTIMPORTSCHEMATOKEN, JJTIN, JJTINHERITNAMESPACESDECL, JJTINSTANCEOFEXPR, JJTINTEGERLITERAL, JJTINTERSECTEXCEPTEXPR, JJTITEM, JJTLBRACE, JJTLBRACEEXPRENCLOSURE, JJTLCURLYBRACEESCAPE, JJTLETCLAUSE, JJTLETVARIABLE, JJTLIBRARYMODULE, JJTMAINMODULE, JJTMODULE, JJTMODULEDECL, JJTMODULEIMPORT, JJTMODULENAMESPACE, JJTMULTIPLICATIVEEXPR, JJTNAMESPACE, JJTNAMESPACEDECL, JJTNAMETEST, JJTNCNAMECOLONSTAR, JJTNCNAMEFORPI, JJTNCNAMEFORPREFIX, JJTNILLABLE, JJTNO, JJTNODELPARFORKINDTEST, jjtNodeName, JJTNODETEST, JJTOCCURRENCEONEORMORE, JJTOCCURRENCEZEROORMORE, JJTOCCURRENCEZEROORONE, JJTOPENAPOS, JJTOPENQUOT, JJTORDERBY, JJTORDERBYCLAUSE, JJTORDERBYSTABLE, JJTORDERED, JJTORDEREDOPEN, JJTORDERINGMODEDECL, JJTORDERMODIFIER, JJTORDERSPEC, JJTORDERSPECLIST, JJTOREXPR, JJTPARAM, JJTPARAMLIST, JJTPATHEXPR, JJTPICONTENTCHAR, JJTPILBRACE, JJTPINCNAMELBRACE, JJTPITARGET, JJTPITEST, JJTPOSITIONALVAR, JJTPREDEFINEDENTITYREF, JJTPREDICATE, JJTPREDICATELIST, JJTPROCESSINGINSTRUCTIONEND, JJTPROCESSINGINSTRUCTIONLPARFORKINDTEST, JJTPROCESSINGINSTRUCTIONSTART, JJTPROCESSINGINSTRUCTIONSTARTFORELEMENTCONTENT, JJTPROLOG, JJTQNAME, JJTQNAMEFORATOMICTYPE, JJTQNAMEFORITEMTYPE, JJTQNAMEFORSEQUENCETYPE, JJTQNAMELPAR, JJTQUANTIFIEDEXPR, JJTQUERYBODY, JJTQUERYLIST, JJTQUOTATTRCONTENTCHAR, JJTQUOTATTRVALUECONTENT, JJTRANGEEXPR, JJTRBRACE, JJTRCURLYBRACEESCAPE, JJTROOT, JJTROOTDESCENDANTS, JJTS, JJTSATISFIES, JJTSCHEMAATTRIBUTETEST, JJTSCHEMAATTRIBUTETYPE, JJTSCHEMAATTRIBUTETYPEFORKINDTEST, JJTSCHEMAELEMENTTEST, JJTSCHEMAELEMENTTYPE, JJTSCHEMAELEMENTTYPEFORDOCUMENTTEST, JJTSCHEMAELEMENTTYPEFORKINDTEST, JJTSCHEMAIMPORT, JJTSCHEMAMODEFORDECLARECONSTRUCTION, JJTSCHEMAPREFIX, JJTSEPARATOR, JJTSEQUENCETYPE, JJTSETTER, JJTSFORPI, JJTSINGLETYPE, JJTSLASHSLASH, JJTSOME, JJTSTAR, JJTSTARCOLONNCNAME, JJTSTARTTAGCLOSE, JJTSTARTTAGOPEN, JJTSTARTTAGOPENROOT, JJTSTEPEXPR, JJTSTRINGLITERAL, JJTSTRINGLITERALFORKINDTEST, JJTSTRINGLITERALFORVERSION, JJTTAGQNAME, JJTTEXTLBRACE, JJTTEXTLPARFORKINDTEST, JJTTEXTTEST, JJTTREATEXPR, JJTTYPEDECLARATION, JJTTYPENAME, JJTTYPESWITCHEXPR, JJTUNARYEXPR, JJTUNARYMINUS, JJTUNARYPLUS, JJTUNIONEXPR, JJTUNORDERED, JJTUNORDEREDOPEN, JJTURLLITERAL, JJTVALIDATEEXPR, JJTVALIDATELBRACE, JJTVALIDATESCHEMAMODE, JJTVALUEINDICATOR, JJTVARDECL, JJTVARNAME, JJTVERSIONDECL, JJTVOID, JJTWHERE, JJTWHERECLAUSE, JJTXMLCOMMENTEND, JJTXMLCOMMENTSTART, JJTXMLCOMMENTSTARTFORELEMENTCONTENT, JJTXMLSPACEDECL, JJTXMLSPACEPRESERVE, JJTXMLSPACESTRIP, JJTXPATH2, JJTXQUERYENCODING, JJTXQUERYVERSION, JJTYES
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static QueryRootNodecreateQuery(java.lang.String statement, NameResolver resolver, QueryNodeFactory factory)Creates aQueryNodetree from a XPath statement using the passed query nodefactory.static java.lang.StringtoString(QueryRootNode root, NameResolver resolver)Creates a String representation of the query node tree in XPath syntax.java.lang.Objectvisit(SimpleNode node, java.lang.Object data)Implements the generic visit method for thisXPathVisitor.
-
-
-
Method Detail
-
createQuery
public static QueryRootNode createQuery(java.lang.String statement, NameResolver resolver, QueryNodeFactory factory) throws javax.jcr.query.InvalidQueryException
Creates aQueryNodetree from a XPath statement using the passed query nodefactory.- Parameters:
statement- the XPath statement.resolver- the name resolver to use.factory- the query node factory.- Returns:
- the
QueryNodetree for the XPath statement. - Throws:
javax.jcr.query.InvalidQueryException- if the XPath statement is malformed.
-
toString
public static java.lang.String toString(QueryRootNode root, NameResolver resolver) throws javax.jcr.query.InvalidQueryException
Creates a String representation of the query node tree in XPath syntax.- Parameters:
root- the root of the query node tree.resolver- to resolveNames.- Returns:
- a String representation of the query node tree.
- Throws:
javax.jcr.query.InvalidQueryException- if the query node tree cannot be converted into a String representation due to restrictions in XPath.
-
visit
public java.lang.Object visit(SimpleNode node, java.lang.Object data)
Implements the generic visit method for thisXPathVisitor.- Specified by:
visitin interfaceXPathVisitor- Parameters:
node- the current node as created by the XPath parser.data- the currentQueryNodecreated by thisXPathVisitor.- Returns:
- the current
QueryNode. Can be different fromdata.
-
-