EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql.model
Class AbstractJPQLQueryBuilder

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.model.AbstractJPQLQueryBuilder
All Implemented Interfaces:
IJPQLQueryBuilder
Direct Known Subclasses:
EclipseLinkJPQLQueryBuilder, JPQLQueryBuilder1_0, JPQLQueryBuilder2_0, JPQLQueryBuilder2_1

public abstract class AbstractJPQLQueryBuilder
extends java.lang.Object
implements IJPQLQueryBuilder

An abstract implementation of IJPQLQueryBuilder that parses a JPQL query or any JPQL fragments and creates the StateObject representation by delegating the creation to an instance of BasicStateObjectBuilder.

Version:
2.4
See Also:
DefaultJPQLQueryBuilder, EclipseLinkJPQLQueryBuilder
Author:
Pascal Filion
Since:
2.4

Constructor Summary
protected AbstractJPQLQueryBuilder()
          Creates a new AbstractJPQLQueryBuilder.
 
Method Summary
 ICaseExpressionStateObjectBuilder buildCaseExpressionStateObjectBuilder(StateObject parent)
          Creates a builder that can create a CASE expression programmatically.
 JPQLQueryStateObject buildStateObject(IManagedTypeProvider provider, java.lang.CharSequence jpqlQuery, boolean tolerant)
          Creates a state model representation of a JPQL query that can be edited.
 JPQLQueryStateObject buildStateObject(IManagedTypeProvider provider, java.lang.CharSequence jpqlQuery, java.lang.String queryBNFId, boolean tolerant)
          Creates a state model representation of a JPQL query that can be edited.
 StateObject buildStateObject(StateObject parent, java.lang.CharSequence jpqlFragment, java.lang.String queryBNFId)
          Creates a StateObject representation of the given JPQL fragment.
protected abstract  BasicStateObjectBuilder buildStateObjectBuilder()
          Creates the builder that creates the StateObject for each {@link org.eclipse.
protected  BasicStateObjectBuilder getStateObjectBuilder()
          Returns the builder that creates the StateObject for each {@link org.eclipse.
protected  JPQLExpression parse(java.lang.CharSequence jpqlQuery, JPQLGrammar jpqlGrammar, boolean tolerant)
          Parses the given JPQL query with tolerant mode turned on.
protected  JPQLExpression parse(java.lang.CharSequence jpqFragment, JPQLGrammar jpqlGrammar, java.lang.String queryBNFId)
          Parses the given JPQL fragment with tolerant mode turned on.
protected  ExpressionVisitor wrap(BasicStateObjectBuilder builder)
          If a subclass needs to wrap the given BasicStateObjectBuilder with another visitor can do so by simply overriding this method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.eclipse.persistence.jpa.jpql.model.IJPQLQueryBuilder
buildStateObjectBuilder, buildStateObjectBuilder, buildStateObjectBuilder, buildStateObjectBuilder, getGrammar
 

Constructor Detail

AbstractJPQLQueryBuilder

protected AbstractJPQLQueryBuilder()
Creates a new AbstractJPQLQueryBuilder.

Method Detail

buildCaseExpressionStateObjectBuilder

public ICaseExpressionStateObjectBuilder buildCaseExpressionStateObjectBuilder(StateObject parent)
Creates a builder that can create a CASE expression programmatically. Once the expression is complete, ICaseExpressionStateObjectBuilder.buildStateObject() will return the result.

Specified by:
buildCaseExpressionStateObjectBuilder in interface IJPQLQueryBuilder
Parameters:
parent - The StateObject that will be the parent of the newly created model
Returns:
The builder of a CASE expression

buildStateObject

public JPQLQueryStateObject buildStateObject(IManagedTypeProvider provider,
                                             java.lang.CharSequence jpqlQuery,
                                             boolean tolerant)
Creates a state model representation of a JPQL query that can be edited.

Specified by:
buildStateObject in interface IJPQLQueryBuilder
Parameters:
provider - The provider of managed types
jpqlQuery - The JPQL query to parse into a StateObject model
tolerant - Determines if the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries
Returns:
The root of the StateObject model that represents the edited form of the JPQL query

buildStateObject

public JPQLQueryStateObject buildStateObject(IManagedTypeProvider provider,
                                             java.lang.CharSequence jpqlQuery,
                                             java.lang.String queryBNFId,
                                             boolean tolerant)
Creates a state model representation of a JPQL query that can be edited.

Specified by:
buildStateObject in interface IJPQLQueryBuilder
Parameters:
provider - The provider of managed types
jpqlQuery - The JPQL query to parse into a StateObject model
queryBNFId - The unique identifier of the query BNF that will be used to parse the fragment
tolerant - Determines if the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries
Returns:
The root of the StateObject model that represents the edited form of the JPQL query

buildStateObject

public StateObject buildStateObject(StateObject parent,
                                    java.lang.CharSequence jpqlFragment,
                                    java.lang.String queryBNFId)
Creates a StateObject representation of the given JPQL fragment. In order to properly parse the fragment, the given unique identifier of the parser.JPQLQueryBNF JPQLQueryBNF will determine how to parse it.

It is possible the given JPQL fragment has more than one expression, in this case, parsing should stop at the first comma (x, y) or space (x y) where x and y are two separate expressions.

Specified by:
buildStateObject in interface IJPQLQueryBuilder
Parameters:
parent - The StateObject that will be the parent of the newly created model
jpqlFragment - A portion of a JPQL query that will be parsed and the StateObject representation will be created
queryBNFId - The unique identifier of the query BNF that will be used to parse the fragment
Returns:
The StateObject representation of the given JPQL fragment

buildStateObjectBuilder

protected abstract BasicStateObjectBuilder buildStateObjectBuilder()
Creates the builder that creates the StateObject for each persistence.jpa.jpql.parser.Expression Expression.

Returns:
The builder that will be visiting the Expression Expression

getStateObjectBuilder

protected final BasicStateObjectBuilder getStateObjectBuilder()
Returns the builder that creates the StateObject for each persistence.jpa.jpql.parser.Expression Expression.

Returns:
The builder that will be visiting the Expression Expression

parse

protected JPQLExpression parse(java.lang.CharSequence jpqlQuery,
                               JPQLGrammar jpqlGrammar,
                               boolean tolerant)
Parses the given JPQL query with tolerant mode turned on.

Parameters:
query - The string representation of the JPQL query to parse
jpqlGrammar - The JPQL grammar that defines how to parse a JPQL query
tolerant - Determines if the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries
Returns:
The root of the parsed tree representation of the JPQL query

parse

protected JPQLExpression parse(java.lang.CharSequence jpqFragment,
                               JPQLGrammar jpqlGrammar,
                               java.lang.String queryBNFId)
Parses the given JPQL fragment with tolerant mode turned on.

Parameters:
jpqFragment - The string representation of the portion of a JPQL query to parse
jpqlGrammar - The JPQL grammar that defines how to parse a JPQL query
queryBNFId - The unique identifier of the queryBNFId
Returns:
The root of the parsed tree representation of the JPQL fragment

wrap

protected ExpressionVisitor wrap(BasicStateObjectBuilder builder)
If a subclass needs to wrap the given BasicStateObjectBuilder with another visitor can do so by simply overriding this method. buildStateObjectBuilder() can't be easily overridden with an ExpressionVisitor due to the constraint on the return type.

Parameters:
builder - The builder to wrap
Returns:
By default the given builder is returned

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference