1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 
<?php

/* --------------------------------------------------------------
   VPE.inc.php 2017-07-24
   Gambio GmbH
   http://www.gambio.de
   Copyright (c) 2017 Gambio GmbH
   Released under the GNU General Public License (Version 2)
   [http://www.gnu.org/licenses/gpl-2.0.html]
   --------------------------------------------------------------
*/

/**
 * Class VPE
 *
 * @category   System
 * @package    VPE
 * @subpackage Entities
 */
class VPE implements VPEInterface
{
    /**
     * @var int
     */
    private $id = 0;
    
    /**
     * @var \KeyValueCollection
     */
    private $names;
    
    /**
     * @var bool
     */
    private $default = false;
    
    
    /**
     * VPE constructor.
     *
     * @param \EditableKeyValueCollection $names
     */
    public function __construct(EditableKeyValueCollection $names)
    {
        $this->names = $names;
    }
    
    
    /**
     * Returns the id.
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }
    
    
    /**
     * Sets the id.
     *
     * @param \IdType $vpeId Id to be set.
     *
     * @return $this|\VPEInterface Same instance for chained method calls.
     */
    public function setId(IdType $vpeId)
    {
        $this->id = $vpeId->asInt();
        
        return $this;
    }
    
    
    /**
     * Returns the language specific name.
     *
     * @param \LanguageCode $languageCode Language code for language specific name value.
     *
     * @return string Language specific name value.
     */
    public function getName(LanguageCode $languageCode)
    {
        return $this->names->getValue($languageCode->asString());
    }
    
    
    /**
     * Sets the language specific name.
     *
     * @param \StringType   $name         Name value to be set.
     * @param \LanguageCode $languageCode Language code for language specific name value.
     *
     * @return $this|\VPEInterface Same instance for chained method calls.
     */
    public function setName(StringType $name, LanguageCode $languageCode)
    {
        $this->names->setValue($languageCode->asString(), $name->asString());
        
        return $this;
    }
    
    
    /**
     * Returns all language specific names.
     *
     * @return array Language specific names value.
     */
    public function getNames()
    {
        return $this->names->getArray();
    }
    
    
    /**
     * Returns true if the vpe entity instance is the shops default.
     *
     * @return bool True if VPE value is shops default.
     */
    public function isDefault()
    {
        return $this->default;
    }
    
    
    /**
     * Sets vpe entity to shops default, if bool type is true.
     *
     * @param \BoolType $default Is current vpe entity shops default?
     *
     * @return $this|\VPEInterface Same instance for chained method calls.
     */
    public function setDefault(BoolType $default)
    {
        $this->default = $default->asBool();
        
        return $this;
    }
}