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
<?php
/* --------------------------------------------------------------
AddonValueService.inc.php 2015-11-20 gm
Gambio GmbH
http://www.gambio.de
Copyright (c) 2015 Gambio GmbH
Released under the GNU General Public License (Version 2)
[http://www.gnu.org/licenses/gpl-2.0.html]
--------------------------------------------------------------
*/
MainFactory::load_class('AddonValueServiceInterface');
/**
* Class AddonValueService
*
* This service will handle the addon values for different contexts of the shop. The addon values is
* a mechanism for external developers to introduce values to key-entities of the project (e.g. order,
* product etc.) without further changing the database structure. Take a look at the "Storages" directory
* for the available storage classes. More classes will be created gradually.
*
* @category System
* @package AddonValue
*/
class AddonValueService implements AddonValueServiceInterface
{
/**
* @var AddonValueStorageFactory
*/
protected $addonValueStorageFactory;
/**
* AddonValueService Constructor
*
* @param AddonValueStorageFactoryInterface $addonValueStorageFactory
*/
public function __construct(AddonValueStorageFactoryInterface $addonValueStorageFactory)
{
$this->addonValueStorageFactory = $addonValueStorageFactory;
}
/**
* Save the addon values of a storage container in the database.
*
* @param AddonValueContainerInterface $container
*
* @return AddonValueService Returns the class instance.
*/
public function storeAddonValues(AddonValueContainerInterface $container)
{
$addonValueStorage = $this->addonValueStorageFactory->createAddonValueStorageByContainerObject($container);
$addonValueStorage->setValues(new IdType($container->getAddonValueContainerId()), $container->getAddonValues());
return $this;
}
/**
* Load the addon values of a storage container from the database.
*
* @param AddonValueContainerInterface $container
*
* @return AddonValueService Returns the class instance.
*/
public function loadAddonValues(AddonValueContainerInterface $container)
{
$addonValueStorage = $this->addonValueStorageFactory->createAddonValueStorageByContainerObject($container);
$containerValues = $addonValueStorage->getValuesByContainerId(new IdType($container->getAddonValueContainerId()));
$container->addAddonValues($containerValues);
return $this;
}
/**
* Remove the addon values of a storage container.
*
* @param AddonValueContainerInterface $container
*
* @return AddonValueService Returns the class instance.
*/
public function deleteAddonValues(AddonValueContainerInterface $container)
{
$addonValueStorage = $this->addonValueStorageFactory->createAddonValueStorageByContainerObject($container);
$addonValueStorage->deleteValuesByContainerId(new IdType($container->getAddonValueContainerId()));
return $this;
}
}