if_iBasisElementAddonDataBase.inc.php 2.35 KB
<?php
/**
* @file	if_iBasisElementAddonDataBase.inc.php
 * @category freeSN
 * @mailto	code [at] netz.coop
 * @version 0.4.200901
 * @link http://netz.coop
 * 
 *  @copyright Copyright by netz.coop e.G. 2015
 *  
 *
 *   This program is free software: you can redistribute it and/or modify
 *   it under the terms of the GNU General Public License as published by
 *   the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *   This program is distributed in the hope that it will be useful,
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *   GNU General Public License for more details.
 *
 *   You should have received a copy of the GNU General Public License
 *   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */
interface iBasisElementAddonDataBase  {
	public function loadObject(Account &$param_HostAccount, iStorable &$param_iStorable, aBasisElementAddon & $param_Object, $param_Parameter=null);


	public function saveObject(Account &$param_HostAccount, iStorable &$param_iStorable, aBasisElementAddon & $param_Object);
}


abstract class aBasisElementAddonDataBase implements iBasisElementAddonDataBase {

	public function loadObject(Account &$param_HostAccount, iStorable &$param_iStorable, aBasisElementAddon & $param_Object, $param_Parameter=null) {

		if(( is_array($param_Parameter) &&  array_key_exists('LoadLight', $param_Parameter) && $param_Parameter['LoadLight']) && !$param_Object->getObjVar('LoadLevel')) {
			$param_Object->setObjVar('LoadLevel','light');
			$this->loadObjectLight($param_HostAccount, $param_iStorable, $param_Object, $param_Parameter);

		} else if(!is_array($param_Parameter) || !array_key_exists('LoadLight', $param_Parameter) || !$param_Parameter['LoadLight']) {

			if($param_Object->getObjVar('LoadLevel')=='light') {
				$param_Object->setObjVar('LoadLevel','full');
				$this->loadObjectFull($param_HostAccount, $param_iStorable, $param_Object, $param_Parameter);

			} else if($param_Object->getObjVar('LoadLevel')!='full'){
				$param_Object->setObjVar('LoadLevel','full');
				$this->loadObjectLight($param_HostAccount, $param_iStorable, $param_Object, $param_Parameter);
				$this->loadObjectFull($param_HostAccount, $param_iStorable, $param_Object, $param_Parameter);
			}

		}
	}

}

?>