File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ <?php declare (strict_types=1 );
2+
3+ namespace Loki \Components \Location \AddressParser ;
4+
5+ use Loki \Components \Location \Address ;
6+
7+ interface AddressParserInterface
8+ {
9+ public function isEnabled (): bool ;
10+ public function parse (Address $ address ): Address ;
11+ }
Original file line number Diff line number Diff line change 1+ <?php declare (strict_types=1 );
2+
3+ namespace Loki \Components \Location ;
4+
5+ use Loki \Components \Location \AddressParser \AddressParserInterface ;
6+
7+ class AddressParserComposite implements AddressParserInterface
8+ {
9+ public function __construct (
10+ private $ addressParsers = []
11+ ) {
12+ }
13+
14+ public function isEnabled (): bool
15+ {
16+ return true ;
17+ }
18+
19+ public function parse (Address $ address ): Address
20+ {
21+ if (empty ($ this ->addressParsers )) {
22+ return $ address ;
23+ }
24+
25+ foreach ($ this ->addressParsers as $ addressParser ) {
26+ if (false === $ addressParser instanceof AddressParserInterface) {
27+ continue ;
28+ }
29+
30+ $ address = $ addressParser ->parse ($ address );
31+ }
32+
33+ return $ address ;
34+ }
35+ }
You can’t perform that action at this time.
0 commit comments