Completed
Push — master ( 63546b...ea4d88 )
by mw
08:24
created

ResultPrinterReflector::addParameters()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 21
rs 9.584
c 0
b 0
f 0
cc 3
nc 4
nop 2
1
<?php
2
3
namespace SRF\Tests;
4
5
use ReflectionClass;
6
use SMW\Query\ResultPrinter;
7
8
/**
9
 * @license GNU GPL v2+
10
 * @since 3.1
11
 *
12
 * @author mwjames
13
 */
14
class ResultPrinterReflector {
15
16
	/**
17
	 * Helper method sets result printer parameters
18
	 *
19
	 * @param ResultPrinter $instance
20
	 * @param array $parameters
21
	 *
22
	 * @return ResultPrinter
23
	 */
24
	public function addParameters( ResultPrinter $instance, array $parameters ) {
25
26
		$reflector = new ReflectionClass( $instance );
27
		$params = $reflector->getProperty( 'params' );
28
		$params->setAccessible( true );
29
		$params->setValue( $instance, $parameters );
30
31
		if ( isset( $parameters['searchlabel'] ) ) {
32
			$searchlabel = $reflector->getProperty( 'mSearchlabel' );
33
			$searchlabel->setAccessible( true );
34
			$searchlabel->setValue( $instance, $parameters['searchlabel'] );
35
		}
36
37
		if ( isset( $parameters['headers'] ) ) {
38
			$searchlabel = $reflector->getProperty( 'mShowHeaders' );
39
			$searchlabel->setAccessible( true );
40
			$searchlabel->setValue( $instance, $parameters['headers'] );
41
		}
42
43
		return $instance;
44
	}
45
46
	public function invoke( ResultPrinter $instance, $queryResult, $outputMode ) {
47
48
		$reflector = new ReflectionClass(  $instance );
49
		$method = $reflector->getMethod( 'getResultText' );
50
		$method->setAccessible( true );
51
52
		return $method->invoke( $instance, $queryResult, $outputMode );
53
	}
54
55
}