Completed
Push — master ( 7cf7a4...79ea9a )
by Sébastien
02:51
created

JasperReportRunner   A

Complexity

Total Complexity 2

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 2
lcom 1
cbo 2
dl 0
loc 26
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A compileReport() 0 8 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Soluble\Jasper\ReportRunner;
6
7
use Soluble\Japha\Bridge\Adapter as BridgeAdapter;
8
use Soluble\Japha\Interfaces\JavaObject;
9
use Soluble\Jasper\Report;
10
11
class JasperReportRunner implements ReportRunnerInterface
12
{
13
    /**
14
     * @var BridgeAdapter
15
     */
16
    protected $ba;
17
18
    public function __construct(BridgeAdapter $bridgeAdapter)
19
    {
20
        $this->ba = $bridgeAdapter;
21
    }
22
23
    /**
24
     * @param Report $report
25
     *
26
     * @return JavaObject Java('net.sf.jasperreports.engine.JasperReport')
27
     */
28
    public function compileReport(Report $report): JavaObject
29
    {
30
        $reportFile = $report->getReportFile();
31
        $compileManager = $this->ba->javaClass('net.sf.jasperreports.engine.JasperCompileManager');
32
        $compiledReport = $compileManager->compileReport($reportFile);
33
34
        return $compiledReport;
35
    }
36
}
37