Class LocateExpression
- java.lang.Object
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
-
- org.eclipse.persistence.jpa.jpql.parser.AbstractTripleEncapsulatedExpression
-
- org.eclipse.persistence.jpa.jpql.parser.LocateExpression
-
- All Implemented Interfaces:
Expression
public final class LocateExpression extends AbstractTripleEncapsulatedExpression
The LOCATE function returns the position of a given string within a string, starting the search at a specified position. It returns the first position at which the string was found as an integer. The first argument is the string to be located; the second argument is the string to be searched; the optional third argument is an integer that represents the string position at which the search is started (by default, the beginning of the string to be searched). The first position in a string is denoted by 1. If the string is not found, 0 is returned.JPA 1.0, 2.0:
BNF:expression ::= LOCATE(string_primary, string_primary [, simple_arithmetic_expression])
JPA 2.1:
BNF:expression ::= LOCATE(string_expression, string_expression [, arithmetic_expression])
- Version:
- 2.5
- Author:
- Pascal Filion
- Since:
- 2.3
-
-
Field Summary
-
Fields inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractTripleEncapsulatedExpression
parameterIndex
-
Fields inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCORE
-
Fields inherited from interface org.eclipse.persistence.jpa.jpql.parser.Expression
ABS, ALL, AND, ANY, AS, AS_OF, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CAST, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, CONNECT_BY, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXCEPT, EXISTS, EXTRACT, FALSE, FETCH, FIRST, FROM, FUNC, FUNCTION, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, IN, INDEX, INNER, INNER_JOIN, INNER_JOIN_FETCH, INTERSECT, IS, IS_EMPTY, IS_NOT_EMPTY, IS_NOT_NULL, IS_NULL, JOIN, JOIN_FETCH, KEY, LAST, LEADING, LEFT, LEFT_JOIN, LEFT_JOIN_FETCH, LEFT_OUTER_JOIN, LEFT_OUTER_JOIN_FETCH, LENGTH, LIKE, LOCATE, LOWER, LOWER_THAN, LOWER_THAN_OR_EQUAL, MAX, MEMBER, MEMBER_OF, MIN, MINUS, MOD, MULTIPLICATION, NAMED_PARAMETER, NEW, NOT, NOT_BETWEEN, NOT_EQUAL, NOT_EXISTS, NOT_IN, NOT_LIKE, NOT_MEMBER, NOT_MEMBER_OF, NULL, NULLIF, NULLS, NULLS_FIRST, NULLS_LAST, OBJECT, OF, ON, OPERATOR, OR, ORDER_BY, ORDER_SIBLINGS_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, REGEXP, SCN, SELECT, SET, SIZE, SOME, SQL, SQRT, START_WITH, SUBSTRING, SUM, TABLE, THEN, TIMESTAMP, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE
-
-
Constructor Summary
Constructors Constructor Description LocateExpression(AbstractExpression parent)
Creates a newLocateExpression
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(ExpressionVisitor visitor)
Visits thisExpression
by the givenvisitor
.java.lang.String
getParameterQueryBNFId(int index)
Returns the unique identifier of theJPQLQueryBNF
to be used to parse one of the encapsulated expression at the given position.JPQLQueryBNF
getQueryBNF()
Returns the BNF of thisExpression
.protected boolean
isThirdExpressionOptional()
Determines whether the third expression is an optional expression, which means a valid query can have it or not.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractTripleEncapsulatedExpression
acceptChildren, addChildrenTo, addOrderedEncapsulatedExpressionTo, buildCollectionExpression, findQueryBNF, getFirstExpression, getSecondExpression, getThirdExpression, hasEncapsulatedExpression, hasFirstComma, hasFirstExpression, hasSecondComma, hasSecondExpression, hasSpaceAfterFirstComma, hasSpaceAfterSecondComma, hasThirdExpression, isParsingComplete, parseEncapsulatedExpression, removeEncapsulatedExpression, toParsedTextEncapsulatedExpression
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, parse, shouldParseRightParenthesis, toParsedText
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
acceptUnknownVisitor, acceptUnknownVisitor, buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, calculatePosition, children, findFallBackExpressionFactory, getExpressionFactory, getExpressionRegistry, getGrammar, getIdentifierVersion, getJPAVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, getText, handleAggregate, handleCollection, isAncestor, isIdentifier, isNull, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseUsingExpressionFactory, populatePosition, rebuildActualText, rebuildParsedText, setParent, setText, shouldParseWithFactoryFirst, shouldSkipLiteral, toActualText, toParsedText, toString
-
-
-
-
Constructor Detail
-
LocateExpression
public LocateExpression(AbstractExpression parent)
Creates a newLocateExpression
.- Parameters:
parent
- The parent of this expression
-
-
Method Detail
-
accept
public void accept(ExpressionVisitor visitor)
Visits thisExpression
by the givenvisitor
.- Parameters:
visitor
- TheExpressionVisitor
to visit this object
-
getParameterQueryBNFId
public java.lang.String getParameterQueryBNFId(int index)
Returns the unique identifier of theJPQLQueryBNF
to be used to parse one of the encapsulated expression at the given position.- Specified by:
getParameterQueryBNFId
in classAbstractTripleEncapsulatedExpression
- Parameters:
index
- The position of the encapsulatedExpression
that needs to be parsed within the parenthesis, which starts at position 0- Returns:
- The ID of the
JPQLQueryBNF
to be used to parse one of the encapsulated expression
-
getQueryBNF
public JPQLQueryBNF getQueryBNF()
Returns the BNF of thisExpression
.- Returns:
- The
JPQLQueryBNF
, which represents the grammar of thisExpression
-
isThirdExpressionOptional
protected boolean isThirdExpressionOptional()
Determines whether the third expression is an optional expression, which means a valid query can have it or not.- Specified by:
isThirdExpressionOptional
in classAbstractTripleEncapsulatedExpression
- Returns:
true
if the third expression can either be present or not in a valid query;false
if it's mandatory
-
-