
com.samskivert.depot.impl.expression.AggregateFun Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of depot Show documentation
Show all versions of depot Show documentation
A library for relational-database-based persistence in Java.
//
// Depot library - a Java relational persistence library
// https://github.com/threerings/depot/blob/master/LICENSE
package com.samskivert.depot.impl.expression;
import com.samskivert.depot.expression.SQLExpression;
import com.samskivert.depot.impl.FragmentVisitor;
import com.samskivert.depot.impl.expression.Function.OneArgFun;
public abstract class AggregateFun extends OneArgFun
{
public static class Average extends AggregateFun {
public Average (SQLExpression extends T> argument) {
this(argument, false);
}
public Average (SQLExpression extends T> argument, boolean distinct) {
super(argument, distinct);
}
public Object accept (FragmentVisitor> visitor) {
return visitor.visit(this);
}
public String getCanonicalFunctionName () {
return "average";
}
}
public static class Count extends AggregateFun {
public Count (SQLExpression> argument) {
this(argument, false);
}
public Count (SQLExpression> argument, boolean distinct) {
super(argument, distinct);
}
public Object accept (FragmentVisitor> visitor) {
return visitor.visit(this);
}
public String getCanonicalFunctionName () {
return "count";
}
}
public static class Every extends AggregateFun {
public Every (SQLExpression> argument) {
this(argument, false);
}
public Every (SQLExpression> argument, boolean distinct) {
super(argument, distinct);
}
public Object accept (FragmentVisitor> visitor) {
return visitor.visit(this);
}
public String getCanonicalFunctionName () {
return "every";
}
}
public static class Max extends AggregateFun {
public Max (SQLExpression extends T> argument) {
this(argument, false);
}
public Max (SQLExpression extends T> argument, boolean distinct) {
super(argument, distinct);
}
public Object accept (FragmentVisitor> visitor) {
return visitor.visit(this);
}
public String getCanonicalFunctionName () {
return "max";
}
}
public static class Min extends AggregateFun {
public Min (SQLExpression extends T> argument) {
this(argument, false);
}
public Min (SQLExpression extends T> argument, boolean distinct) {
super(argument, distinct);
}
public Object accept (FragmentVisitor> visitor) {
return visitor.visit(this);
}
public String getCanonicalFunctionName () {
return "min";
}
}
public static class Sum extends AggregateFun {
public Sum (SQLExpression extends T> argument) {
this(argument, false);
}
public Sum (SQLExpression extends T> argument, boolean distinct) {
super(argument, distinct);
}
public Object accept (FragmentVisitor> visitor) {
return visitor.visit(this);
}
public String getCanonicalFunctionName () {
return "sum";
}
}
public AggregateFun (SQLExpression> argument, boolean distinct)
{
super(argument);
_distinct = distinct;
}
public boolean isDistinct ()
{
return _distinct;
}
@Override
public String toString ()
{
return getCanonicalFunctionName() + "(" + (_distinct ? "distinct " : "") + _arg + ")";
}
protected boolean _distinct;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy