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 voidaccept(ExpressionVisitor visitor)Visits thisExpressionby the givenvisitor.java.lang.StringgetParameterQueryBNFId(int index)Returns the unique identifier of theJPQLQueryBNFto be used to parse one of the encapsulated expression at the given position.JPQLQueryBNFgetQueryBNF()Returns the BNF of thisExpression.protected booleanisThirdExpressionOptional()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 thisExpressionby the givenvisitor.- Parameters:
visitor- TheExpressionVisitorto visit this object
-
getParameterQueryBNFId
public java.lang.String getParameterQueryBNFId(int index)
Returns the unique identifier of theJPQLQueryBNFto be used to parse one of the encapsulated expression at the given position.- Specified by:
getParameterQueryBNFIdin classAbstractTripleEncapsulatedExpression- Parameters:
index- The position of the encapsulatedExpressionthat needs to be parsed within the parenthesis, which starts at position 0- Returns:
- The ID of the
JPQLQueryBNFto 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:
isThirdExpressionOptionalin classAbstractTripleEncapsulatedExpression- Returns:
trueif the third expression can either be present or not in a valid query;falseif it's mandatory
-
-