Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 5
CRAP
0.00% covered (danger)
0.00%
0 / 1
Services
0.00% covered (danger)
0.00%
0 / 19
0.00% covered (danger)
0.00%
0 / 5
156
0.00% covered (danger)
0.00%
0 / 1
 containsLocation
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
12
 getIds
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
6
 getNames
0.00% covered (danger)
0.00%
0 / 4
0.00% covered (danger)
0.00%
0 / 1
6
 getCSV
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
2
 isLocale
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
20
1<?php
2
3/**
4 * @package Zmsdldb
5 * @copyright BerlinOnline Stadtportal GmbH & Co. KG
6 **/
7
8namespace BO\Zmsdldb\Collection;
9
10/**
11 * @extends Base<\BO\Zmsdldb\Entity\Service>
12 */
13class Services extends Base
14{
15    /**
16     * @param null|string $locationCsv
17     */
18    public function containsLocation(string|null $locationCsv = null): self
19    {
20        $list = new self();
21        foreach ($this as $service) {
22            if ($service->containsLocation($locationCsv)) {
23                $list->append($service);
24            }
25        }
26        return $list;
27    }
28
29    public function getIds(): array
30    {
31        $idList = array();
32        foreach ($this as $service) {
33            $idList[] = $service['id'];
34        }
35        return $idList;
36    }
37
38    /**
39     * @psalm-api
40     */
41    public function getNames(): array
42    {
43        $nameList = array();
44        foreach ($this as $service) {
45            $nameList[$service['id']] = $service['name'];
46        }
47        return $nameList;
48    }
49
50    /**
51     * @psalm-api
52     */
53    public function getCSV(): string
54    {
55        return implode(',', $this->getIds());
56    }
57
58    /**
59     * @psalm-api
60     *
61     * @return null|self
62     */
63    public function isLocale(mixed $locale): self|null
64    {
65        $list = new self();
66        foreach ($this as $service) {
67            if ($service->isLocale($locale)) {
68                $list->append($service);
69            }
70        }
71        return (count($list)) ? $list : null;
72    }
73}