Class ExpressionFactory
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.ExpressionFactory
-
- All Implemented Interfaces:
java.lang.Comparable<ExpressionFactory>
- Direct Known Subclasses:
AbsExpressionFactory,AbstractLiteralExpressionFactory,AbstractSchemaNameFactory,AllOrAnyExpressionFactory,AndExpressionFactory,ArithmeticExpressionFactory,AsOfClauseFactory,AvgFunctionFactory,BadExpressionFactory,BetweenExpressionFactory,CaseExpressionFactory,CastExpressionFactory,CoalesceExpressionFactory,CollectionMemberDeclarationFactory,CollectionMemberExpressionFactory,ComparisonExpressionFactory,ConcatExpressionFactory,ConnectByClauseFactory,ConstructorExpressionFactory,CountFunctionFactory,DatabaseTypeFactory,DateTimeFactory,DeleteClauseFactory,DeleteStatementFactory,EntryExpressionFactory,ExistsExpressionFactory,ExtractExpressionFactory,FromClauseFactory,FunctionExpressionFactory,GeneralIdentificationExpressionFactory,GroupByClauseFactory,GroupByItemFactory,HavingClauseFactory,HierarchicalQueryClauseFactory,IdentificationVariableDeclarationFactory,IdentificationVariableFactory,IndexExpressionFactory,InExpressionFactory,InternalOrderByItemFactory,IsExpressionFactory,JoinFactory,KeywordExpressionFactory,LengthExpressionFactory,LikeExpressionFactory,LocateExpressionFactory,LowerExpressionFactory,MaxFunctionFactory,MinFunctionFactory,ModExpressionFactory,NotExpressionFactory,NullIfExpressionFactory,ObjectExpressionFactory,OnClauseFactory,OrderByClauseFactory,OrderByItemFactory,OrderSiblingsByClauseFactory,OrExpressionFactory,RangeDeclarationFactory,RangeVariableDeclarationFactory,RegexpExpressionFactory,ResultVariableFactory,SelectClauseFactory,SelectStatementFactory,SimpleSelectStatementFactory,SizeExpressionFactory,SqrtExpressionFactory,StartWithClauseFactory,StringLiteralFactory,SubstringExpressionFactory,SumFunctionFactory,TableExpressionFactory,TableVariableDeclarationFactory,TreatExpressionFactory,TrimExpressionFactory,TypeExpressionFactory,UnionClauseFactory,UnknownExpressionFactory,UpdateClauseFactory,UpdateItemFactory,UpdateItemStateFieldPathExpressionFactory,UpdateStatementFactory,UpperExpressionFactory,WhenClauseFactory,WhereClauseFactory
public abstract class ExpressionFactory extends java.lang.Object implements java.lang.Comparable<ExpressionFactory>
AnExpressionFactoryis responsible to parse a portion of JPQL query which starts with one of the factory's JPQL 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.
- Version:
- 2.5
- Author:
- Pascal Filion
- Since:
- 2.3
-
-
Constructor Summary
Constructors Modifier Constructor Description protectedExpressionFactory(java.lang.String id, java.lang.String... identifiers)Creates a newExpressionFactory.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract AbstractExpressionbuildExpression(AbstractExpression parent, WordParser wordParser, java.lang.String word, JPQLQueryBNF queryBNF, AbstractExpression expression, boolean tolerant)Creates a newExpression.intcompareTo(ExpressionFactory expressionFactory)booleanequals(java.lang.Object object)ExpressionRegistrygetExpressionRegistry()Returns the registry containing theJPQLQueryBNFsand theExpressionFactoriesthat are used to properly parse a JPQL query.java.lang.StringgetId()Returns the unique identifier of thisExpressionFactory.inthashCode()java.lang.String[]identifiers()Returns the JPQL identifiers handled by this factory.java.lang.StringtoString()
-
-
-
Constructor Detail
-
ExpressionFactory
protected ExpressionFactory(java.lang.String id, java.lang.String... identifiers)Creates a newExpressionFactory.- Parameters:
id- The unique identifier of thisExpressionFactoryidentifiers- The JPQL identifiers handled by this factory- Throws:
java.lang.NullPointerException- The given unique identifier cannot benullor the list of JPQL identifiers wasnull
-
-
Method Detail
-
buildExpression
protected abstract AbstractExpression buildExpression(AbstractExpression parent, WordParser wordParser, java.lang.String word, JPQLQueryBNF queryBNF, AbstractExpression expression, boolean tolerant)
Creates a newExpression.- Parameters:
parent- The parentAbstractExpressionwordParser- The text to parse based on the current position of the cursorword- The current word being parsedqueryBNF- 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- Returns:
- A new
AbstractExpressionrepresenting the portion or the totality of the text held byWordParserstarting at the cursor position
-
compareTo
public final int compareTo(ExpressionFactory expressionFactory)
- Specified by:
compareToin interfacejava.lang.Comparable<ExpressionFactory>
-
equals
public final boolean equals(java.lang.Object object)
- Overrides:
equalsin classjava.lang.Object
-
getExpressionRegistry
public final ExpressionRegistry getExpressionRegistry()
Returns the registry containing theJPQLQueryBNFsand theExpressionFactoriesthat are used to properly parse a JPQL query.- Returns:
- The registry containing the information related to the JPQL grammar
-
getId
public final java.lang.String getId()
Returns the unique identifier of thisExpressionFactory.- Returns:
- The identifier used to register this
ExpressionFactorywithExpressionRegistry
-
hashCode
public final int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
identifiers
public final java.lang.String[] identifiers()
Returns the JPQL identifiers handled by this factory.- Returns:
- The list of JPQL identifiers this factory knows how to parse
-
toString
public final java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-