Completed
Push — master ( 2e002a...ff3a53 )
by Mario
04:03
created

HydratorFactory::build()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 18
rs 9.4285
cc 1
eloc 15
nc 1
nop 0
1
<?php
2
3
namespace Marek\Toggable\Factory\Hydrator;
4
5
use Marek\Toggable\Factory\FactoryInterface;
6
use Marek\Toggable\Hydrator\AggregateHydrator;
7
use Marek\Toggable\Hydrator\Client\ClientHydrator;
8
use Marek\Toggable\Hydrator\Dashboard\ActivityHydrator;
9
use Marek\Toggable\Hydrator\Dashboard\MostActiveUserHydrator;
10
use Marek\Toggable\Hydrator\Project\ProjectHydrator;
11
use Marek\Toggable\Hydrator\Project\UserHydrator as ProjectUserHydrator;
12
use Marek\Toggable\Hydrator\Tag\TagHydrator;
13
use Marek\Toggable\Hydrator\Task\TaskHydrator;
14
use Marek\Toggable\Hydrator\TimeEntry\TimeEntryHydrator;
15
use Marek\Toggable\Hydrator\User\UserHydrator;
16
use Marek\Toggable\Hydrator\Workspace\SubscriptionHydrator;
17
use Marek\Toggable\Hydrator\Workspace\UserHydrator as WorkspaceUserHydrator;
18
use Marek\Toggable\Hydrator\Workspace\WorkspaceHydrator;
19
20
/**
21
 * Class HydratorFactory
22
 * @package Marek\Toggable\Factory\Hydrator
23
 */
24
class HydratorFactory implements FactoryInterface
25
{
26
    /**
27
     * @inheritDoc
28
     */
29
    public function build()
30
    {
31
        $aggregateHydrator = new AggregateHydrator();
32
        $aggregateHydrator->add(new ClientHydrator());
33
        $aggregateHydrator->add(new ActivityHydrator());
34
        $aggregateHydrator->add(new MostActiveUserHydrator());
35
        $aggregateHydrator->add(new ProjectHydrator());
36
        $aggregateHydrator->add(new ProjectUserHydrator());
37
        $aggregateHydrator->add(new TagHydrator());
38
        $aggregateHydrator->add(new TaskHydrator());
39
        $aggregateHydrator->add(new TimeEntryHydrator());
40
        $aggregateHydrator->add(new UserHydrator());
41
        $aggregateHydrator->add(new SubscriptionHydrator());
42
        $aggregateHydrator->add(new WorkspaceUserHydrator());
43
        $aggregateHydrator->add(new WorkspaceHydrator());
44
45
        return $aggregateHydrator;
46
    }
47
}
48