11<?php
22
3+ declare (strict_types = 1 );
4+
35/*
46 * This file is part of the brainbits transcoder package.
57 *
1113
1214namespace Brainbits \Transcoder \Decoder ;
1315
16+ use RuntimeException ;
17+
1418/**
15- * Decoder resolver
16- * Resolves decoders based on supported type
17- *
18- * @author Stephan Wentz <swentz@brainbits.net>
19- * @author Gregor Welters <gwelters@brainbits.net>
19+ * Decoder resolver.
20+ * Resolves decoders based on supported type.
2021 */
2122class DecoderResolver implements DecoderResolverInterface
2223{
@@ -30,34 +31,24 @@ class DecoderResolver implements DecoderResolverInterface
3031 */
3132 public function __construct (array $ decoders = array ())
3233 {
33- $ this ->decoders = $ decoders ;
34- }
35-
36- /**
37- * Add decoder
38- *
39- * @param DecoderInterface $decoder
40- * @return $this
41- */
42- public function addDecoder (DecoderInterface $ decoder )
43- {
44- $ this ->decoders [] = $ decoder ;
45-
46- return $ this ;
34+ foreach ($ decoders as $ decoder ) {
35+ $ this ->addDecoder ($ decoder );
36+ }
4737 }
4838
49- /**
50- * @inheritDoc
51- * @throws \RuntimeException
52- */
53- public function resolve ($ type )
39+ public function resolve (?string $ type ): DecoderInterface
5440 {
5541 foreach ($ this ->decoders as $ decoder ) {
5642 if ($ decoder ->supports ($ type )) {
5743 return $ decoder ;
5844 }
5945 }
6046
61- throw new \RuntimeException ("No decoder supports the requested type $ type " );
47+ throw new RuntimeException ("No decoder supports the requested type $ type " );
48+ }
49+
50+ private function addDecoder (DecoderInterface $ decoder ): void
51+ {
52+ $ this ->decoders [] = $ decoder ;
6253 }
6354}
0 commit comments