net.sf.dynamicreports.report.builder.DynamicReports Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dynamicreports-core Show documentation
Show all versions of dynamicreports-core Show documentation
DynamicReports is an open source Java reporting library based on JasperReports. It allows to create dynamic report designs and it doesn't need a visual report designer.
You can very quickly create reports and produce documents that can be displayed, printed or exported into many popular formats such as PDF, Excel, Word and others.
/**
* DynamicReports - Free Java reporting library for creating reports dynamically
*
* Copyright (C) 2010 - 2016 Ricardo Mariaca
* http://www.dynamicreports.org
*
* This file is part of DynamicReports.
*
* DynamicReports 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.
*
* DynamicReports 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 DynamicReports. If not, see .
*/
package net.sf.dynamicreports.report.builder;
import net.sf.dynamicreports.jasper.builder.JasperConcatenatedReportBuilder;
import net.sf.dynamicreports.jasper.builder.JasperReportBuilder;
import net.sf.dynamicreports.jasper.builder.export.ExporterBuilders;
import net.sf.dynamicreports.jasper.definition.JasperReportHandler;
import net.sf.dynamicreports.report.builder.barcode.BarcodeBuilders;
import net.sf.dynamicreports.report.builder.chart.ChartBuilders;
import net.sf.dynamicreports.report.builder.column.ColumnBuilders;
import net.sf.dynamicreports.report.builder.column.TextColumnBuilder;
import net.sf.dynamicreports.report.builder.column.ValueColumnBuilder;
import net.sf.dynamicreports.report.builder.component.ComponentBuilders;
import net.sf.dynamicreports.report.builder.condition.ConditionBuilders;
import net.sf.dynamicreports.report.builder.crosstab.CrosstabBuilders;
import net.sf.dynamicreports.report.builder.datatype.DataTypeBuilders;
import net.sf.dynamicreports.report.builder.datatype.DataTypes;
import net.sf.dynamicreports.report.builder.expression.ExpressionBuilders;
import net.sf.dynamicreports.report.builder.grid.GridBuilders;
import net.sf.dynamicreports.report.builder.group.GroupBuilders;
import net.sf.dynamicreports.report.builder.style.StyleBuilders;
import net.sf.dynamicreports.report.builder.subtotal.SubtotalBuilders;
import net.sf.dynamicreports.report.builder.tableofcontents.TableOfContentsCustomizerBuilder;
import net.sf.dynamicreports.report.builder.tableofcontents.TableOfContentsHeadingBuilder;
import net.sf.dynamicreports.report.constant.Calculation;
import net.sf.dynamicreports.report.constant.OrderType;
import net.sf.dynamicreports.report.definition.datatype.DRIDataType;
import net.sf.dynamicreports.report.definition.expression.DRIExpression;
import net.sf.dynamicreports.report.exception.DRException;
import org.apache.commons.lang3.Validate;
/**
* @author Ricardo Mariaca ([email protected])
*/
public class DynamicReports {
/**
* A set of methods of creating report columns.
* It is used to display data in a multi-column layout.
*/
public static final ColumnBuilders col = new ColumnBuilders();
/**
* A set of methods of customizing columns layout.
*/
public static final GridBuilders grid = new GridBuilders();
/**
* A set of methods of creating report groups.
*/
public static final GroupBuilders grp = new GroupBuilders();
/**
* A set of methods of creating column subtotals.
*/
public static final SubtotalBuilders sbt = new SubtotalBuilders();
/**
* A set of methods of creating and customizing styles.
*/
public static final StyleBuilders stl = new StyleBuilders();
/**
* A set of methods of creating components.
*/
public static final ComponentBuilders cmp = new ComponentBuilders();
/**
* A set of build in expressions.
* Expressions are used to define various calculations, conditions, text field content, specific report groups, etc.
*/
public static final ExpressionBuilders exp = new ExpressionBuilders();
/**
* A set of build in condition expressions.
*/
public static final ConditionBuilders cnd = new ConditionBuilders();
/**
* A set of build in data types.
*/
public static final DataTypeBuilders type = new DataTypeBuilders();
/**
* A set of methods of creating and customizing charts.
*/
public static final ChartBuilders cht = new ChartBuilders();
/**
* A set of methods of creating exporters.
*/
public static final ExporterBuilders export = new ExporterBuilders();
/**
* A set of methods of creating barcodes.
*/
public static final BarcodeBuilders bcode = new BarcodeBuilders();
/**
* A set of methods of creating and customizing crosstabs.
*/
public static final CrosstabBuilders ctab = new CrosstabBuilders();
/**
* Creates a new report builder.
* The most used report builder for creating reports. It allows constructing and customizing the whole report content.
*
* @return a report builder
*/
public static JasperReportBuilder report() {
return new JasperReportBuilder();
}
/**
* Creates a new concatenated report builder.
* This report builder allows concatenating several separated reports into one single document.
*
* @return a report builder
*/
public static JasperConcatenatedReportBuilder concatenatedReport() {
return new JasperConcatenatedReportBuilder();
}
/**
* Creates a new concatenated report builder.
* This report builder allows concatenating several separated reports into one single document.
*
* @return a report builder
*/
public static JasperConcatenatedReportBuilder concatenatedReport(JasperReportHandler jasperReportHandler) {
return new JasperConcatenatedReportBuilder(jasperReportHandler);
}
//field
public static FieldBuilder field(String name, Class valueClass) {
FieldBuilder fieldBuilder = new FieldBuilder(name, valueClass);
try {
DRIDataType dataType = DataTypes.detectType(valueClass);
fieldBuilder.setDataType(dataType);
} catch (DRException e) {
}
return fieldBuilder;
}
public static FieldBuilder field(String name, DRIDataType dataType) {
Validate.notNull(dataType, "dataType must not be null");
FieldBuilder fieldBuilder = new FieldBuilder(name, dataType.getValueClass());
fieldBuilder.setDataType(dataType);
return fieldBuilder;
}
//variable
public static VariableBuilder variable(ValueColumnBuilder column, Calculation calculation) {
Validate.notNull(column, "column must not be null");
return new VariableBuilder(column, calculation);
}
public static VariableBuilder variable(String name, ValueColumnBuilder column, Calculation calculation) {
Validate.notNull(column, "column must not be null");
return new VariableBuilder(name, column, calculation);
}
public static VariableBuilder variable(FieldBuilder field, Calculation calculation) {
Validate.notNull(field, "field must not be null");
return new VariableBuilder(field, calculation);
}
public static VariableBuilder variable(String name, FieldBuilder field, Calculation calculation) {
return new VariableBuilder(name, field, calculation);
}
public static VariableBuilder variable(String fieldName, Class valueClass, Calculation calculation) {
return new VariableBuilder(field(fieldName, valueClass), calculation);
}
public static VariableBuilder variable(String name, String fieldName, Class valueClass, Calculation calculation) {
return new VariableBuilder(name, field(fieldName, valueClass), calculation);
}
public static VariableBuilder variable(DRIExpression expression, Calculation calculation) {
return new VariableBuilder(expression, calculation);
}
public static VariableBuilder variable(String name, DRIExpression expression, Calculation calculation) {
return new VariableBuilder(name, expression, calculation);
}
//sort
public static SortBuilder asc(TextColumnBuilder column) {
return new SortBuilder(column).setOrderType(OrderType.ASCENDING);
}
public static SortBuilder asc(FieldBuilder field) {
return new SortBuilder(field).setOrderType(OrderType.ASCENDING);
}
public static SortBuilder asc(String fieldName, Class valueClass) {
return new SortBuilder(field(fieldName, valueClass)).setOrderType(OrderType.ASCENDING);
}
public static SortBuilder asc(VariableBuilder variable) {
return new SortBuilder(variable).setOrderType(OrderType.ASCENDING);
}
public static SortBuilder asc(DRIExpression expression) {
return new SortBuilder(expression).setOrderType(OrderType.ASCENDING);
}
public static SortBuilder desc(TextColumnBuilder column) {
return new SortBuilder(column).setOrderType(OrderType.DESCENDING);
}
public static SortBuilder desc(FieldBuilder field) {
return new SortBuilder(field).setOrderType(OrderType.DESCENDING);
}
public static SortBuilder desc(String fieldName, Class valueClass) {
return new SortBuilder(field(fieldName, valueClass)).setOrderType(OrderType.DESCENDING);
}
public static SortBuilder desc(VariableBuilder variable) {
return new SortBuilder(variable).setOrderType(OrderType.DESCENDING);
}
public static SortBuilder desc(DRIExpression expression) {
return new SortBuilder(expression).setOrderType(OrderType.DESCENDING);
}
//hyperLink
public static HyperLinkBuilder hyperLink() {
return new HyperLinkBuilder();
}
public static HyperLinkBuilder hyperLink(String link) {
return new HyperLinkBuilder(link);
}
public static HyperLinkBuilder hyperLink(DRIExpression linkExpression) {
return new HyperLinkBuilder(linkExpression);
}
//margin
public static MarginBuilder margin() {
return new MarginBuilder();
}
public static MarginBuilder margin(int margin) {
return new MarginBuilder(margin);
}
//parameter
public static ParameterBuilder parameter(String name, T value) {
return new ParameterBuilder(name, value);
}
public static ParameterBuilder parameter(String name, Class valueClass) {
return new ParameterBuilder(name, valueClass);
}
//query
public static QueryBuilder query(String text, String language) {
return new QueryBuilder(text, language);
}
//units
public static int cm(Number value) {
return Units.cm(value);
}
public static int inch(Number value) {
return Units.inch(value);
}
public static int mm(Number value) {
return Units.mm(value);
}
//template
public static ReportTemplateBuilder template() {
return new ReportTemplateBuilder();
}
//table of contents
public static TableOfContentsCustomizerBuilder tableOfContentsCustomizer() {
return new TableOfContentsCustomizerBuilder();
}
public static TableOfContentsHeadingBuilder tableOfContentsHeading() {
return new TableOfContentsHeadingBuilder();
}
public static TableOfContentsHeadingBuilder tableOfContentsHeading(String label) {
return new TableOfContentsHeadingBuilder().setLabel(label);
}
//dataset
public static DatasetBuilder dataset() {
return new DatasetBuilder();
}
}