Initial xentral_oss_20.3.c9ffacf
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace Xentral\Widgets\DataTable\Service;
|
||||
|
||||
use Xentral\Widgets\DataTable\DataTableBuildConfig;
|
||||
use Xentral\Widgets\DataTable\DataTableInterface;
|
||||
use Xentral\Widgets\DataTable\Result\DataTableDataResult;
|
||||
use Xentral\Widgets\DataTable\Result\DataTableHtmlResult;
|
||||
|
||||
final class DataTableService
|
||||
{
|
||||
/** @var DataTableBuilder $builder */
|
||||
private $builder;
|
||||
|
||||
/** @var DataTableRenderer $renderer */
|
||||
private $renderer;
|
||||
|
||||
/** @var DataTableFetcher $fetcher */
|
||||
private $fetcher;
|
||||
|
||||
/**
|
||||
* @param DataTableBuilder $builder
|
||||
* @param DataTableRenderer $renderer
|
||||
* @param DataTableFetcher $fetcher
|
||||
*/
|
||||
public function __construct(DataTableBuilder $builder, DataTableRenderer $renderer, DataTableFetcher $fetcher)
|
||||
{
|
||||
$this->builder = $builder;
|
||||
$this->renderer = $renderer;
|
||||
$this->fetcher = $fetcher;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DataTableBuildConfig $buildConfig
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function canFetchData(DataTableBuildConfig $buildConfig)
|
||||
{
|
||||
return $this->fetcher->canFetchData($buildConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DataTableBuildConfig $buildConfig
|
||||
*
|
||||
* @return DataTableDataResult
|
||||
*/
|
||||
public function fetchData(DataTableBuildConfig $buildConfig)
|
||||
{
|
||||
$dataTable = $this->buildTable($buildConfig);
|
||||
|
||||
return $this->fetcher->fetchData($dataTable);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DataTableBuildConfig $buildConfig
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function canExportData(DataTableBuildConfig $buildConfig)
|
||||
{
|
||||
return $this->fetcher->canExportData($buildConfig);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DataTableBuildConfig $buildConfig
|
||||
*
|
||||
* @return string Path to temporary file
|
||||
*/
|
||||
public function exportData(DataTableBuildConfig $buildConfig)
|
||||
{
|
||||
$dataTable = $this->buildTable($buildConfig);
|
||||
|
||||
return $this->fetcher->exportData($dataTable);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DataTableBuildConfig $buildConfig
|
||||
*
|
||||
* @return DataTableHtmlResult
|
||||
*/
|
||||
public function renderHtml(DataTableBuildConfig $buildConfig)
|
||||
{
|
||||
$dataTable = $this->buildTable($buildConfig);
|
||||
|
||||
return $this->renderer->createHtmlResult($dataTable);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param DataTableBuildConfig $buildConfig
|
||||
*
|
||||
* @return DataTableInterface
|
||||
*/
|
||||
private function buildTable(DataTableBuildConfig $buildConfig)
|
||||
{
|
||||
return $this->builder->buildTable($buildConfig);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user