Ignore:
Timestamp:
03/03/12 19:09:19 (13 years ago)
Author:
hendrikvanantwerpen
Message:

Merge jos-branch 285:298

Location:
Dev/branches/rest-dojo-ui
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Dev/branches/rest-dojo-ui

  • Dev/branches/rest-dojo-ui/server/classes/models/SurveyInstance.php

    r289 r302  
    2626     * @param type $answersets: A list of answersets.
    2727     */
    28         public function __construct($uid = null, $survey = null, $starttime = null, $endtime = null, $open = null, $presetanswers = null, $answersets = null)
     28        public function __construct($uid = null, $survey = null, $starttime = null, $endtime = null, $open = 0, $presetanswers = null, $answersets = null)
    2929    {
    3030        if(!isset($uid))
     
    3737        $this->starttime = $starttime;
    3838        $this->endtime = $endtime;
    39         $this->open = $open;
     39                $this->open = $open;
    4040        $this->presetanswers = $presetanswers;
    4141        $this->answersets = $answersets;
     
    5151        if(is_string($this->survey))
    5252        {
    53             $result = Survey::get(array("uid" => $this->survey));
     53                        $surv = ResearchToolObject::stripUri($this->survey);
     54            $result = Survey::get(array("uid" => $surv["uid"]));
    5455            if(!isset($result[0]))
    5556            {
     
    6566                foreach($this->presetanswers as $answer)
    6667                {
    67                         $result = Answer::get(array("uid" => $answer));
     68                                                $ans = ResearchToolObject::stripUri($answer);
     69                        $result = Answer::get(array("uid" => $ans["uid"]));
    6870                        if(!isset($result[0]))
    6971                                return false;
     
    7981                foreach($this->answersets as $answerSet)
    8082                {
    81                         $result = AnswerSet::get(array("uid" => $answerSet));
     83                                                $aset = ResearchToolObject::stripUri($answerSet);
     84                        $result = AnswerSet::get(array("uid" => $aset["uid"]));
    8285                        if(!isset($result[0]))
    8386                        {
     
    132135        $predicateEndTime = new Resource(ENDTIME);
    133136        $model->add(new Statement($resourceSI, $predicateEndTime, $SIEndTime));
    134 
    135         $SIOpen = new Literal($this->open);
     137        $SIOpen = new Literal((bool) $this->open);
    136138        $predicateOpen = new Resource(OPEN);
    137139        $model->add(new Statement($resourceSI, $predicateOpen, $SIOpen));
     
    141143                foreach($this->presetanswers as $answer)
    142144                {
    143                         $answerId = new Literal($answer->uid);
     145                        $answerId = new Resource(ANSWER . '/' . $answer->uid);
    144146                        $predicateAnswer = new Resource(PRESET_ANSWER);
    145147                        $model->add(new Statement($resourceSI, $predicateAnswer, $answerId));
     
    151153                foreach($this->answersets as $answer)
    152154                {
    153                         $answerSetId = new Literal($answer->uid);
     155                        $answerSetId = new Resource(ANSWERSET . '/' . $answer->uid);
    154156                        $predicateAnswerSet = new Resource(HAS_ANSWERSET);
    155157                        $model->add(new Statement($resourceSI, $predicateAnswerSet, $answerSetId));
     
    163165        * Gets the array of SurveyInstance objects belonging tothe arguments supplied.
    164166        * @param type $arguments: An array containing zero or more of the following keys:
    165         *                                                 'uid', 'of_survey', 'starttime', 'endtime', 'open', 'preset_answers', 'has_answerset'
     167        *                                                 'uid', 'of_survey', 'starttime', 'endtime', 'open', 'preset_answers', 'answersets'
    166168        */
    167169        public static function get($arguments)
     
    195197                                $endTime = new DateTime();
    196198                                $endTime->setTimestamp(intval($result['?endtime']->label));
    197                                 $open = false;
    198                                 if ($result['?open'] == 'true')
    199                                         $open = true;
    200                                 $presetAnswers = SurveyInstance::getPresetAnswers($model, $result['?uid']->label);
    201                                 $answerSets = SurveyInstance::getAnswerSets($model, $result['?uid']->label);
    202                                 $sInstances[] = new SurveyInstance($result['?uid']->label, $result['?of_survey']->uri, $startTime, $endTime, $open, $presetAnswers, $answerSets);
     199                                $open = (bool) $result['?open'];
     200                                $fields = SurveyInstance::getFields($model, $result['?uid']->label);
     201                                $sInstances[] = new SurveyInstance($result['?uid']->label, $result['?of_survey']->uri, $startTime, $endTime, $open, $fields[0], $fields[1]);
    203202                        }
    204203                }
     
    207206
    208207        /**
    209          * function getPresetAnswers()
     208         * function getFields()
    210209         * @param type $model : The RDF model to query against.
    211          * @param type $uid : The UID of the SurveyInstance for which the preset answers should be retrieved.
     210         * @param type $uid : The UID of the SurveyInstance for which the preset answers and answersets should be retrieved.
     211         * returns : an array with [0] => all preset answers and [1] => all answersets.
    212212         */
    213         private static function getPresetAnswers($model, $uid)
     213        private static function getFields($model, $uid)
    214214        {
    215                 $result = $model->findRegex("[(".$uid.")]", "[(preset_answer)]", null);
     215                $result = $model->findRegex("[(".$uid.")]", "[(preset_answer)|(has_answerset)]", null);
    216216                $iterator = $result->getStatementIterator();
    217217                $answers = array();
     218                $sets = array();
    218219                while($iterator->hasNext())
    219220                {
    220221                        $element = $iterator->next();
    221                         $answers[] = $element->getLabelObject();
     222                        if($element->getLabelPredicate() == PRESET_ANSWER)
     223                                $answers[] = $element->getLabelObject();
     224                        else if($element->getLabelPredicate() == HAS_ANSWERSET)
     225                                $sets[] = $element->getLabelObject();
    222226                }
    223                 return $answers;
    224         }
    225 
    226         /**
    227          * function getAnswerSets()
    228          * @param type $model : The RDF model to query against.
    229          * @param type $uid : The UID of the SurveyInstance for which the preset answers should be retrieved.
    230          */
    231         private static function getAnswerSets($model, $uid)
    232         {
    233                 $result = $model->findRegex("[(".$uid.")]", "[(has_answerset)]", null);
    234                 $iterator = $result->getStatementIterator();
    235                 $answersets = array();
    236                 while($iterator->hasNext())
    237                 {
    238                         $element = $iterator->next();
    239                         $answersets[] = $element->getLabelObject();
    240                 }
    241                 return $answersets;
     227                return array($answers, $sets);
    242228        }
    243229
Note: See TracChangeset for help on using the changeset viewer.