1<?php
2/* Copyright (c) 1998-2013 ILIAS open source, Extended GPL, see docs/LICENSE */
3
4require_once 'Modules/TestQuestionPool/classes/questions/class.ilAssQuestionSolutionComparisonExpressionImport.php';
5
6/**
7 * @author        Björn Heyser <bheyser@databay.de>
8 * @version        $Id$
9 *
10 * @package     Modules/TestQuestionPool
11 */
12class ilAssQuestionSolutionComparisonExpressionImportList implements Iterator
13{
14    /**
15     * @var integer
16     */
17    private $importQuestionId;
18
19    /**
20     * @var integer
21     */
22    private $importSkillBaseId;
23
24    /**
25     * @var integer
26     */
27    private $importSkillTrefId;
28
29    /**
30     * @var array
31     */
32    private $expressions;
33
34    /**
35     * ilAssQuestionSolutionComparisonExpressionImportList constructor.
36     */
37    public function __construct()
38    {
39        $this->importQuestionId = null;
40        $this->importSkillBaseId = null;
41        $this->importSkillTrefId = null;
42
43        $this->expressions = array();
44    }
45
46    /**
47     * @return int
48     */
49    public function getImportQuestionId()
50    {
51        return $this->importQuestionId;
52    }
53
54    /**
55     * @param int $importQuestionId
56     */
57    public function setImportQuestionId($importQuestionId)
58    {
59        $this->importQuestionId = $importQuestionId;
60    }
61
62    /**
63     * @return int
64     */
65    public function getImportSkillBaseId()
66    {
67        return $this->importSkillBaseId;
68    }
69
70    /**
71     * @param int $importSkillBaseId
72     */
73    public function setImportSkillBaseId($importSkillBaseId)
74    {
75        $this->importSkillBaseId = $importSkillBaseId;
76    }
77
78    /**
79     * @return int
80     */
81    public function getImportSkillTrefId()
82    {
83        return $this->importSkillTrefId;
84    }
85
86    /**
87     * @param int $importSkillTrefId
88     */
89    public function setImportSkillTrefId($importSkillTrefId)
90    {
91        $this->importSkillTrefId = $importSkillTrefId;
92    }
93
94    /**
95     * @return array
96     */
97    public function getExpressions()
98    {
99        return $this->expressions;
100    }
101
102    public function addExpression(ilAssQuestionSolutionComparisonExpressionImport $expression)
103    {
104        $expression->setImportQuestionId($this->getImportQuestionId());
105        $expression->setImportSkillBaseId($this->getImportSkillBaseId());
106        $expression->setImportSkillTrefId($this->getImportSkillTrefId());
107
108        $this->expressions[$expression->getOrderIndex()] = $expression;
109    }
110
111    /**
112     * @return ilAssQuestionSolutionComparisonExpressionImport
113     */
114    public function current()
115    {
116        return current($this->expressions);
117    }
118
119    /**
120     * @return ilAssQuestionSolutionComparisonExpressionImport
121     */
122    public function next()
123    {
124        return next($this->expressions);
125    }
126
127    /**
128     * @return integer|bool
129     */
130    public function key()
131    {
132        return key($this->expressions);
133    }
134
135    /**
136     * @return bool
137     */
138    public function valid()
139    {
140        return key($this->expressions) !== null;
141    }
142
143    /**
144     * @return ilAssQuestionSolutionComparisonExpressionImport|bool
145     */
146    public function rewind()
147    {
148        return reset($this->expressions);
149    }
150
151    public function sleep()
152    {
153        // TODO: Implement __sleep() method.
154    }
155
156    public function wakeup()
157    {
158        // TODO: Implement __wakeup() method.
159    }
160}
161