add generator registries

This commit is contained in:
Daniel Seifert 2020-05-30 00:45:18 +02:00
parent 15c7d5ce81
commit bf013da802
4 changed files with 188 additions and 0 deletions

View File

@ -0,0 +1,63 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
namespace D3\PdfDocuments\Application\Model\Registries;
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocuments_generic_interface;
abstract class registry_abstract implements registry_generic_interface
{
protected $_aRegistry = array();
/**
* @param $className * generator fully qualified class name
* @param pdfdocuments_generic_interface $item
*/
protected function addItem($className, pdfdocuments_generic_interface $item)
{
$this->_aRegistry[$className] = $item;
}
/**
* @param $className * generator fully qualified class name
*/
public function removeGenerator($className)
{
// TODO: Implement removeGenerator() method.
}
/**
* @param $className * generator fully qualified class name
*/
public function hasGenerator($className)
{
// TODO: Implement hasGenerator() method.
}
/**
* @return array
*/
public function getList()
{
return $this->_aRegistry;
}
public function clearList()
{
// TODO: Implement clearList() method.
}
}

View File

@ -0,0 +1,43 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
namespace D3\PdfDocuments\Application\Model\Registries;
interface registry_generic_interface
{
/**
* @param $className * generator fully qualified class name
*/
public function removeGenerator($className);
/**
* @param $className * generator fully qualified class name
*/
public function hasGenerator($className);
/**
* @param $className * generator fully qualified class name
*/
public function getGenerator($className);
/**
* @return array
*/
public function getList();
public function clearList();
}

View File

@ -0,0 +1,53 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
namespace D3\PdfDocuments\Application\Model\Registries;
use D3\PdfDocuments\Application\Model\Documents\deliverynotePdf;
use D3\PdfDocuments\Application\Model\Documents\deliverynotewithoutlogoPdf;
use D3\PdfDocuments\Application\Model\Documents\invoicePdf;
use D3\PdfDocuments\Application\Model\Documents\invoicewithoutlogoPdf;
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocuments_order_interface;
class registry_orderoverview extends registry_abstract implements registry_orderoverview_interface
{
public function __construct()
{
$this->addGenerator(invoicePdf::class, oxNew(invoicePdf::class));
$this->addGenerator(deliverynotePdf::class, oxNew(deliverynotePdf::class));
$this->addGenerator(invoicewithoutlogoPdf::class, oxNew(invoicewithoutlogoPdf::class));
$this->addGenerator(deliverynotewithoutlogoPdf::class, oxNew(deliverynotewithoutlogoPdf::class));
}
/**
* @param $className
* @param pdfdocuments_order_interface $pdfGenerator
*/
public function addGenerator($className, pdfdocuments_order_interface $pdfGenerator)
{
$this->addItem($className, $pdfGenerator);
}
/**
* @param $className * generator fully qualified class name
* @return pdfdocuments_order_interface
*/
public function getGenerator($className)
{
return $this->_aRegistry[$className];
}
}

View File

@ -0,0 +1,29 @@
<?php
/**
* This Software is the property of Data Development and is protected
* by copyright law - it is NOT Freeware.
*
* Any unauthorized use of this software without a valid license
* is a violation of the license agreement and will be prosecuted by
* civil and criminal law.
*
* http://www.shopmodule.com
*
* @copyright (C) D3 Data Development (Inh. Thomas Dartsch)
* @author D3 Data Development - Max Buhe <support@shopmodule.com>
* @link http://www.oxidmodule.com
*/
namespace D3\PdfDocuments\Application\Model\Registries;
use D3\PdfDocuments\Application\Model\Interfaces\pdfdocuments_order_interface;
interface registry_orderoverview_interface extends registry_generic_interface
{
/**
* @param $className * generator fully qualified class name
* @param pdfdocuments_order_interface $pdfGenerator
*/
public function addGenerator($className, pdfdocuments_order_interface $pdfGenerator);
}