Completed
Push — master ( 5d51b4...87fdd9 )
by Paul
10s
created

VirtualToBusinessPageTransformer::transform()   B

Complexity

Conditions 5
Paths 6

Size

Total Lines 23
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 23
rs 8.5906
cc 5
eloc 14
nc 6
nop 1
1
<?php
2
3
namespace Victoire\Bundle\BusinessPageBundle\Transformer;
4
5
use Victoire\Bundle\BusinessPageBundle\Entity\BusinessPage;
6
use Victoire\Bundle\BusinessPageBundle\Entity\VirtualBusinessPage;
7
8
class VirtualToBusinessPageTransformer
9
{
10
    public function transform(VirtualBusinessPage &$sourceObject)
11
    {
12
        $bp = new BusinessPage();
13
14
        $sourceReflection = new \ReflectionObject($sourceObject);
15
        $sourceProperties = $sourceReflection->getProperties();
16
        foreach ($sourceProperties as $sourceProperty) {
17
            $sourceProperty->setAccessible(true);
18
            $name = $sourceProperty->getName();
19
20
            $value = $sourceProperty->getValue($sourceObject);
21
            $method = 'set'.ucfirst($name);
22
            if (method_exists($bp, $method) && $value !== null) {
23
                $bp->$method($value);
24
            }
25
        }
26
27
        foreach ($sourceObject->getTranslations() as $translation) {
28
            $bp->addTranslation($translation);
29
        }
30
31
        $sourceObject = $bp;
32
    }
33
}
34