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
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:
JPA 2.1:
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])
- Since:
- 2.3
- Version:
- 2.5
-
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, CEILING, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, CONNECT_BY, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DATE, DATETIME, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXCEPT, EXISTS, EXP, EXTRACT, FALSE, FETCH, FIRST, FLOOR, 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, LN, LOCAL, 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, POWER, QUOTE, REGEXP, ROUND, SCN, SELECT, SET, SIGN, SIZE, SOME, SQL, SQRT, START_WITH, SUBSTRING, SUM, TABLE, THEN, TIME, TIMESTAMP, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
accept
(ExpressionVisitor visitor) Visits thisExpression
by the givenvisitor
.getParameterQueryBNFId
(int index) Returns the unique identifier of theJPQLQueryBNF
to be used to parse one of the encapsulated expression at the given position.Returns the BNF of thisExpression
.protected boolean
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 Details
-
LocateExpression
Creates a newLocateExpression
.- Parameters:
parent
- The parent of this expression
-
-
Method Details
-
accept
Description copied from interface:Expression
Visits thisExpression
by the givenvisitor
.- Parameters:
visitor
- TheExpressionVisitor
to visit this object
-
getParameterQueryBNFId
Description copied from class:AbstractTripleEncapsulatedExpression
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
Description copied from interface:Expression
Returns the BNF of thisExpression
.- Returns:
- The
JPQLQueryBNF
, which represents the grammar of thisExpression
-
isThirdExpressionOptional
protected boolean isThirdExpressionOptional()Description copied from class:AbstractTripleEncapsulatedExpression
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
-