ProductSelect   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 4

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
c 1
b 0
f 0
lcom 0
cbo 4
dl 0
loc 28
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A configureOptions() 0 18 1
A prepareAttributesCollection() 0 6 1
1
<?php
2
3
namespace WellCommerce\Component\Form\Elements\Optioned;
4
5
use Symfony\Component\OptionsResolver\OptionsResolver;
6
use WellCommerce\Component\Form\Elements\Attribute;
7
use WellCommerce\Component\Form\Elements\AttributeCollection;
8
9
/**
10
 * Class DataGridSelect
11
 *
12
 * @author  Adam Piotrowski <[email protected]>
13
 */
14
class ProductSelect extends Select
15
{
16
    public function configureOptions(OptionsResolver $resolver)
17
    {
18
        parent::configureOptions($resolver);
19
        
20
        $resolver->setRequired([
21
            'load_route',
22
            'repeat_min',
23
            'repeat_max',
24
        ]);
25
        
26
        $resolver->setDefaults([
27
            'load_route' => 'admin.product.grid',
28
        ]);
29
        
30
        $resolver->setAllowedTypes('repeat_min', 'numeric');
31
        $resolver->setAllowedTypes('repeat_max', 'numeric');
32
        $resolver->setAllowedTypes('load_route', 'string');
33
    }
34
    
35
    public function prepareAttributesCollection(AttributeCollection $collection)
36
    {
37
        parent::prepareAttributesCollection($collection);
38
        $collection->add(new Attribute('sLoadRoute', $this->getOption('load_route')));
39
        $collection->add(new Attribute('oRepeat', $this->prepareRepetitions(), Attribute::TYPE_ARRAY));
40
    }
41
}
42