if_LospInterfaces.inc.php 4.02 KB
<?php
/**
 * @file	if_LospInterfaces.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 iLosp {
	/**
	 *	Funktion schreibt Objektdaten als String (Interzeptormethode)
	 *
	 *	@return	String
	 */
	public function __toString();

	/**
	 *	Funktion füllt Objekt mit den übergebenen Array
	 *
	 *	@param	Array $param_Data
	 */
	public function setData(Account &$param_HostAccount, iStorable &$param_iStorable, array $param_Data);

	/**
	 *	Funktion speichert Objekt in die Datenbank
	 *
	 *	@return DatabaseElement Objekt welches gespeichert wurde
	 */
	public function saveObject(Account &$param_HostAccount, iStorable &$param_iStorable);

	/**
	 * lädt das Objekt aus der Datenbank
	 */
	public function loadObject(Account &$param_HostAccount, iStorable &$param_iStorable, $param_Parameter=null);

	public function &getObjVar($param_ObjVar);
	public function setObjVar($param_ObjVar, $param_Value);
	public function getObjVarArrayValue($param_ObjVar, $param_ObjVarArrayKey);
	public function setObjVarArrayValue($param_ObjVar, $param_ObjVarArrayKey, $param_Value);


	public function getObjDOMElement(Account &$param_HostAccount, iStorable &$param_iStorable, DOMDocument $param_DOMDocument, $param_KindOf=null, array $param_DOMElemente=null);
}

interface iBasisElement extends iLosp {
	/**
	 * 	Konstruktor
	 * 	@param 	iBasicSql 	param_DB 	Datenbankobjekt
	 * 	@param 	int 		param_ID 	ID des Objektes
	 */
	//	public function __construct(iStorable $param_DB, $param_ID, $param_PartOf=null);
	/**
	* statische Funktion löscht zuübergebenes Objekt aus der Datenbank
	* 	(relevante Funktion wird in dem Datenbankojekt aufgerufen)
	*
	* @param	iBasisElement	param_object
	*/
	public static function deleteObject(Account &$param_HostAccount, iStorable &$param_iStorable, &$param_object);

	public static function &loadElement(Account &$param_HostAccount, iStorable &$param_iStorable, $param_Class='*', $param_ID, $param_PartOf=null, array $param_BasisClipboardArray=null, $param_OnlyWhenLouded=false);

	public static function &makeNewObject(Account &$param_HostAccount, iStorable $param_DB, $param_Class, array $param_Data, $param_PartOf=null);
}

interface iBasisElementAddon extends iLosp {
	public function __construct(iStorable &$param_DB, &$param_Obj);
	public function import( $param_ImportData);
}

abstract class aBasisElementAddon  extends aLosp implements iBasisElementAddon {
	/**
	 * @var int wie tief soll der Baum abgelaufen werden
	 */
	protected $depth;
	public $ThisClassName;
	protected $LoadLight = null;
	protected $HostObject = null;

	public function delete() {

	}

	public function import( $param_ImportData) {

	}

	public function getObjDOMElement(Account &$param_HostAccount, iStorable &$param_iStorable, DOMDocument $param_DOMDocument, $param_KindOf=null, array $param_DOMElemente=null) {
		$DOMElement = parent::getObjDOMElement($param_HostAccount, $param_iStorable, $param_DOMDocument, $param_KindOf, $param_DOMElemente);
		$DOMElement->setAttribute('LoadLight', $this->LoadLight);
		return $DOMElement;
	}

}
interface iBasisDesign  extends iLosp  {
	//public function __construct(iBasicSql $param_DB, $param_BEClassName=null, $param_ID=null);
	public function __construct(iStorable &$param_DB, $param_BEClassName=null, $param_ID=null);
}


interface iProfileCollection {
	
}

?>