HEX
Server: Apache
System: Linux 185.122.168.184.host.secureserver.net 5.14.0-570.52.1.el9_6.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 15 06:39:08 EDT 2025 x86_64
User: barbeatleanalyti (1024)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: /home/barbeatleanalyti/www/public_html/webmail/system/ObjectExtender.php
<?php
/*
 * This code is licensed under AGPLv3 license or Afterlogic Software License
 * if commercial version of the product was purchased.
 * For full statements of the licenses see LICENSE-AFTERLOGIC and LICENSE-AGPL3 files.
 */

namespace Aurora\System;

/**
 * @license https://www.gnu.org/licenses/agpl-3.0.html AGPL-3.0
 * @license https://afterlogic.com/products/common-licensing Afterlogic Software License
 * @copyright Copyright (c) 2018, Afterlogic Corp.
 *
 * @package Api
 */
class ObjectExtender
{
	/**
     * @var array
     */    
    protected $_aObjects = [];

    /**
     *
     */
    protected static $self = null;

    /**
	 * 
	 * @return \self
	 */
	public static function createInstance()
	{
		return new self();
	}

	public static function getInstance()
	{
		if (is_null(self::$self))
		{
			self::$self = new self();
		}

		return self::$self;
	}
    
	/**
	 * 
	 * @param string $sModule
	 * @param string $sType
	 * @param array $aMap
	 */
	public function extend($sModule, $sType, $aMap)
	{
		foreach ($aMap as $sKey => $aValue)
		{
			$this->_aObjects[$sType][$sModule . Module\AbstractModule::$Delimiter . $sKey] = $aValue;
		}
    }	
    
	/**
	 * 
	 * @param string $sType
	 * @return array
	 */
	public function getObject($sType)
	{
		return isset($this->_aObjects[$sType]) ? $this->_aObjects[$sType] : [];
	}
	
	/**
	 * 
	 * @param string $sType
	 * @return boolean
	 */
	public function issetObject($sType)
	{
		return isset($this->_aObjects[$sType]);
	}    
}