Changeset 186 for Dev/trunk/classes
- Timestamp:
- 12/16/11 11:19:54 (13 years ago)
- Location:
- Dev/trunk/classes
- Files:
-
- 14 edited
Legend:
- Unmodified
- Added
- Removed
-
Dev/trunk/classes/Answer.php
r157 r186 8 8 class Answer extends ResearchToolObject { 9 9 public $question; 10 10 public $values; 11 11 12 12 /** … … 24 24 $this->question = $question; 25 25 $this->values = $values; 26 } 26 } 27 28 /** 29 * function evaluate() 30 * Evaluates the references and fills in the objects for them instead. 31 */ 32 public function evaluate() 33 { 34 if(is_string($this->question)) 35 { 36 $dbi = new DatabaseInterface(); 37 $result = $dbi->get("question", array("code" => $this->question)); 38 if(!isset($result[0])) 39 return false; 40 $this->question = $result[0]; 41 } 42 return true; 43 44 } 27 45 } 28 46 -
Dev/trunk/classes/AnswerConnector.php
r171 r186 11 11 */ 12 12 class AnswerConnector extends Connector{ 13 protected $db;14 13 15 14 /** … … 51 50 if(!empty($results)) 52 51 { 53 $this->db = new DatabaseInterface();54 52 foreach($results as $result) 55 53 { 56 $questionResult = $this->db->get("question", array("code" => $result['?question_code']->label)); 57 $answers[] = new Answer($result['?uid']->label, $questionResult[0], $this->getValues($result['?uid']->label)); 54 $answers[] = new Answer($result['?uid']->label, $result['?question_code']->label, $this->getValues($result['?uid']->label)); 58 55 } 59 56 } … … 84 81 public function set($rToolObject) 85 82 { 86 $this->load(); 87 83 $this->load(); 84 //If evaluation fails, some references are incorrect. 85 //We shouldn't save in this case. Instead - let the user know. This function returns false if the evaluation has failed. 86 //TODO: Decide how to fix invalid references graciously. 87 if(!$rToolObject->evaluate()) 88 return false; 88 89 $resourceAnswer = new Resource(ANSWER.'/'.$rToolObject->uid); 89 90 //Remove the old value stored with the given id … … 112 113 } 113 114 } 114 $this->save(); 115 $this->save(); 116 return true; 115 117 } 116 118 } -
Dev/trunk/classes/AnswerSet.php
r149 r186 13 13 * Constructor for an AnswerSet object 14 14 * @param type $uid 15 * @param type $question 16 * @param type $values 15 * @param type $survey 16 * @param type $respondent 17 * @param type $answers 17 18 */ 18 19 public function __construct($uid=null, $survey=null, $respondent=null, $answers=null) … … 27 28 $this->answers = $answers; 28 29 } 30 31 /** 32 * function evaluate() 33 * evaluates the references of survey, respondent and answers. 34 */ 35 public function evaluate() 36 { 37 $dbi = new DatabaseInterface(); 38 if(is_string($this->survey)) 39 { 40 $result = $dbi->get("survey", array("uid" => $this->survey)); 41 if(!isset($result[0])) 42 return false; 43 $this->survey = $result[0]; 44 } 45 if(is_string($this->respondent)) 46 { 47 $result = $dbi->get("respondent", array("uid" => $this->respondent)); 48 if(!isset($result[0])) 49 return false; 50 $this->respondent = $result[0]; 51 } 52 if(!empty($this->answers) && is_string($this->answers[0])) 53 { 54 $newanswers = array(); 55 foreach($this->answers as $answer) 56 { 57 $result = $dbi->get("answer", array("uid" => $answer)); 58 if(!isset($result[0])) 59 return false; 60 $newanswers[] = $result[0]; 61 } 62 $this->answers = $newanswers; 63 } 64 return true; 65 } 29 66 } 30 67 -
Dev/trunk/classes/AnswerSetConnector.php
r171 r186 50 50 foreach($results as $result) 51 51 { 52 $survey = $ this->db->get("survey", array("uid" => $result['?for_survey']->label));53 $respondent = $ this->db->get("respondent", array("uid" => $result['?by_respondent']->label));52 $survey = $result['?for_survey']->label; 53 $respondent = $result['?by_respondent']->label; 54 54 $answers = $this->getAnswers($result['?uid']->label); 55 55 $answerSets[] = new AnswerSet($result['?uid']->label, $survey[0], $respondent[0], $answers); … … 71 71 { 72 72 $element = $iterator->next(); 73 $answersR = $this->db->get("answer", array("uid" => $element->getLabelObject())); 74 $answers[] = $answersR[0]; 73 $answers[] = $element->getLabelObject(); 75 74 } 76 75 return $answers; … … 84 83 { 85 84 $this->load(); 85 //If evaluation fails, some references are incorrect. 86 //We shouldn't save in this case. Instead - let the user know. This function returns false if the evaluation has failed. 87 //TODO: Decide how to fix invalid references graciously. 88 if(!$rToolObject->evaluate()) 89 return false; 90 86 91 $resourceAnswerSet = new Resource(ANSWERSET . '/' . $rToolObject->uid); 87 92 //Remove the old value stored with the given id … … 115 120 } 116 121 $this->save(); 122 return true; 117 123 } 118 124 } -
Dev/trunk/classes/Application.php
r158 r186 28 28 $this->title = $title; 29 29 $this->description = $description; 30 $this->style = $style; 31 } 30 $this->style = $style; 31 } 32 33 public function evaluate() 34 { 35 //Do nothing, there are no references in application. 36 } 32 37 33 38 } -
Dev/trunk/classes/Question.php
r149 r186 39 39 $this->category = $category; 40 40 $this->answers = $answers; 41 } 41 } 42 43 /** 44 * function evaluate() 45 * evaluates all the references of this object. 46 */ 47 public function evaluate() 48 { 49 //Do nothing since Question does not contain any references 50 } 42 51 } 43 52 -
Dev/trunk/classes/ResearchToolObject.php
r158 r186 6 6 */ 7 7 abstract class ResearchToolObject { 8 public $uid; 8 public $uid; 9 //Uncomment when done with creating all evaluation methods \o///// 10 // public abstract function evaluate(); 9 11 } 10 12 -
Dev/trunk/classes/Respondent.php
r161 r186 26 26 $this->password = $password; 27 27 } 28 29 /* 30 * function evaluate() 31 * evaluates all the references. 32 */ 33 public function evaluate() 34 { 35 //Do nothing since Respondent does not contain any references. 36 } 28 37 29 38 } -
Dev/trunk/classes/Session.php
r174 r186 37 37 } 38 38 39 /* 40 * function evaluate(() 41 * Evaluates all the references of this object. 42 */ 43 public function evaluate() 44 { 45 $dbi = new DatabaseInterface(); 46 if(is_string($this->creator)) 47 { 48 $result = $dbi->get("user", array("uid" => $this->creator)); 49 if(!isset($result[0])) 50 return false; 51 $this->creator = $result[0]; 52 } 53 if(!empty($this->pipeline) && is_string($this->pipeline[0])) 54 { 55 $newPipeline = array(); 56 foreach($this->pipeline as $element) 57 { 58 //Check if the element's UID can be found in surveys, if not: 59 //Check applications. If it isn't in either: invalid reference. 60 $result = $dbi->get("survey", array("uid" => $element)); 61 if(!isset($result[0])) 62 $result = $dbi->get("application", array("uid" => $element)); 63 if(!isset($result[0])) 64 return false; 65 $newPipeline[] = $result[0]; 66 } 67 $this->pipeline = $newPipeline; 68 } 69 if(!empty($this->answersets) && is_string($this->answersets[0])) 70 { 71 $newAnswerSets = array(); 72 foreach($this->answersets as $element) 73 { 74 $result = $dbi->get("answerset", array("uid" => $element)); 75 if(!isset($result[0])) 76 return false; 77 $newAnswerSets[] = $result[0]; 78 } 79 $this->answersets = $newAnswerSets; 80 } 81 return true; 82 } 83 39 84 /** 40 85 * function toSPSS 41 86 * @param type $location 42 87 * Writes an SPSS parseable file at the given location, named '$datetime_$title.txt' 88 * One big note about toSPSS: If this session contains multiple instances of THE SAME Survey, 89 * the world burns, people die, etcetera. (or, in a more fortunate case, the latest values 90 * are written to the file whilst the others get lost. 43 91 */ 44 92 public function toSPSS($location) 45 93 { 94 $this->evaluate(); 46 95 if(!is_dir($location)) 47 96 { … … 58 107 if(get_class($element) == "Survey") 59 108 { 109 $element->evaluate(); 60 110 foreach($element->questions as $question) 61 111 { 112 //TODO: This might need fixing after lazy initialization refactoring. 62 113 $headers[] = $element->title . '_' . $question->uid; 63 114 } -
Dev/trunk/classes/SessionConnector.php
r173 r186 59 59 $pipeline = $this->getPipeline($result['?uid']->label); 60 60 $answersets = $this->getAnswerSets($result['?uid']->label); 61 $creator = $ this->db->get("User", array("uid" => $result['?creator']->label));61 $creator = $result['?creator']->label; 62 62 $datetime = new DateTime(); 63 63 $datetime->setTimestamp(intval($result['?datetime']->label)); 64 $sessions[] = new Session($result['?uid']->label, $result['?title']->label, $creator [0], $datetime, $pipeline, $answersets);64 $sessions[] = new Session($result['?uid']->label, $result['?title']->label, $creator, $datetime, $pipeline, $answersets); 65 65 } 66 66 } … … 79 79 { 80 80 $element = $iterator->next(); 81 if(strpos($element->getLabelPredicate(), "has_application") != false) 82 { 83 $applications = $this->db->get("application", array("uid" => $element->getLabelObject())); 84 $pipeline[] = $applications[0]; 85 } 86 else 87 { 88 $surveys = $this->db->get("survey", array("uid" => $element->getLabelObject())); 89 $pipeline[] = $surveys[0]; 90 } 81 $pipeline[] = $element->getLabelObject(); 91 82 } 92 83 return $pipeline; … … 105 96 { 106 97 $element = $iterator->next(); 107 $resultsets = $this->db->get("answerset", array("uid" => $element->getLabelObject())); 108 $answersets[] = $resultsets[0]; 98 $answersets[] = $element->getLabelObject(); 109 99 } 110 100 return $answersets; … … 118 108 { 119 109 $this->load(); 110 //If evaluation fails, some references are incorrect. 111 //We shouldn't save in this case. Instead - let the user know. This function returns false if the evaluation has failed. 112 //TODO: Decide how to fix invalid references graciously. 113 if(!$rToolObject->evaluate()) 114 return false; 115 120 116 $resourceSession = new Resource(SESSION . '/' . $rToolObject->uid); 121 117 //Remove the old value stored with the given id … … 171 167 172 168 $this->save(); 169 return true; 173 170 } 174 171 } -
Dev/trunk/classes/Survey.php
r149 r186 22 22 $this->creator = $creator; 23 23 $this->questions = $questions; 24 } 24 } 25 26 /** 27 * function evaluate() 28 * Evaluates the references 29 */ 30 public function evaluate() 31 { 32 $dbi = new DatabaseInterface(); 33 if(is_string($this->creator)) 34 { 35 $result = $dbi->get("user", array("uid" => $this->creator)); 36 if(!isset($result[0])) 37 return false; 38 $this->creator = $result[0]; 39 } 40 41 if(!empty($this->questions) && is_string($this->questions[0])) 42 { 43 $newQuestions = array(); 44 foreach($this->questions as $question) 45 { 46 $result = $dbi->get("question", array("uid" => $question)); 47 if(!isset($result[0])) 48 return false; 49 $newQuestions[] = $result[0]; 50 } 51 $this->questions = newQuestions; 52 } 53 return true; 54 } 25 55 } 26 56 -
Dev/trunk/classes/SurveyConnector.php
r171 r186 57 57 { 58 58 $questions = $this->getQuestions($result['?uid']->label); 59 $creator = $ this->db->get("user", array("uid" => $result['?creator']->label));59 $creator = $result['?creator']->label; 60 60 $surveys[] = new Survey($result['?uid']->label, $result['?title']->label, $result['?description']->label, $creator[0], $questions); 61 61 } … … 76 76 { 77 77 $element = $iterator->next(); 78 $result = $this->db->get("question", array("code" => $element->getLabelObject())); 79 $questions[] = $result[0]; 78 $questions[] = $element->getLabelObject(); 80 79 } 81 80 return $questions; … … 90 89 $this->load(); 91 90 91 //If evaluation fails, some references are incorrect. 92 //We shouldn't save in this case. Instead - let the user know. This function returns false if the evaluation has failed. 93 //TODO: Decide how to fix invalid references graciously. 94 if(!$rToolObject->evaluate()) 95 return false; 96 92 97 $resourceSurvey = new Resource(SURVEY.'/'.$rToolObject->uid); 93 98 //Remove the old value stored with the given id … … 122 127 $this->model->add(new Statement($resourceSurvey,$predicateQuid,$questionUid)); 123 128 } 124 } 125 $this->save(); 129 } 130 $this->save(); 131 return true; 126 132 } 127 133 } -
Dev/trunk/classes/User.php
r131 r186 24 24 $this->name = $name; 25 25 $this->password = $password; 26 } 26 } 27 28 /** 29 * function evaluate() 30 * Evaluates all the references of this object. 31 */ 32 public function evaluate() 33 { 34 //Do nothing. 35 } 36 27 37 } 28 38 -
Dev/trunk/classes/master.php
r58 r186 15 15 session_start(); // Start the session 16 16 17 18 19 17 function __autoload($class_name) { 20 18 require 'classes/' . $class_name . '.php'; … … 31 29 exit(); 32 30 } 31 32 33 ?>
Note: See TracChangeset
for help on using the changeset viewer.