Completed
Push — master ( 111bcd...99ca87 )
by Andrey
26:30
created

ModuleOptions::getVisitor()   A

Complexity

Conditions 3
Paths 3

Size

Total Lines 15
Code Lines 8

Duplication

Lines 15
Ratio 100 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 15
loc 15
rs 9.4285
cc 3
eloc 8
nc 3
nop 1
1
<?php
2
/**
3
 * @link    https://github.com/nnx-framework/jms-serializer-module
4
 * @author  Malofeykin Andrey  <[email protected]>
5
 */
6
namespace Nnx\JmsSerializerModule\Options;
7
8
use Zend\Stdlib\AbstractOptions;
9
use Nnx\ModuleOptions\ModuleOptionsInterface;
10
11
12
/**
13
 * Class ModuleOptions
14
 *
15
 * @package Nnx\JmsSerializerModule\Options
16
 */
17
class ModuleOptions extends AbstractOptions implements ModuleOptionsInterface
18
{
19
    /**
20
     * Данные для конфига сериалайзеров
21
     *
22
     * @var array
23
     */
24
    protected $serializers = [];
25
26
    /**
27
     * Конфиги сериалайзеров
28
     *
29
     * @var SerializerPluginOptions[]
30
     */
31
    protected $serializersOptions = [];
32
33
    /**
34
     * Данные для фабрик метеданных сериалайзеров
35
     *
36
     * @var array
37
     */
38
    protected $metadataFactories = [];
39
40
    /**
41
     * Конфиги для фабрик метаданных
42
     *
43
     * @var MetadataFactoryPluginOptions[]
44
     */
45
    protected $metadataFactoriesOptions = [];
46
47
    /**
48
     * Данные для хранилища хенделеров сериалайзера
49
     *
50
     * @var array
51
     */
52
    protected $handlerRegistries = [];
53
54
    /**
55
     * Хранилища хенделеров сериалайзера
56
     *
57
     * @var PluginOptions[]
58
     */
59
    protected $handlerRegistriesOptions = [];
60
61
    /**
62
     * Данные описывающие драйверы метаданных
63
     *
64
     * @var array
65
     */
66
    protected $metadataDrivers = [];
67
68
    /**
69
     * Конфиги драйверов метаданных
70
     *
71
     * @var PluginOptions[]
72
     */
73
    protected $metadataDriversOptions = [];
74
75
    /**
76
     * Данные описывающие конструкторы объектов
77
     *
78
     * @var array
79
     */
80
    protected $objectConstructors = [];
81
82
    /**
83
     * Конфиги конструкторов объектов
84
     *
85
     * @var PluginOptions[]
86
     */
87
    protected $objectConstructorsOptions = [];
88
89
    /**
90
     * Набор плагинов используемх для сериализации
91
     *
92
     * @var array
93
     */
94
    protected $serializationVisitors = [];
95
96
    /**
97
     * Набор плагинов используемх для десериализации
98
     *
99
     * @var array
100
     */
101
    protected $deserializationVisitors = [];
102
103
    /**
104
     * Набор данных описывающих диспетчеры событий
105
     *
106
     * @var array
107
     */
108
    protected $eventDispatchers = [];
109
110
    /**
111
     * Устанавливает конфиги описывающие диспетчеры событий
112
     *
113
     * @var array
114
     */
115
    protected $eventDispatchersOptions = [];
116
117
    /**
118
     * Имя сервиса для получения кеша доктрины
119
     *
120
     * @var string
121
     */
122
    protected $annotationCache;
123
124
    /**
125
     * Данные описывающие FileLocator используемые в драйверах метаданных
126
     *
127
     * @var array
128
     */
129
    protected $fileLocators = [];
130
131
    /**
132
     * Конфиги описывающие FileLocator используемые в драйверах метаданных
133
     *
134
     * @var PluginOptions[]
135
     */
136
    protected $fileLocatorsOptions = [];
137
138
    /**
139
     * Данные описывающие Visitor'ы
140
     *
141
     * @var array
142
     */
143
    protected $visitors = [];
144
145
    /**
146
     * Конфиги описывающие Visitor'ы
147
     *
148
     * @var PluginOptions[]
149
     */
150
    protected $visitorsOptions = [];
151
152
    /**
153
     * Настройки стратегий для работы с именами свойств объектов
154
     *
155
     * @var array
156
     */
157
    protected $namingStrategies = [];
158
159
    /**
160
     * Конфиги стратегий для работы с именами свойств объектов
161
     *
162
     * @var PluginOptions[]
163
     */
164
    protected $namingStrategiesOptions = [];
165
166
    /**
167
     * Устанавливает информацию о сериалайзерах
168
     *
169
     * @param array $serializer
170
     *
171
     * @return $this
172
     */
173
    public function setSerializers(array $serializer)
174
    {
175
        $this->serializers = $serializer;
176
        $this->serializersOptions = [];
177
178
        return $this;
179
    }
180
181
    /**
182
     * Определяет есть ли сериалайзер с заданным именем
183
     *
184
     * @param string $serializerName
185
     *
186
     * @return boolean
187
     */
188
    public function hasSerializer($serializerName)
189
    {
190
        return array_key_exists($serializerName, $this->serializers);
191
    }
192
193
    /**
194
     * Возвращает конфиг сериалайзера с заданным именем
195
     *
196
     * @param $serializerName
197
     *
198
     * @return SerializerPluginOptions
199
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
200
     */
201
    public function getSerializer($serializerName)
202
    {
203
        if (array_key_exists($serializerName, $this->serializersOptions)) {
204
            return $this->serializersOptions[$serializerName];
205
        }
206
207
        if (!$this->hasSerializer($serializerName)) {
208
            $errMsg = sprintf('Config for serializer %s not found', $serializerName);
209
            throw new Exception\InvalidArgumentException($errMsg);
210
        }
211
212
        $this->serializersOptions[$serializerName] = new SerializerPluginOptions($this->serializers[$serializerName]);
213
214
        return $this->serializersOptions[$serializerName];
215
    }
216
217
    /**
218
     * Устанавливает данные для фабрик метеданных сериалайзеров
219
     *
220
     * @param array $metadataFactories
221
     *
222
     * @return $this
223
     */
224
    public function setMetadataFactories(array $metadataFactories)
225
    {
226
        $this->metadataFactories = $metadataFactories;
227
        $this->metadataFactoriesOptions = [];
228
229
        return $this;
230
    }
231
232
233
    /**
234
     * Определяет есть ли фабрика метаданных с заданныим именем
235
     *
236
     * @param string $metadataFactoryName
237
     *
238
     * @return boolean
239
     */
240
    public function hasMetadataFactory($metadataFactoryName)
241
    {
242
        return array_key_exists($metadataFactoryName, $this->metadataFactories);
243
    }
244
245
    /**
246
     * Возвращает конфиг фабрики метаданных с заданным именем
247
     *
248
     * @param $metadataFactoryName
249
     *
250
     * @return MetadataFactoryPluginOptions
251
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
252
     */
253
    public function gasMetadataFactory($metadataFactoryName)
254
    {
255
        if (array_key_exists($metadataFactoryName, $this->metadataFactoriesOptions)) {
256
            return $this->metadataFactoriesOptions[$metadataFactoryName];
257
        }
258
259
        if (!$this->hasMetadataFactory($metadataFactoryName)) {
260
            $errMsg = sprintf('Config for metadata factory %s not found', $metadataFactoryName);
261
            throw new Exception\InvalidArgumentException($errMsg);
262
        }
263
264
        $this->metadataFactoriesOptions[$metadataFactoryName] = new MetadataFactoryPluginOptions($this->metadataFactories[$metadataFactoryName]);
265
266
        return $this->metadataFactoriesOptions[$metadataFactoryName];
267
    }
268
269
    /**
270
     * Устанавливает данные для хранилища хенделеров сериалайзера
271
     *
272
     * @param array $handlerRegistries
273
     *
274
     * @return $this
275
     */
276
    public function setHandlerRegistries(array $handlerRegistries)
277
    {
278
        $this->handlerRegistries = $handlerRegistries;
279
        $this->handlerRegistriesOptions = [];
280
281
        return $this;
282
    }
283
284
    /**
285
     * Определяет есть ли хранилище хенделеров сериалайзера с заданныим именем
286
     *
287
     * @param string $handlerRegistryName
288
     *
289
     * @return boolean
290
     */
291
    public function hasHandlerRegistry($handlerRegistryName)
292
    {
293
        return array_key_exists($handlerRegistryName, $this->handlerRegistries);
294
    }
295
296
    /**
297
     * Возвращает конфиг хранилища хенделеров сериалайзера с заданныим именем
298
     *
299
     * @param $handlerRegistryName
300
     *
301
     * @return PluginOptions
302
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
303
     */
304 View Code Duplication
    public function getHandlerRegistry($handlerRegistryName)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
305
    {
306
        if (array_key_exists($handlerRegistryName, $this->handlerRegistriesOptions)) {
307
            return $this->handlerRegistriesOptions[$handlerRegistryName];
308
        }
309
310
        if (!$this->hasHandlerRegistry($handlerRegistryName)) {
311
            $errMsg = sprintf('Handler registry %s not found', $handlerRegistryName);
312
            throw new Exception\InvalidArgumentException($errMsg);
313
        }
314
315
        $this->handlerRegistriesOptions[$handlerRegistryName] = new PluginOptions($this->handlerRegistries[$handlerRegistryName]);
316
317
        return $this->handlerRegistriesOptions[$handlerRegistryName];
318
    }
319
320
    /**
321
     * Устанавливает данные описывающие драйверы метаданных
322
     *
323
     * @param array $metadataDrivers
324
     *
325
     * @return $this
326
     */
327
    public function setMetadataDrivers(array $metadataDrivers)
328
    {
329
        $this->metadataDrivers = $metadataDrivers;
330
        $this->metadataDriversOptions = [];
331
332
        return $this;
333
    }
334
335
336
    /**
337
     * Проверяет есть ли драйвер метаданных с заданным именем
338
     *
339
     * @param string $metadataDriverName
340
     *
341
     * @return boolean
342
     */
343
    public function hasMetadataDriver($metadataDriverName)
344
    {
345
        return array_key_exists($metadataDriverName, $this->metadataDrivers);
346
    }
347
348
    /**
349
     * Возвращает конфиг драйвера метаданных по заданному имени
350
     *
351
     * @param $metadataDriverName
352
     *
353
     * @return PluginOptions
354
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
355
     */
356 View Code Duplication
    public function getMetadataDriver($metadataDriverName)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
357
    {
358
        if (array_key_exists($metadataDriverName, $this->metadataDriversOptions)) {
359
            return $this->metadataDriversOptions[$metadataDriverName];
360
        }
361
362
        if (!$this->hasMetadataDriver($metadataDriverName)) {
363
            $errMsg = sprintf('Metadata driver %s not found', $metadataDriverName);
364
            throw new Exception\InvalidArgumentException($errMsg);
365
        }
366
367
        $this->metadataDriversOptions[$metadataDriverName] = new PluginOptions($this->metadataDrivers[$metadataDriverName]);
368
369
        return $this->metadataDriversOptions[$metadataDriverName];
370
    }
371
372
    /**
373
     * Устанавливает данные описывающие конструкторы объектов
374
     *
375
     * @param array $objectConstructors
376
     *
377
     * @return $this
378
     */
379
    public function setObjectConstructors(array $objectConstructors)
380
    {
381
        $this->objectConstructors = $objectConstructors;
382
        $this->objectConstructorsOptions = [];
383
384
        return $this;
385
    }
386
387
388
    /**
389
     * Проверяет есть конструктор объектов с заданным именем
390
     *
391
     * @param string $objectConstructorName
392
     *
393
     * @return boolean
394
     */
395
    public function hasObjectConstructor($objectConstructorName)
396
    {
397
        return array_key_exists($objectConstructorName, $this->objectConstructors);
398
    }
399
400
    /**
401
     * Возвращает конструктор объектов по заданному имени
402
     *
403
     * @param $objectConstructorName
404
     *
405
     * @return PluginOptions
406
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
407
     */
408 View Code Duplication
    public function getObjectConstructor($objectConstructorName)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
409
    {
410
        if (array_key_exists($objectConstructorName, $this->objectConstructorsOptions)) {
411
            return $this->objectConstructorsOptions[$objectConstructorName];
412
        }
413
414
        if (!$this->hasObjectConstructor($objectConstructorName)) {
415
            $errMsg = sprintf('Object constructor %s not found', $objectConstructorName);
416
            throw new Exception\InvalidArgumentException($errMsg);
417
        }
418
419
        $this->objectConstructorsOptions[$objectConstructorName] = new PluginOptions($this->objectConstructors[$objectConstructorName]);
420
421
        return $this->objectConstructorsOptions[$objectConstructorName];
422
    }
423
424
    /**
425
     * Устанавливает набор плагинов используемх для сериализации
426
     *
427
     * @param array $serializationVisitors
428
     *
429
     * @return $this
430
     */
431
    public function setSerializationVisitors(array $serializationVisitors)
432
    {
433
        $this->serializationVisitors = $serializationVisitors;
434
435
        return $this;
436
    }
437
438
439
    /**
440
     * Проверяет по указанному имени, наличие набора плагинов используемых для сериализации данных
441
     *
442
     * @param string $serializationVisitorName
443
     *
444
     * @return boolean
445
     */
446
    public function hasSerializationVisitor($serializationVisitorName)
447
    {
448
        return array_key_exists($serializationVisitorName, $this->serializationVisitors);
449
    }
450
451
452
    /**
453
     * Возвращает по указанному имени, набор плагинов используемых для сериализации данных
454
     *
455
     * @param $serializationVisitorName
456
     *
457
     * @return PluginOptions
458
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
459
     */
460
    public function getSerializationVisitor($serializationVisitorName)
461
    {
462
        if (!$this->hasSerializationVisitor($serializationVisitorName)) {
463
            $errMsg = sprintf('Invalid serialization visitor name %s not found', $serializationVisitorName);
464
            throw new Exception\InvalidArgumentException($errMsg);
465
        }
466
        return $this->serializationVisitors[$serializationVisitorName];
467
    }
468
469
    /**
470
     * Возвращает набор плагинов используемых для десериализации
471
     *
472
     * @param array $deserializationVisitors
473
     *
474
     * @return $this
475
     */
476
    public function setDeserializationVisitors(array $deserializationVisitors)
477
    {
478
        $this->deserializationVisitors = $deserializationVisitors;
479
480
        return $this;
481
    }
482
483
484
    /**
485
     * Проверяет по указанному имени, наличие набора плагинов используемых для десериализации данных
486
     *
487
     * @param string $deserializationVisitorName
488
     *
489
     * @return boolean
490
     */
491
    public function hasDeserializationVisitor($deserializationVisitorName)
492
    {
493
        return array_key_exists($deserializationVisitorName, $this->deserializationVisitors);
494
    }
495
496
497
    /**
498
     * Возвращает по указанному имени, набор плагинов используемых для десериализации данных
499
     *
500
     * @param $deserializationVisitorName
501
     *
502
     * @return PluginOptions
503
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
504
     */
505
    public function getDeserializationVisitor($deserializationVisitorName)
506
    {
507
        if (!$this->hasDeserializationVisitor($deserializationVisitorName)) {
508
            $errMsg = sprintf('Invalid deserialization visitor name %s not found', $deserializationVisitorName);
509
            throw new Exception\InvalidArgumentException($errMsg);
510
        }
511
        return $this->deserializationVisitors[$deserializationVisitorName];
512
    }
513
514
    /**
515
     * Устанавливает набор данных описывающих диспетчеры событий
516
     *
517
     * @param array $eventDispatchers
518
     *
519
     * @return $this
520
     */
521
    public function setEventDispatchers(array $eventDispatchers)
522
    {
523
        $this->eventDispatchers = $eventDispatchers;
524
        $this->eventDispatchersOptions = [];
525
526
        return $this;
527
    }
528
529
    /**
530
     * Проверяет есть ли диспетчер событий с заданным именем
531
     *
532
     * @param string $eventDispatcherName
533
     *
534
     * @return boolean
535
     */
536
    public function hasEventDispatcher($eventDispatcherName)
537
    {
538
        return array_key_exists($eventDispatcherName, $this->eventDispatchers);
539
    }
540
541
    /**
542
     * Возвращает диспетчер событий по заданному имени
543
     *
544
     * @param $eventDispatcherName
545
     *
546
     * @return PluginOptions
547
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
548
     */
549 View Code Duplication
    public function getEventDispatcher($eventDispatcherName)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
550
    {
551
        if (array_key_exists($eventDispatcherName, $this->eventDispatchersOptions)) {
552
            return $this->eventDispatchersOptions[$eventDispatcherName];
553
        }
554
555
        if (!$this->hasEventDispatcher($eventDispatcherName)) {
556
            $errMsg = sprintf('Event dispatcher %s not found', $eventDispatcherName);
557
            throw new Exception\InvalidArgumentException($errMsg);
558
        }
559
560
        $this->eventDispatchersOptions[$eventDispatcherName] = new PluginOptions($this->eventDispatchers[$eventDispatcherName]);
561
562
        return $this->eventDispatchersOptions[$eventDispatcherName];
563
    }
564
565
    /**
566
     * Возвращает сервиса для получения кеша доктрины
567
     *
568
     * @return string
569
     */
570
    public function getAnnotationCache()
571
    {
572
        return $this->annotationCache;
573
    }
574
575
    /**
576
     * Устанавливает имя сервиса для получения кеша доктрины
577
     *
578
     * @param string $annotationCache
579
     *
580
     * @return $this
581
     */
582
    public function setAnnotationCache($annotationCache)
583
    {
584
        $this->annotationCache = $annotationCache;
585
586
        return $this;
587
    }
588
589
    /**
590
     * Устанавливает данные описывающие FileLocator используемые в драйверах метаданных
591
     *
592
     * @param array $fileLocators
593
     *
594
     * @return $this
595
     */
596
    public function setFileLocators(array $fileLocators)
597
    {
598
        $this->fileLocators = $fileLocators;
599
        $this->fileLocatorsOptions = [];
600
601
        return $this;
602
    }
603
604
    /**
605
     * Проверяет есть ли FileLocator  с заданным именем
606
     *
607
     * @param string $fileLocatorName
608
     *
609
     * @return boolean
610
     */
611
    public function hasFileLocator($fileLocatorName)
612
    {
613
        return array_key_exists($fileLocatorName, $this->fileLocators);
614
    }
615
616
    /**
617
     * Возвращает FileLocator с заданным именем
618
     *
619
     * @param $fileLocatorName
620
     *
621
     * @return PluginOptions
622
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
623
     */
624 View Code Duplication
    public function getFileLocator($fileLocatorName)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
625
    {
626
        if (array_key_exists($fileLocatorName, $this->fileLocatorsOptions)) {
627
            return $this->fileLocatorsOptions[$fileLocatorName];
628
        }
629
630
        if (!$this->hasFileLocator($fileLocatorName)) {
631
            $errMsg = sprintf('File locator %s not found', $fileLocatorName);
632
            throw new Exception\InvalidArgumentException($errMsg);
633
        }
634
635
        $this->fileLocatorsOptions[$fileLocatorName] = new PluginOptions($this->fileLocators[$fileLocatorName]);
636
637
        return $this->fileLocatorsOptions[$fileLocatorName];
638
    }
639
640
    /**
641
     * Устанавливает данные описывающие Visitor'ы
642
     *
643
     * @param array $visitors
644
     *
645
     * @return $this
646
     */
647
    public function setVisitors(array $visitors)
648
    {
649
        $this->visitors = $visitors;
650
        $this->visitorsOptions = [];
651
652
        return $this;
653
    }
654
655
    /**
656
     * Проверяет есть ли Visitor  с заданным именем
657
     *
658
     * @param string $visitorName
659
     *
660
     * @return boolean
661
     */
662
    public function hasVisitor($visitorName)
663
    {
664
        return array_key_exists($visitorName, $this->visitors);
665
    }
666
667
    /**
668
     * Возвращает Visistor с заданным именем
669
     *
670
     * @param $visitorName
671
     *
672
     * @return PluginOptions
673
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
674
     */
675 View Code Duplication
    public function getVisitor($visitorName)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
676
    {
677
        if (array_key_exists($visitorName, $this->visitorsOptions)) {
678
            return $this->visitorsOptions[$visitorName];
679
        }
680
681
        if (!$this->hasVisitor($visitorName)) {
682
            $errMsg = sprintf('Visitor %s not found', $visitorName);
683
            throw new Exception\InvalidArgumentException($errMsg);
684
        }
685
686
        $this->visitorsOptions[$visitorName] = new PluginOptions($this->visitors[$visitorName]);
687
688
        return $this->visitorsOptions[$visitorName];
689
    }
690
691
    /**
692
     * Устанавливает настройки стратегий для работы с именами свойств объектов
693
     *
694
     * @param array $namingStrategies
695
     *
696
     * @return $this
697
     */
698
    public function setNamingStrategies(array $namingStrategies)
699
    {
700
        $this->namingStrategies = $namingStrategies;
701
        $this->namingStrategiesOptions = [];
702
703
        return $this;
704
    }
705
706
707
    /**
708
     * Проверяет есть ли стратегия  с заданным именем
709
     *
710
     * @param string $strategyName
711
     *
712
     * @return boolean
713
     */
714
    public function hasNamingStrategy($strategyName)
715
    {
716
        return array_key_exists($strategyName, $this->namingStrategies);
717
    }
718
719
720
    /**
721
     * Возвращает стратегию с заданным именем
722
     *
723
     * @param $strategyName
724
     *
725
     * @return PluginOptions
726
     * @throws \Nnx\JmsSerializerModule\Options\Exception\InvalidArgumentException
727
     */
728 View Code Duplication
    public function getNamingStrategy($strategyName)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
729
    {
730
        if (array_key_exists($strategyName, $this->namingStrategiesOptions)) {
731
            return $this->namingStrategiesOptions[$strategyName];
732
        }
733
734
        if (!$this->hasNamingStrategy($strategyName)) {
735
            $errMsg = sprintf('Naming strategy %s not found', $strategyName);
736
            throw new Exception\InvalidArgumentException($errMsg);
737
        }
738
739
        $this->namingStrategiesOptions[$strategyName] = new PluginOptions($this->namingStrategies[$strategyName]);
740
741
        return $this->namingStrategiesOptions[$strategyName];
742
    }
743
}
744