uid = $uid; $this->name = $name; $this->password = $password; } /** * function save() * Saves the current object into the database. */ public function save() { //Ensure the required folder exists. if(!is_dir('data/users/')) mkdir('data/users/'); $model = ResearchToolObject::load(User::$filename); $resourceUser = new Resource(USER . '/' . $this->uid); //Remove the old value stored with the given id $model->subtract($model->find($resourceUser, null, null)); $resourceUserType = new Resource(USER); $predicateRType = new Resource(RTYPE); $model->add(new Statement($resourceUser,$predicateRType,$resourceUserType)); $literalUserID = new Literal($this->uid); $predicateUniqueID = new Resource(UID); $model->add(new Statement($resourceUser,$predicateUniqueID,$literalUserID)); $literalUserName = new Literal($this->name); $predicateName = new Resource(NAME); $model->add(new Statement($resourceUser,$predicateName,$literalUserName)); $literalPassword = new Literal($this->password); $predicatePassword = new Resource(PASSWORD); $model->add(new Statement($resourceUser,$predicatePassword,$literalPassword)); $model->saveAs(User::$filename, 'rdf'); return true; } /** * static function get($arguments) * Gets the array of User objects belonging to arguments supplied. * @param type $arguments : An array containing zero or more of the following keys: * 'uid', 'name', 'password' */ public static function get($arguments) { $model = ResearchToolObject::load(User::$filename); //Create the querystring $querystring = ' PREFIX predicates: <' . SURVEYTOOL_PREDICATES_NAMESPACE . '> PREFIX resources: <' . SURVEYTOOL_RESOURCES_NAMESPACE . '> SELECT ?uid, ?name, ?password WHERE { _user predicates:resource_type resources:user ; predicates:uid ?uid ; predicates:name ?name ; predicates:password ?password ; ' . ResearchToolObject::createArguments($arguments) . ' }'; //Query the model $results = $model->sparqlQuery($querystring); $users = array(); if(!empty($results)) { //Run over all results and create appropriate User objects foreach($results as $result) { $users[] = new User($result['?uid']->label, $result['?name']->label, $result['?password']->label); } } return $users; } } ?>