org.eclipse.persistence.jpa.jpql.tools.resolver.DerivedDeclaration Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of eclipselink Show documentation
Show all versions of eclipselink Show documentation
EclipseLink build based upon Git transaction 67768906cf
/*
* Copyright (c) 2012, 2018 Oracle and/or its affiliates. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0,
* or the Eclipse Distribution License v. 1.0 which is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
*/
// Contributors:
// Oracle - initial API and implementation
//
package org.eclipse.persistence.jpa.jpql.tools.resolver;
import org.eclipse.persistence.jpa.jpql.ExpressionTools;
/**
* This DerivedDeclaration
represents an identification variable declaration that was
* declared in the FROM
clause of a SELECT
subquery. The
* "root" object is not an entity name but a derived path expression.
*
* @see org.eclipse.persistence.jpa.jpql.parser.IdentificationVariableDeclaration IdentificationVariableDeclaration
*
* @version 2.5
* @since 2.5
* @author Pascal Filion
*/
public class DerivedDeclaration extends AbstractRangeDeclaration {
/**
* Creates a new DerivedDeclaration
.
*/
public DerivedDeclaration() {
super();
}
/**
* If {@link org.eclipse.persistence.jpa.jpql.parser.CollectionMemberDeclaration#isDerived()} is
* true
, then returns the identification variable used in the derived path expression
* that is defined in the superquery, otherwise returns an empty string.
*
* @return The identification variable from the superquery if the root path is a derived path
* expression
*/
public String getSuperqueryVariableName() {
int index = rootPath.indexOf('.');
return (index > -1) ? rootPath.substring(0, index) : ExpressionTools.EMPTY_STRING;
}
/**
* {@inheritDoc}
*/
public Type getType() {
return Type.DERIVED;
}
}