org.eclipse.persistence.jpa.jpql.parser.SumFunction 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 f2b9fc5
/*
* Copyright (c) 2006, 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.parser;
/**
* One of the aggregate functions. The arguments must be numeric.
*
* SUM returns Long
when applied to state-fields of integral types (other than
* BigInteger
); Double
when applied to state-fields of floating point
* types; BigInteger
when applied to state-fields of type BigInteger
; and
* BigDecimal
when applied to state-fields of type BigDecimal
. If
* SUM, AVG, MAX, or MIN is used, and there are no values to which the
* aggregate function can be applied, the result of the aggregate function is NULL
. If
* COUNT
is used, and there are no values to which COUNT can be applied, the
* result of the aggregate function is 0.
*
*
BNF: expression ::= SUM([DISTINCT] state_field_path_expression)
*
* @version 2.5
* @since 2.3
* @author Pascal Filion
*/
public final class SumFunction extends AggregateFunction {
/**
* Creates a new SumFunction
.
*
* @param parent The parent of this expression
*/
public SumFunction(AbstractExpression parent) {
super(parent, SUM);
}
/**
* {@inheritDoc}
*/
public void accept(ExpressionVisitor visitor) {
visitor.visit(this);
}
}