ILIAS  release_7 Revision v7.30-3-g800a261c036
ilTestRandomQuestionSetBuilder Class Reference
+ Inheritance diagram for ilTestRandomQuestionSetBuilder:
+ Collaboration diagram for ilTestRandomQuestionSetBuilder:

Public Member Functions

 checkBuildable ()
 
 performBuild (ilTestSession $testSession)
 
 getSrcPoolDefRelatedQuestCollection (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 getSrcPoolDefListRelatedQuestUniqueCollection (ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)
 
 getCheckMessages ()
 
- Public Member Functions inherited from ilTestRandomSourcePoolDefinitionQuestionCollectionProvider
 getSrcPoolDefListRelatedQuestCombinationCollection (ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)
 
 getSrcPoolDefListRelatedQuestUniqueCollection (ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)
 
 getSrcPoolDefRelatedQuestCollection (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 

Static Public Member Functions

static getInstance (ilDBInterface $db, ilObjTest $testOBJ, ilTestRandomQuestionSetConfig $questionSetConfig, ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList, ilTestRandomQuestionSetStagingPoolQuestionList $stagingPoolQuestionList)
 

Protected Member Functions

 __construct (ilDBInterface $db, ilObjTest $testOBJ, ilTestRandomQuestionSetConfig $questionSetConfig, ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList, ilTestRandomQuestionSetStagingPoolQuestionList $stagingPoolQuestionList)
 
 storeQuestionSet (ilTestSession $testSession, $questionSet)
 
 fetchQuestionsFromStageRandomly (ilTestRandomQuestionSetQuestionCollection $questionStage, $requiredQuestionAmount)
 
 handleQuestionOrdering (ilTestRandomQuestionSetQuestionCollection $questionSet)
 

Protected Attributes

 $db = null
 
 $testOBJ = null
 
 $questionSetConfig = null
 
 $sourcePoolDefinitionList = null
 
 $stagingPoolQuestionList = null
 
 $checkMessages = array()
 

Private Member Functions

 getQuestionIdsForSourcePoolDefinitionIds (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 buildSetQuestionCollection (ilTestRandomQuestionSetSourcePoolDefinition $definition, $questionIds)
 
 hasTaxonomyFilter (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 hasTypeFilter (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 storeQuestion (ilTestSession $testSession, ilTestRandomQuestionSetQuestion $setQuestion)
 

Detailed Description

Definition at line 12 of file class.ilTestRandomQuestionSetBuilder.php.

Constructor & Destructor Documentation

◆ __construct()

ilTestRandomQuestionSetBuilder::__construct ( ilDBInterface  $db,
ilObjTest  $testOBJ,
ilTestRandomQuestionSetConfig  $questionSetConfig,
ilTestRandomQuestionSetSourcePoolDefinitionList  $sourcePoolDefinitionList,
ilTestRandomQuestionSetStagingPoolQuestionList  $stagingPoolQuestionList 
)
protected

Member Function Documentation

◆ buildSetQuestionCollection()

ilTestRandomQuestionSetBuilder::buildSetQuestionCollection ( ilTestRandomQuestionSetSourcePoolDefinition  $definition,
  $questionIds 
)
private

Definition at line 147 of file class.ilTestRandomQuestionSetBuilder.php.

148 {
149 $setQuestionCollection = new ilTestRandomQuestionSetQuestionCollection();
150
151 foreach ($questionIds as $questionId) {
152 $setQuestion = new ilTestRandomQuestionSetQuestion();
153
154 $setQuestion->setQuestionId($questionId);
155 $setQuestion->setSourcePoolDefinitionId($definition->getId());
156
157 $setQuestionCollection->addQuestion($setQuestion);
158 }
159
160 return $setQuestionCollection;
161 }

References ilTestRandomQuestionSetSourcePoolDefinition\getId().

Referenced by getSrcPoolDefRelatedQuestCollection().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ checkBuildable()

ilTestRandomQuestionSetBuilder::checkBuildable ( )
abstract

◆ fetchQuestionsFromStageRandomly()

ilTestRandomQuestionSetBuilder::fetchQuestionsFromStageRandomly ( ilTestRandomQuestionSetQuestionCollection  $questionStage,
  $requiredQuestionAmount 
)
protected

Definition at line 221 of file class.ilTestRandomQuestionSetBuilder.php.

222 {
223 $questionSet = $questionStage->getRandomQuestionCollection($requiredQuestionAmount);
224
225 return $questionSet;
226 }

References ilTestRandomQuestionSetQuestionCollection\getRandomQuestionCollection().

Referenced by ilTestRandomQuestionSetBuilderWithAmountPerTest\performBuild().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getCheckMessages()

ilTestRandomQuestionSetBuilder::getCheckMessages ( )

◆ getInstance()

static ilTestRandomQuestionSetBuilder::getInstance ( ilDBInterface  $db,
ilObjTest  $testOBJ,
ilTestRandomQuestionSetConfig  $questionSetConfig,
ilTestRandomQuestionSetSourcePoolDefinitionList  $sourcePoolDefinitionList,
ilTestRandomQuestionSetStagingPoolQuestionList  $stagingPoolQuestionList 
)
staticfinal

Definition at line 237 of file class.ilTestRandomQuestionSetBuilder.php.

243 {
244 if ($questionSetConfig->isQuestionAmountConfigurationModePerPool()) {
245 require_once 'Modules/Test/classes/class.ilTestRandomQuestionSetBuilderWithAmountPerPool.php';
246
248 $db,
249 $testOBJ,
253 );
254 }
255
256 require_once 'Modules/Test/classes/class.ilTestRandomQuestionSetBuilderWithAmountPerTest.php';
257
259 $db,
260 $testOBJ,
264 );
265 }

References $db, $questionSetConfig, $sourcePoolDefinitionList, $stagingPoolQuestionList, and $testOBJ.

Referenced by ilTestOutputGUI\generateRandomTestPassForActiveUser(), and ilTestRandomQuestionSetConfig\isQuestionSetBuildable().

+ Here is the caller graph for this function:

◆ getQuestionIdsForSourcePoolDefinitionIds()

ilTestRandomQuestionSetBuilder::getQuestionIdsForSourcePoolDefinitionIds ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
private

Definition at line 113 of file class.ilTestRandomQuestionSetBuilder.php.

114 {
115 $this->stagingPoolQuestionList->resetQuestionList();
116
117 $this->stagingPoolQuestionList->setTestObjId($this->testOBJ->getId());
118 $this->stagingPoolQuestionList->setTestId($this->testOBJ->getTestId());
119 $this->stagingPoolQuestionList->setPoolId($definition->getPoolId());
120
121 if ($this->hasTaxonomyFilter($definition)) {
122 // fau: taxFilter/typeFilter - use new taxonomy filter
123 foreach ($definition->getMappedTaxonomyFilter() as $taxId => $nodeIds) {
124 $this->stagingPoolQuestionList->addTaxonomyFilter($taxId, $nodeIds);
125 }
126 #$this->stagingPoolQuestionList->addTaxonomyFilter(
127 # $definition->getMappedFilterTaxId(), array($definition->getMappedFilterTaxNodeId())
128 #);
129 // fau.
130 }
131
132 if (count($definition->getLifecycleFilter())) {
133 $this->stagingPoolQuestionList->setLifecycleFilter($definition->getLifecycleFilter());
134 }
135
136 // fau: taxFilter/typeFilter - use type filter
137 if ($this->hasTypeFilter($definition)) {
138 $this->stagingPoolQuestionList->setTypeFilter($definition->getTypeFilter());
139 }
140 // fau.
141
142 $this->stagingPoolQuestionList->loadQuestions();
143
144 return $this->stagingPoolQuestionList->getQuestions();
145 }
hasTaxonomyFilter(ilTestRandomQuestionSetSourcePoolDefinition $definition)
hasTypeFilter(ilTestRandomQuestionSetSourcePoolDefinition $definition)

References ilTestRandomQuestionSetSourcePoolDefinition\getLifecycleFilter(), ilTestRandomQuestionSetSourcePoolDefinition\getMappedTaxonomyFilter(), ilTestRandomQuestionSetSourcePoolDefinition\getPoolId(), ilTestRandomQuestionSetSourcePoolDefinition\getTypeFilter(), hasTaxonomyFilter(), and hasTypeFilter().

Referenced by getSrcPoolDefRelatedQuestCollection().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSrcPoolDefListRelatedQuestUniqueCollection()

ilTestRandomQuestionSetBuilder::getSrcPoolDefListRelatedQuestUniqueCollection ( ilTestRandomQuestionSetSourcePoolDefinitionList  $sourcePoolDefinitionList)
Parameters
ilTestRandomQuestionSetSourcePoolDefinitionList$sourcePoolDefinitionList
Returns
ilTestRandomQuestionSetQuestionCollection

Implements ilTestRandomSourcePoolDefinitionQuestionCollectionProvider.

Definition at line 106 of file class.ilTestRandomQuestionSetBuilder.php.

107 {
108 $combinationCollection = $this->getSrcPoolDefListRelatedQuestCombinationCollection($sourcePoolDefinitionList);
109 return $combinationCollection->getUniqueQuestionCollection();
110 }
getSrcPoolDefListRelatedQuestCombinationCollection(ilTestRandomQuestionSetSourcePoolDefinitionList $sourcePoolDefinitionList)

References ilTestRandomSourcePoolDefinitionQuestionCollectionProvider\getSrcPoolDefListRelatedQuestCombinationCollection().

Referenced by ilTestRandomQuestionSetBuilderWithAmountPerPool\checkBuildable(), ilTestRandomQuestionSetBuilderWithAmountPerTest\checkBuildable(), and ilTestRandomQuestionSetBuilderWithAmountPerTest\performBuild().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ getSrcPoolDefRelatedQuestCollection()

ilTestRandomQuestionSetBuilder::getSrcPoolDefRelatedQuestCollection ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
Parameters
ilTestRandomQuestionSetSourcePoolDefinition$definition
Returns
ilTestRandomQuestionSetQuestionCollection

Implements ilTestRandomSourcePoolDefinitionQuestionCollectionProvider.

Definition at line 92 of file class.ilTestRandomQuestionSetBuilder.php.

94 {
95 $questionIds = $this->getQuestionIdsForSourcePoolDefinitionIds($definition);
96 $questionStage = $this->buildSetQuestionCollection($definition, $questionIds);
97
98 return $questionStage;
99 }
buildSetQuestionCollection(ilTestRandomQuestionSetSourcePoolDefinition $definition, $questionIds)
getQuestionIdsForSourcePoolDefinitionIds(ilTestRandomQuestionSetSourcePoolDefinition $definition)

References buildSetQuestionCollection(), and getQuestionIdsForSourcePoolDefinitionIds().

+ Here is the call graph for this function:

◆ handleQuestionOrdering()

ilTestRandomQuestionSetBuilder::handleQuestionOrdering ( ilTestRandomQuestionSetQuestionCollection  $questionSet)
protected

Definition at line 228 of file class.ilTestRandomQuestionSetBuilder.php.

229 {
230 if ($this->testOBJ->getShuffleQuestions()) {
231 $questionSet->shuffleQuestions();
232 }
233 }

References ilTestRandomQuestionSetQuestionCollection\shuffleQuestions().

Referenced by ilTestRandomQuestionSetBuilderWithAmountPerTest\performBuild().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hasTaxonomyFilter()

ilTestRandomQuestionSetBuilder::hasTaxonomyFilter ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
private

Definition at line 163 of file class.ilTestRandomQuestionSetBuilder.php.

164 {
165 // fau: taxFilter - check for existing taxonomy filter
166 if (!count($definition->getMappedTaxonomyFilter())) {
167 return false;
168 }
169 #if( !(int)$definition->getMappedFilterTaxId() )
170 #{
171 # return false;
172 #}
173 #
174 #if( !(int)$definition->getMappedFilterTaxNodeId() )
175 #{
176 # return false;
177 #}
178 // fau.
179 return true;
180 }

References ilTestRandomQuestionSetSourcePoolDefinition\getMappedTaxonomyFilter().

Referenced by getQuestionIdsForSourcePoolDefinitionIds().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ hasTypeFilter()

ilTestRandomQuestionSetBuilder::hasTypeFilter ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
private

Definition at line 183 of file class.ilTestRandomQuestionSetBuilder.php.

184 {
185 if (count($definition->getTypeFilter())) {
186 return true;
187 }
188
189 return false;
190 }

References ilTestRandomQuestionSetSourcePoolDefinition\getTypeFilter().

Referenced by getQuestionIdsForSourcePoolDefinitionIds().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ performBuild()

ilTestRandomQuestionSetBuilder::performBuild ( ilTestSession  $testSession)
abstract

◆ storeQuestion()

ilTestRandomQuestionSetBuilder::storeQuestion ( ilTestSession  $testSession,
ilTestRandomQuestionSetQuestion  $setQuestion 
)
private

Definition at line 206 of file class.ilTestRandomQuestionSetBuilder.php.

207 {
208 $nextId = $this->db->nextId('tst_test_rnd_qst');
209
210 $this->db->insert('tst_test_rnd_qst', array(
211 'test_random_question_id' => array('integer', $nextId),
212 'active_fi' => array('integer', $testSession->getActiveId()),
213 'question_fi' => array('integer', $setQuestion->getQuestionId()),
214 'sequence' => array('integer', $setQuestion->getSequencePosition()),
215 'pass' => array('integer', $testSession->getPass()),
216 'tstamp' => array('integer', time()),
217 'src_pool_def_fi' => array('integer', $setQuestion->getSourcePoolDefinitionId())
218 ));
219 }

References ilTestSession\getActiveId(), ilTestSession\getPass(), ilTestRandomQuestionSetQuestion\getQuestionId(), ilTestRandomQuestionSetQuestion\getSequencePosition(), and ilTestRandomQuestionSetQuestion\getSourcePoolDefinitionId().

Referenced by storeQuestionSet().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ storeQuestionSet()

ilTestRandomQuestionSetBuilder::storeQuestionSet ( ilTestSession  $testSession,
  $questionSet 
)
protected

Definition at line 193 of file class.ilTestRandomQuestionSetBuilder.php.

194 {
195 $position = 0;
196
197 foreach ($questionSet->getQuestions() as $setQuestion) {
198 /* @var ilTestRandomQuestionSetQuestion $setQuestion */
199
200 $setQuestion->setSequencePosition($position++);
201
202 $this->storeQuestion($testSession, $setQuestion);
203 }
204 }
storeQuestion(ilTestSession $testSession, ilTestRandomQuestionSetQuestion $setQuestion)

References storeQuestion().

Referenced by ilTestRandomQuestionSetBuilderWithAmountPerTest\performBuild().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Field Documentation

◆ $checkMessages

ilTestRandomQuestionSetBuilder::$checkMessages = array()
protected

Definition at line 40 of file class.ilTestRandomQuestionSetBuilder.php.

Referenced by getCheckMessages().

◆ $db

ilTestRandomQuestionSetBuilder::$db = null
protected

Definition at line 17 of file class.ilTestRandomQuestionSetBuilder.php.

Referenced by __construct(), and getInstance().

◆ $questionSetConfig

ilTestRandomQuestionSetBuilder::$questionSetConfig = null
protected

Definition at line 27 of file class.ilTestRandomQuestionSetBuilder.php.

Referenced by __construct(), and getInstance().

◆ $sourcePoolDefinitionList

ilTestRandomQuestionSetBuilder::$sourcePoolDefinitionList = null
protected

Definition at line 32 of file class.ilTestRandomQuestionSetBuilder.php.

Referenced by __construct(), and getInstance().

◆ $stagingPoolQuestionList

ilTestRandomQuestionSetBuilder::$stagingPoolQuestionList = null
protected

Definition at line 37 of file class.ilTestRandomQuestionSetBuilder.php.

Referenced by __construct(), and getInstance().

◆ $testOBJ

ilTestRandomQuestionSetBuilder::$testOBJ = null
protected

Definition at line 22 of file class.ilTestRandomQuestionSetBuilder.php.

Referenced by __construct(), and getInstance().


The documentation for this class was generated from the following file: