net.sf.jasperreports.crosstabs.JRCrosstabBucket Maven / Gradle / Ivy
/*
* JasperReports - Free Java Reporting Library.
* Copyright (C) 2001 - 2014 TIBCO Software Inc. All rights reserved.
* http://www.jaspersoft.com
*
* Unless you have purchased a commercial license agreement from Jaspersoft,
* the following license terms apply:
*
* This program is part of JasperReports.
*
* JasperReports is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* JasperReports is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with JasperReports. If not, see .
*/
package net.sf.jasperreports.crosstabs;
import net.sf.jasperreports.engine.JRCloneable;
import net.sf.jasperreports.engine.JRExpression;
import net.sf.jasperreports.engine.analytics.dataset.BucketOrder;
import net.sf.jasperreports.engine.type.SortOrderEnum;
/**
* Crosstab groups bucketing information interface.
*
* The bucketing information consists of the grouping expression
* and sorting information.
* The buckets can be sorted according to the natural sorting (if the values
* implement {@link java.lang.Comparable Comparable}) or using a comparator.
*
* @author Lucian Chirita ([email protected])
*/
public interface JRCrosstabBucket extends JRCloneable
{
/**
* Returns the class of the bucket value. Any class is allowed as long as it is in the classpath at compile and run time.
* @return a Class instance representing the bucket value class
*/
public Class getValueClass();
/**
* Returns the string name of the bucket value class.
*/
public String getValueClassName();
/**
* Returns the bucket sorting type.
*
* The possible values are:
*
* - {@link SortOrderEnum#ASCENDING SortOrderEnum.ASCENDING}
* - {@link SortOrderEnum#DESCENDING SortOrderEnum.DESCENDING}
*
*
* @return the bucket sorting type
*
* @deprecated replaced by {@link #getOrder()}
*/
@Deprecated
public SortOrderEnum getOrderValue();
/**
* Returns the bucket sorting type.
*
* The possible values are:
*
* - {@link BucketOrder#ASCENDING BucketOrder.ASCENDING}
* - {@link BucketOrder#DESCENDING BucketOrder.DESCENDING}
* - {@link BucketOrder#NONE BucketOrder.NONE}
*
*
* @return the bucket sorting type
* @see #getComparatorExpression()
*/
public BucketOrder getOrder();
/**
* Returns the grouping expression.
*
* @return the grouping expression
*/
public JRExpression getExpression();
/**
* Returns the comparator expression.
*
* The result of this expression is used to sort the buckets, in ascending or
* descending order (given by {@link #getOrderValue() getOrderValue()}.
* If the bucket has an order by expression, the comparator will be used to
* compare values as produced by that expression.
* If no comparator expression is specified, the natural order will be used.
*
*
* @return the comparator expression
* @see #getOrderByExpression()
*/
public JRExpression getComparatorExpression();
/**
* Returns an expression that provides order by values for group buckets.
* If not set, the bucket values as returned by {@link #getExpression()}
* are used to order the buckets.
*
*
* The expression is evaluated in the context of the crosstab group and can
* reference measure variables, which evaluate to group totals.
*
*
* @return the order by value expression for the group bucket
*/
public JRExpression getOrderByExpression();
}