4 require_once
'Modules/Test/classes/class.ilObjTest.php';
5 require_once
'Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolDefinitionFactory.php';
6 require_once
'Modules/Test/classes/class.ilTestRandomQuestionSetSourcePoolDefinitionList.php';
7 require_once
'Modules/Test/classes/class.ilTestRandomQuestionSetQuestionCollection.php';
8 require_once
'Modules/Test/classes/class.ilTestRandomQuestionCollectionSubsetApplicationList.php';
9 require_once
'Modules/Test/classes/class.ilTestRandomQuestionsSrcPoolDefinitionQuantitiesCalculation.php';
50 if ($questionCollectionProvider !== null) {
131 $this->questRelatedSrcPoolDefRegister =
array();
140 if (!$this->questRelatedSrcPoolDefRegister[$questionId]) {
144 $this->questRelatedSrcPoolDefRegister[$questionId]->addDefinition($definition);
153 if (isset($this->questRelatedSrcPoolDefRegister[$questionId])) {
154 return $this->questRelatedSrcPoolDefRegister[$questionId];
165 $this->srcPoolDefRelatedQuestRegister =
array();
174 if (!isset($this->srcPoolDefRelatedQuestRegister[$definitionId])) {
178 $this->srcPoolDefRelatedQuestRegister[$definitionId]->addQuestion($randomSetQuestion);
187 if (isset($this->srcPoolDefRelatedQuestRegister[$definitionId])) {
188 return $this->srcPoolDefRelatedQuestRegister[$definitionId];
203 $randomQuestion->getSourcePoolDefinitionId()
207 $randomQuestion->getSourcePoolDefinitionId(),
212 $randomQuestion->getQuestionId(),
213 $sourcePoolDefinition
237 $defQstCombinationCollection = $qstCollectionProvider->getSrcPoolDefListRelatedQuestCombinationCollection(
238 $srcPoolDefinitionList
241 return $defQstCombinationCollection;
257 $exclusiveQstCollection->addQuestion($question);
260 return $exclusiveQstCollection;
271 return $srcPoolDefRelatedQstCollection->getRelativeComplementCollection($exclusiveQstCollection);
284 $intersectionQstCollection = $thisDefRelatedSharedQstCollection->getIntersectionCollection(
285 $thatDefRelatedSharedQstCollection
288 return $intersectionQstCollection;
297 $intersectionQstCollectionsByDefId =
array();
300 foreach ($sharedQuestionCollection as $sharedQuestion) {
302 foreach ($relatedSrcPoolDefList as $otherDefinition) {
303 if ($otherDefinition->getId() == $definition->
getId()) {
307 if (isset($intersectionQstCollectionsByDefId[$otherDefinition->getId()])) {
312 $definition->
getId(),
313 $otherDefinition->getId()
316 $intersectionQstCollectionsByDefId[$otherDefinition->getId()] = $intersectionQuestionCollection;
320 return $intersectionQstCollectionsByDefId;
332 foreach ($intersectionQstCollectionByDefIdMap as $otherDefinitionId => $intersectionCollection) {
336 $qstCollectionSubsetApplication->setQuestions($intersectionCollection->getQuestions());
337 $qstCollectionSubsetApplication->setApplicantId($otherDefinitionId);
339 #$qstCollectionSubsetApplication->setRequiredAmount($this->getRequiredSharedQuestionAmount( 340 # $this->getSourcePoolDefinitionList()->getDefinition($otherDefinitionId) 343 $qstCollectionSubsetApplication->setRequiredAmount(
347 $qstCollectionSubsetApplicationList->addCollectionSubsetApplication($qstCollectionSubsetApplication);
350 return $qstCollectionSubsetApplicationList;
364 foreach ($sharedQuestionCollection as $sharedQuestion) {
366 foreach ($relatedSrcPoolDefList as $otherDefinition) {
367 if ($otherDefinition->getId() == $definition->
getId()) {
371 if ($intersectionSharingDefinitionList->hasDefinition($otherDefinition->getId())) {
375 $intersectionSharingDefinitionList->addDefinition($otherDefinition);
379 return $intersectionSharingDefinitionList;
389 $qstRelatedSrcPoolDefList = $this->questRelatedSrcPoolDefRegister[$question->
getQuestionId()];
390 return $qstRelatedSrcPoolDefList->getDefinitionCount() > 1;
419 $intersectionSubsetApplicationList->handleQuestionRequest($sharedQuestion);
422 return $intersectionSubsetApplicationList->getNonReservedQuestionAmount();
432 $missingExclsuiveQstCount = $exclusiveQstCollection->getMissingCount($definition->
getQuestionAmount());
433 return $missingExclsuiveQstCount;
471 $quantityCalculation->setIntersectionQuantitySharingDefinitionList(
475 return $quantityCalculation;
getIntersectionQuestionCollectionSubsetApplicationList(ilTestRandomQuestionSetSourcePoolDefinition $definition)
getSourcePoolDefinitionList()
buildQuestionCollectionSubsetApplicationListInstance()
getIntersectionQstCollectionByDefinitionMap(ilTestRandomQuestionSetSourcePoolDefinition $definition)
buildSourcePoolDefinitionListInstance()
$questionCollectionProvider
resetRegisters()
reset internal registers
resetQuestRelatedSrcPoolDefRegister()
re-setter for questRelatedSrcPoolDefRegister
resetSrcPoolDefRelatedQuestRegister()
re-setter the srcPoolDefRelatedQuestRegister
getRequiredSharedQuestionAmount(ilTestRandomQuestionSetSourcePoolDefinition $definition)
$questRelatedSrcPoolDefRegister
getSharedQuestionCollection($definitionId)
getIntersectionSharingDefinitionList(ilTestRandomQuestionSetSourcePoolDefinition $definition)
$GLOBALS['loaded']
Global hash that tracks already loaded includes.
$sourcePoolDefinitionList
getExclusiveQuestionCollection($definitionId)
getIntersectionQuestionCollection($thisDefinitionId, $thatDefinitionId)
registerSrcPoolDefRelatedQuest($definitionId, ilTestRandomQuestionSetQuestion $randomSetQuestion)
getSrcPoolDefRelatedQuestionCollection($definitionId)
$srcPoolDefRelatedQuestRegister
initialiseRegisters()
initialise the src-pool-def/question registers
getSrcPoolDefQuestionCombinationCollection()
requiresSharedQuestions(ilTestRandomQuestionSetSourcePoolDefinition $definition)
getAvailableSharedQuestionAmount(ilTestRandomQuestionSetSourcePoolDefinition $definition)
setQuestionCollectionProvider(ilTestRandomSourcePoolDefinitionQuestionCollectionProvider $questionCollectionProvider)
isQuestionUsedByMultipleSrcPoolDefinitions(ilTestRandomQuestionSetQuestion $question)
setSourcePoolDefinitionList($sourcePoolDefinitionList)
registerQuestRelatedSrcPoolDef($questionId, ilTestRandomQuestionSetSourcePoolDefinition $definition)
getQuestRelatedSrcPoolDefinitionList($questionId)
buildQuestionCollectionSubsetApplicationInstance()
calculateQuantities(ilTestRandomQuestionSetSourcePoolDefinition $definition)
buildRandomQuestionCollectionInstance()
__construct(ilTestRandomSourcePoolDefinitionQuestionCollectionProvider $questionCollectionProvider)
Create styles array
The data for the language used.
getExclusiveQuestionAmount(ilTestRandomQuestionSetSourcePoolDefinition $definition)
getSrcPoolDefRelatedQuestionAmount(ilTestRandomQuestionSetSourcePoolDefinition $definition)
getQuestionCollectionProvider()