|
EclipseLink 2.4.2, build 'v20130514-5956486' API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.persistence.jpa.jpql.parser.ExpressionFactory
public abstract class ExpressionFactory
An ExpressionFactory
is responsible to parse a portion of JPQL query that starts
with one of the factory's identifiers.
Provisional API: This interface is part of an interim API that is still under development and
expected to change significantly before reaching stability. It is available at this early stage
to solicit feedback from pioneering adopters on the understanding that any code that uses this
API will almost certainly be broken (repeatedly) as the API evolves.
Constructor Summary | |
---|---|
protected |
ExpressionFactory(java.lang.String id,
java.lang.String... identifiers)
Creates a new ExpressionFactory . |
Method Summary | |
---|---|
protected abstract AbstractExpression |
buildExpression(AbstractExpression parent,
WordParser wordParser,
java.lang.String word,
JPQLQueryBNF queryBNF,
AbstractExpression expression,
boolean tolerant)
Creates a new Expression . |
int |
compareTo(ExpressionFactory expressionFactory)
|
boolean |
equals(java.lang.Object object)
|
ExpressionRegistry |
getExpressionRegistry()
Returns the registry containing the JPQLQueryBNFs and the ExpressionFactories that are used
to properly parse a JPQL query. |
java.lang.String |
getFallBackExpressionFactoryId()
Returns the unique identifier of the ExpressionFactory to use when this one cannot
create the right Expression based on the JPQL fragment to parse. |
java.lang.String |
getId()
Returns the unique identifier of this ExpressionFactory . |
int |
hashCode()
|
java.lang.String[] |
identifiers()
Returns the JPQL identifiers handled by this factory. |
void |
setFallBackExpressionFactory(java.lang.String expressionFactoryId)
Sets the unique identifier of the ExpressionFactory to use when this one cannot create
the right Expression based on the JPQL fragment to parse. |
java.lang.String |
toString()
|
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
protected ExpressionFactory(java.lang.String id, java.lang.String... identifiers)
ExpressionFactory
.
id
- The unique identifier of this ExpressionFactory
identifiers
- The JPQL identifiers handled by this factory
java.lang.NullPointerException
- The given unique identifier cannot be null
or
the list of JPQL identifiers was null
Method Detail |
---|
protected abstract AbstractExpression buildExpression(AbstractExpression parent, WordParser wordParser, java.lang.String word, JPQLQueryBNF queryBNF, AbstractExpression expression, boolean tolerant)
Expression
.
parent
- The parent expressionwordParser
- The text to parse based on the current position of the cursorword
- The current word to parsequeryBNF
- The BNF grammar that was used to identifier this factory to be capable to
parse a portion of the queryexpression
- During the parsing, it is possible the first part of an expression was
parsed which needs to be used as a sub-expression of the newly created expression
Expression
representing a portion or the totality of the given textpublic final int compareTo(ExpressionFactory expressionFactory)
compareTo
in interface java.lang.Comparable<ExpressionFactory>
public final boolean equals(java.lang.Object object)
equals
in class java.lang.Object
public final ExpressionRegistry getExpressionRegistry()
JPQLQueryBNFs
and the ExpressionFactories
that are used
to properly parse a JPQL query.
public java.lang.String getFallBackExpressionFactoryId()
ExpressionFactory
to use when this one cannot
create the right Expression
based on the JPQL fragment to parse.
Note: Only PreLiteralExpressionFactory
and LiteralExpressionFactory
currently
support this feature.
A good example is JoinCollectionValuedPathExpressionFactory
giving the fallback
factory to PreLiteralExpressionFactory
, which in return gives it to LiteralExpressionFactory
. This allows parsing incomplete queries correctly but changes the
object being created, rather than creating an IdentificationVariable
, an AbstractSchemaName
is instead.
ExpressionFactory
public final java.lang.String getId()
ExpressionFactory
.
ExpressionFactory
with ExpressionRegistry
public final int hashCode()
hashCode
in class java.lang.Object
public final java.lang.String[] identifiers()
public void setFallBackExpressionFactory(java.lang.String expressionFactoryId)
ExpressionFactory
to use when this one cannot create
the right Expression
based on the JPQL fragment to parse.
Note: Only PreLiteralExpressionFactory
and LiteralExpressionFactory
currently
support this feature.
A good example is JoinCollectionValuedPathExpressionFactory
giving the fallback
factory to PreLiteralExpressionFactory
, which in return gives it to LiteralExpressionFactory
. This allows parsing incomplete queries correctly but changes the
object being created, rather than creating an IdentificationVariable
, an AbstractSchemaName
is instead.
fallbackExpressionFactoryId
- The unique identifier of the ExpressionFactory
public final java.lang.String toString()
toString
in class java.lang.Object
|
EclipseLink 2.4.2, build 'v20130514-5956486' API Reference | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |