_session = new IMuSession; else $this->_session = $session; $this->_create = null; $this->_destroy = null; $this->_id = null; $this->_language = null; $this->_name = null; } /* Properties */ public function getCreate() { return $this->_create; } public function setCreate($create) { $this->_create = $create; } public function getDestroy() { if ($this->_destroy === null) return false; return $this->_destroy; } public function setDestroy($destroy) { $this->_destroy = $destroy; } public function getID() { return $this->_id; } public function setID($id) { $this->_id = $id; } public function getLanguage() { return $this->_language; } public function setLanguage($language) { $this->_language = $language; } public function getName() { return $this->_name; } public function setName($name) { $this->_name = $name; } public function getSession() { return $this->_session; } public function __get($name) { switch ($name) { case 'create': return $this->getCreate(); case 'destroy': return $this->getDestroy(); case 'id': return $this->getID(); case 'language': return $this->getLanguage(); case 'name': return $this->getName(); case 'session': return $this->getSession(); default: throw new IMuException('HandlerProperty', $name); } } public function __set($name, $value) { switch ($name) { case 'create': return $this->setCreate($value); case 'destroy': return $this->setDestroy($value); case 'id': return $this->setID($value); case 'language': return $this->setLanguage($value); case 'name': return $this->setName($value); case 'session': throw new IMuException('HandlerSessionReadOnly'); default: throw new IMuException('HandlerProperty', $name); } } /* Methods */ public function call($method, $params = null) { $request = array(); $request['method'] = $method; if ($params !== null) $request['params'] = $params; $response = $this->request($request); return $response['result']; } public function request($request) { if ($this->_id !== null) $request['id'] = $this->_id; else if ($this->_name !== null) { $request['name'] = $this->_name; if ($this->_create !== null) $request['create'] = $this->_create; } if ($this->_destroy !== null) $request['destroy'] = $this->_destroy; if ($this->_language !== null) $request['language'] = $this->_language; $response = $this->_session->request($request); if (array_key_exists('id', $response)) $this->_id = $response['id']; return $response; } protected $_session; protected $_create; protected $_destroy; protected $_id; protected $_language; protected $_name; } ?>