package gov.samhsa.consent2share.infrastructure.report; import java.util.Collection; import java.util.function.Supplier; import net.sf.jasperreports.engine.JRDataSource; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; /** * A factory for creating JRDataSource objects. */ public class JRDataSourceFactory { /** * This class cannot be instantiated. */ private JRDataSourceFactory() { } /** * Factory method to create a new {@link JRDataSource} instance from a * {@code Supplier<? extends Collection<T>>} type. * * @param <T> * the generic type * @param dataProvider * the data provider * @return the JR data source */ public static final <T> JRDataSource newJRDataSource( Supplier<? extends Collection<T>> dataProvider) { return new JRBeanCollectionDataSource(dataProvider.get()); } }