org.modeshape.jcr.query.xpath

## Class XPathToQueryTranslator

- java.lang.Object
- - org.modeshape.jcr.query.xpath.XPathToQueryTranslator

-     public class XPathToQueryTranslator
      extends Object

  A component that translates an `XPath` abstract syntax model representation into a `ModeShape abstract query model`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected static class` | `XPathToQueryTranslator.DepthMode`
    `protected static class` | `XPathToQueryTranslator.DualPathLikeBuilder`
    `protected static interface` | `XPathToQueryTranslator.PathLikeBuilder`
    `protected static class` | `XPathToQueryTranslator.RelativePathLikeExpressions`
    `protected static class` | `XPathToQueryTranslator.SinglePathLikeBuilder`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected static Map<XPath.NameTest,String>` | `CAST_FUNCTION_NAME_TO_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XPathToQueryTranslator(TypeSystem context, String query)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected boolean` | `appliesToPathConstraint(List<XPath.Component> predicates)` Determine if the predicates contain any expressions that cannot be put into a LIKE constraint on the path.
    `QueryCommand` | `createQuery(XPath.Component xpath)`
    `protected List<XPath.AttributeNameTest>` | `extractAttributeNames(XPath.BinaryComponent binary)` Find any `attribute names` that have been unioned together (with '|').
    `protected List<XPath.NameTest>` | `extractElementNames(XPath.BinaryComponent binary)` Find any `element names` that have been unioned together (with '|').
    `protected String` | `nameFrom(XPath.NameTest name)`
    `protected String` | `newAlias()`
    `protected XPathToQueryTranslator.RelativePathLikeExpressions` | `relativePathLikeExpressions(XPath.PathExpression pathExpression)`
    `protected void` | `translate(XPath.PathExpression pathExpression)`
    `protected String` | `translateElementTest(XPath.ElementTest elementTest, List<XPath.StepExpression> pathConstraint, QueryBuilder.ConstraintBuilder where)`
    `protected boolean` | `translatePathExpressionConstraint(XPath.PathExpression pathExrp, QueryBuilder.ConstraintBuilder where, String tableName)`
    `protected String` | `translatePredicate(XPath.Component predicate, String tableName, QueryBuilder.ConstraintBuilder where)`
    `protected void` | `translatePredicates(List<XPath.Component> predicates, String tableName, QueryBuilder.ConstraintBuilder where)`
    `protected String` | `translateSource(String tableName, List<XPath.StepExpression> path, QueryBuilder.ConstraintBuilder where)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### CAST_FUNCTION_NAME_TO_TYPE

          protected static final Map<XPath.NameTest,String> CAST_FUNCTION_NAME_TO_TYPE

  - ### Constructor Detail

    - #### XPathToQueryTranslator

          public XPathToQueryTranslator(TypeSystem context,
                                String query)

  - ### Method Detail

    - #### createQuery

          public QueryCommand createQuery(XPath.Component xpath)

    - #### translate

          protected void translate(XPath.PathExpression pathExpression)

    - #### extractAttributeNames

          protected List<XPath.AttributeNameTest> extractAttributeNames(XPath.BinaryComponent binary)

      Find any `attribute names` that have been unioned together (with '|'). Any other combination of objects results in an error.
      Parameters:
        `binary` - the binary component
      Returns:
        the list of attribute names, if that's all that's in the supplied component; may be empty

    - #### extractElementNames

          protected List<XPath.NameTest> extractElementNames(XPath.BinaryComponent binary)

      Find any `element names` that have been unioned together (with '|'). Any other combination of objects results in an error.
      Parameters:
        `binary` - the binary component
      Returns:
        the list of attribute names, if that's all that's in the supplied component; may be empty

    - #### translateSource

          protected String translateSource(String tableName,
                               List<XPath.StepExpression> path,
                               QueryBuilder.ConstraintBuilder where)

    - #### translateElementTest

          protected String translateElementTest(XPath.ElementTest elementTest,
                                    List<XPath.StepExpression> pathConstraint,
                                    QueryBuilder.ConstraintBuilder where)

    - #### translatePredicates

          protected void translatePredicates(List<XPath.Component> predicates,
                                 String tableName,
                                 QueryBuilder.ConstraintBuilder where)

    - #### translatePredicate

          protected String translatePredicate(XPath.Component predicate,
                                  String tableName,
                                  QueryBuilder.ConstraintBuilder where)

    - #### appliesToPathConstraint

          protected boolean appliesToPathConstraint(List<XPath.Component> predicates)

      Determine if the predicates contain any expressions that cannot be put into a LIKE constraint on the path.
      Parameters:
        `predicates` - the predicates
      Returns:
        true if the supplied predicates can be handled entirely in the LIKE constraint on the path, or false if they have to be handled as other criteria

    - #### translatePathExpressionConstraint

          protected boolean translatePathExpressionConstraint(XPath.PathExpression pathExrp,
                                                  QueryBuilder.ConstraintBuilder where,
                                                  String tableName)

    - #### relativePathLikeExpressions

          protected XPathToQueryTranslator.RelativePathLikeExpressions relativePathLikeExpressions(XPath.PathExpression pathExpression)

    - #### nameFrom

          protected String nameFrom(XPath.NameTest name)

    - #### newAlias

          protected String newAlias()

Copyright © 2008-2014 JBoss, a division of Red Hat. All Rights Reserved.