| <?php
/*
    WAClass.lib, DomCore, the WebAbility(r) Core System
    Contains the basic object to give seriability to all classes
    (c) 2008-2012 Philippe Thomassigny
    This file is part of DomCore
    DomCore 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.
    DomCore 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 DomCore.  If not, see <http://www.gnu.org/licenses/>.
*/
/* @UML_Box
|------------------------------------------------------------------|
| WAClass : DomCore Basic class                                    |
|------------------------------------------------------------------|
|------------------------------------------------------------------|
| + new WAClass()                                                  |
| # serial(&data): void                                            |
| + serialize(): string                                            |
| # unserial(data): void                                           |
| + unserialize($ser: string)                                      |
|------------------------------------------------------------------|
@End_UML_Box */
class WAClass extends WAObject implements Serializable
{
  public function __construct()
  {
    parent::__construct();
  }
  // This method must be overloaded by the extended class to push stuff into it
  // $data is an array by default
  protected function serial(&$data)
  {
    throw new CoreError(WAMessage::getMessage('WAClass.serial'));
  }
  // Do a normal serialize unless the method is overloaded
  // Do not serialize WADebug vars
  public function serialize()
  {
    // default serialized object is EMPTY.
    $data = array();
    $this->serial($data);
    return serialize($data);
  }
  // This method must be overloaded by the extended class to read stuff into it
  // $data is the same data as for serializing
  protected function unserial($data)
  {
    throw new CoreError(WAMessage::getMessage('WAClass.unserial'));
  }
  // Do a normal unserialize unless the method is overloaded
  public function unserialize($serialized)
  {
    parent::__construct(); // call the constructor of basic DomCore for it the DEBUG is set
    $data = unserialize($serialized);
    $this->unserial($data);
    return true;
  }
}
?>
 |