setOptions($options); } } public function __set($name, $value) { $method = 'set' . $name; if (('mapper' == $name) || !method_exists($this, $method)) { throw new Exception('Invalid bootos property'); } $this->$method($value); } public function __get($name) { $method = 'get' . $name; if (('mapper' == $name) || !method_exists($this, $method)) { throw new Exception('Invalid bootos property'); } return $this->$method(); } public function setOptions(array $options) { $methods = get_class_methods($this); foreach ($options as $key => $value) { $method = 'set' . ucfirst($key); if (in_array($method, $methods)) { $this->$method($value); } } return $this; } public function getID() { return $this->_bootosID; } public function setID($_bootosID) { $this->_bootosID = $_bootosID; return $this; } public function getGroupID() { return $this->_groupID; } public function setGroupID($_groupID) { $this->_groupID = $_groupID; return $this; } public function getMembershipID() { return $this->_membershipID; } public function setMembershipID($_membershipID) { $this->_membershipID = $_membershipID; return $this; } public function getTitle() { return $this->_title; } public function setTitle($_title) { $this->_title = $_title; return $this; } public function getDescription() { return $this->_description; } public function setDescription($_description) { $this->_description = $_description; return $this; } public function getDefaultkcl() { return $this->_defaultkcl; } public function setDefaultkcl($_defaultkcl) { $this->_defaultkcl = $_defaultkcl; return $this; } public function getCreated() { return $this->_created; } public function setCreated($_created) { $this->_created = $_created; return $this; } public function getExpires() { return $this->_expires; } public function setExpires($_expires) { $this->_expires = $_expires; return $this; } public function getPublic() { return $this->_public; } public function setPublic($_public) { $this->_public = $_public; return $this; } public function getSource() { return $this->_source; } public function setSource($_source) { $this->_source = $_source; return $this; } public function getDistro() { return $this->_distro; } public function setDistro($_distro) { $this->_distro = $_distro; return $this; } public function getDistroversion() { return $this->_distroversion; } public function setDistroversion($_distroversion) { $this->_distroversion = $_distroversion; return $this; } public function getShortname() { return $this->_shortname; } public function setShortname($_shortname) { $this->_shortname = $_shortname; return $this; } public function getShare() { return $this->_share; } public function setShare($_share) { $this->_share = $_share; return $this; } /** * Returns current data as associative array using ReflectionClass * * @return array Returns associative array containing model data * If "get"-method not available (our primary keys) the function getID() is called */ public function toArray() { $reflectionClass = new ReflectionClass($this); $properties = $reflectionClass->getProperties(); $result = array(); foreach ($properties as $property) { $key = $property->name; if (substr($key, 0, 1) != '_' && $this->$key !== null) { $method = 'get' . ucfirst($key); if ($reflectionClass->hasMethod($method)) { $result[$key] = $this->$method(); } else { $result[$key] = $this->$key; } } elseif(substr($key, 0, 1) == '_' && $this->$key !== null) { $key = substr($key, 1); $method = 'get' . ucfirst($key); if ($reflectionClass->hasMethod($method)) { $result[$key] = $this->$method(); }else{ $result[$key] = $this->getID(); } } } return $result; } }