ILIAS  release_6 Revision v6.24-5-g0c8bfefb3b8
ilTestRandomQuestionsQuantitiesDistribution Class Reference
+ Collaboration diagram for ilTestRandomQuestionsQuantitiesDistribution:

Public Member Functions

 __construct (ilTestRandomSourcePoolDefinitionQuestionCollectionProvider $questionCollectionProvider)
 
 setQuestionCollectionProvider (ilTestRandomSourcePoolDefinitionQuestionCollectionProvider $questionCollectionProvider)
 
 getQuestionCollectionProvider ()
 
 setSourcePoolDefinitionList ($sourcePoolDefinitionList)
 
 getSourcePoolDefinitionList ()
 
 initialise ()
 
 reset ()
 
 calculateQuantities (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 

Protected Member Functions

 buildSourcePoolDefinitionListInstance ()
 
 buildRandomQuestionCollectionInstance ()
 
 buildQuestionCollectionSubsetApplicationInstance ()
 
 buildQuestionCollectionSubsetApplicationListInstance ()
 
 resetQuestRelatedSrcPoolDefRegister ()
 re-setter for questRelatedSrcPoolDefRegister More...
 
 registerQuestRelatedSrcPoolDef ($questionId, ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 getQuestRelatedSrcPoolDefinitionList ($questionId)
 
 resetSrcPoolDefRelatedQuestRegister ()
 re-setter the srcPoolDefRelatedQuestRegister More...
 
 registerSrcPoolDefRelatedQuest ($definitionId, ilTestRandomQuestionSetQuestion $randomSetQuestion)
 
 getSrcPoolDefRelatedQuestionCollection ($definitionId)
 
 initialiseRegisters ()
 initialise the src-pool-def/question registers More...
 
 resetRegisters ()
 reset internal registers More...
 
 getSrcPoolDefQuestionCombinationCollection ()
 
 getExclusiveQuestionCollection ($definitionId)
 
 getSharedQuestionCollection ($definitionId)
 
 getIntersectionQuestionCollection ($thisDefinitionId, $thatDefinitionId)
 
 getIntersectionQstCollectionByDefinitionMap (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 getIntersectionQuestionCollectionSubsetApplicationList (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 getIntersectionSharingDefinitionList (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 isQuestionUsedByMultipleSrcPoolDefinitions (ilTestRandomQuestionSetQuestion $question)
 
 getSrcPoolDefRelatedQuestionAmount (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 getExclusiveQuestionAmount (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 getAvailableSharedQuestionAmount (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 getRequiredSharedQuestionAmount (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 
 requiresSharedQuestions (ilTestRandomQuestionSetSourcePoolDefinition $definition)
 

Protected Attributes

 $questionCollectionProvider
 
 $sourcePoolDefinitionList
 
 $questRelatedSrcPoolDefRegister = array()
 
 $srcPoolDefRelatedQuestRegister = array()
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilTestRandomQuestionsQuantitiesDistribution::__construct ( ilTestRandomSourcePoolDefinitionQuestionCollectionProvider  $questionCollectionProvider)
Parameters
ilTestRandomSourcePoolDefinitionQuestionCollectionProvider$questionCollectionProvider

Definition at line 48 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

49 {
50 if ($questionCollectionProvider !== null) {
51 $this->setQuestionCollectionProvider($questionCollectionProvider);
52 }
53 }
setQuestionCollectionProvider(ilTestRandomSourcePoolDefinitionQuestionCollectionProvider $questionCollectionProvider)

References $questionCollectionProvider, and setQuestionCollectionProvider().

+ Here is the call graph for this function:

Member Function Documentation

◆ buildQuestionCollectionSubsetApplicationInstance()

ilTestRandomQuestionsQuantitiesDistribution::buildQuestionCollectionSubsetApplicationInstance ( )
protected

◆ buildQuestionCollectionSubsetApplicationListInstance()

ilTestRandomQuestionsQuantitiesDistribution::buildQuestionCollectionSubsetApplicationListInstance ( )
protected

◆ buildRandomQuestionCollectionInstance()

ilTestRandomQuestionsQuantitiesDistribution::buildRandomQuestionCollectionInstance ( )
protected

◆ buildSourcePoolDefinitionListInstance()

ilTestRandomQuestionsQuantitiesDistribution::buildSourcePoolDefinitionListInstance ( )
protected
Returns
ilTestRandomQuestionSetSourcePoolDefinitionList

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

93 {
94 global $DIC; /* @var ILIAS\DI\Container $DIC */
95 $anyTestObject = new ilObjTest();
96 $nonRequiredDb = $DIC['ilDB'];
97 $nonUsedFactory = new ilTestRandomQuestionSetSourcePoolDefinitionFactory($nonRequiredDb, $anyTestObject);
98 return new ilTestRandomQuestionSetSourcePoolDefinitionList($nonRequiredDb, $anyTestObject, $nonUsedFactory);
99 }
$DIC
Definition: xapitoken.php:46

References $DIC.

Referenced by getIntersectionSharingDefinitionList(), and registerQuestRelatedSrcPoolDef().

+ Here is the caller graph for this function:

◆ calculateQuantities()

ilTestRandomQuestionsQuantitiesDistribution::calculateQuantities ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
Parameters
ilTestRandomQuestionSetSourcePoolDefinition$definition
Returns
ilTestRandomQuestionsSrcPoolDefinitionQuantitiesCalculation

Definition at line 464 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

465 {
466 $quantityCalculation = new ilTestRandomQuestionsSrcPoolDefinitionQuantitiesCalculation($definition);
467
468 $quantityCalculation->setOverallQuestionAmount($this->getSrcPoolDefRelatedQuestionAmount($definition));
469 $quantityCalculation->setExclusiveQuestionAmount($this->getExclusiveQuestionAmount($definition));
470 $quantityCalculation->setAvailableSharedQuestionAmount($this->getAvailableSharedQuestionAmount($definition));
471
472 $quantityCalculation->setIntersectionQuantitySharingDefinitionList(
473 $this->getIntersectionSharingDefinitionList($definition)
474 );
475
476 return $quantityCalculation;
477 }
getAvailableSharedQuestionAmount(ilTestRandomQuestionSetSourcePoolDefinition $definition)
getExclusiveQuestionAmount(ilTestRandomQuestionSetSourcePoolDefinition $definition)
getSrcPoolDefRelatedQuestionAmount(ilTestRandomQuestionSetSourcePoolDefinition $definition)
getIntersectionSharingDefinitionList(ilTestRandomQuestionSetSourcePoolDefinition $definition)

References getAvailableSharedQuestionAmount(), getExclusiveQuestionAmount(), getIntersectionSharingDefinitionList(), and getSrcPoolDefRelatedQuestionAmount().

+ Here is the call graph for this function:

◆ getAvailableSharedQuestionAmount()

ilTestRandomQuestionsQuantitiesDistribution::getAvailableSharedQuestionAmount ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
protected
Parameters
ilTestRandomQuestionSetSourcePoolDefinition$definition
Returns
integer $availableSharedQuestionAmount

Definition at line 415 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

416 {
417 $intersectionSubsetApplicationList = $this->getIntersectionQuestionCollectionSubsetApplicationList($definition);
418
419 foreach ($this->getSharedQuestionCollection($definition->getId()) as $sharedQuestion) {
420 $intersectionSubsetApplicationList->handleQuestionRequest($sharedQuestion);
421 }
422
423 return $intersectionSubsetApplicationList->getNonReservedQuestionAmount();
424 }
getIntersectionQuestionCollectionSubsetApplicationList(ilTestRandomQuestionSetSourcePoolDefinition $definition)

References ilTestRandomQuestionSetSourcePoolDefinition\getId(), getIntersectionQuestionCollectionSubsetApplicationList(), and getSharedQuestionCollection().

Referenced by calculateQuantities().

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

◆ getExclusiveQuestionAmount()

ilTestRandomQuestionsQuantitiesDistribution::getExclusiveQuestionAmount ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
protected
Parameters
ilTestRandomQuestionSetSourcePoolDefinition$definition
Returns
integer

Definition at line 406 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

407 {
408 return $this->getExclusiveQuestionCollection($definition->getId())->getQuestionAmount();
409 }

References getExclusiveQuestionCollection(), and ilTestRandomQuestionSetSourcePoolDefinition\getId().

Referenced by calculateQuantities().

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

◆ getExclusiveQuestionCollection()

ilTestRandomQuestionsQuantitiesDistribution::getExclusiveQuestionCollection (   $definitionId)
protected
Parameters
integer$definitionId
Returns
ilTestRandomQuestionSetQuestionCollection

Definition at line 249 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

250 {
251 $exclusiveQstCollection = $this->buildRandomQuestionCollectionInstance();
252
253 foreach ($this->getSrcPoolDefRelatedQuestionCollection($definitionId) as $question) {
254 if ($this->isQuestionUsedByMultipleSrcPoolDefinitions($question)) {
255 continue;
256 }
257
258 $exclusiveQstCollection->addQuestion($question);
259 }
260
261 return $exclusiveQstCollection;
262 }
isQuestionUsedByMultipleSrcPoolDefinitions(ilTestRandomQuestionSetQuestion $question)

References buildRandomQuestionCollectionInstance(), getSrcPoolDefRelatedQuestionCollection(), and isQuestionUsedByMultipleSrcPoolDefinitions().

Referenced by getExclusiveQuestionAmount(), getRequiredSharedQuestionAmount(), and getSharedQuestionCollection().

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

◆ getIntersectionQstCollectionByDefinitionMap()

ilTestRandomQuestionsQuantitiesDistribution::getIntersectionQstCollectionByDefinitionMap ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
protected
Parameters
ilTestRandomQuestionSetSourcePoolDefinition$definition
Returns
array[ $definitionId => ilTestRandomQuestionSetQuestionCollection ]

Definition at line 296 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

297 {
298 $intersectionQstCollectionsByDefId = array();
299
300 $sharedQuestionCollection = $this->getSharedQuestionCollection($definition->getId());
301 foreach ($sharedQuestionCollection as $sharedQuestion) {
302 $relatedSrcPoolDefList = $this->getQuestRelatedSrcPoolDefinitionList($sharedQuestion->getQuestionId());
303 foreach ($relatedSrcPoolDefList as $otherDefinition) {
304 if ($otherDefinition->getId() == $definition->getId()) {
305 continue;
306 }
307
308 if (isset($intersectionQstCollectionsByDefId[$otherDefinition->getId()])) {
309 continue;
310 }
311
312 $intersectionQuestionCollection = $this->getIntersectionQuestionCollection(
313 $definition->getId(),
314 $otherDefinition->getId()
315 );
316
317 $intersectionQstCollectionsByDefId[$otherDefinition->getId()] = $intersectionQuestionCollection;
318 }
319 }
320
321 return $intersectionQstCollectionsByDefId;
322 }

References ilTestRandomQuestionSetSourcePoolDefinition\getId(), getIntersectionQuestionCollection(), getQuestRelatedSrcPoolDefinitionList(), and getSharedQuestionCollection().

Referenced by getIntersectionQuestionCollectionSubsetApplicationList().

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

◆ getIntersectionQuestionCollection()

ilTestRandomQuestionsQuantitiesDistribution::getIntersectionQuestionCollection (   $thisDefinitionId,
  $thatDefinitionId 
)
protected
Parameters
integer$thisDefinitionId
integer$thatDefinitionId
Returns
ilTestRandomQuestionSetQuestionCollection

Definition at line 280 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

281 {
282 $thisDefRelatedSharedQstCollection = $this->getSharedQuestionCollection($thisDefinitionId);
283 $thatDefRelatedSharedQstCollection = $this->getSharedQuestionCollection($thatDefinitionId);
284
285 $intersectionQstCollection = $thisDefRelatedSharedQstCollection->getIntersectionCollection(
286 $thatDefRelatedSharedQstCollection
287 );
288
289 return $intersectionQstCollection;
290 }

References getSharedQuestionCollection().

Referenced by getIntersectionQstCollectionByDefinitionMap().

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

◆ getIntersectionQuestionCollectionSubsetApplicationList()

ilTestRandomQuestionsQuantitiesDistribution::getIntersectionQuestionCollectionSubsetApplicationList ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
protected
Parameters
ilTestRandomQuestionSetSourcePoolDefinition$definition
Returns
ilTestRandomQuestionCollectionSubsetApplicationList

Definition at line 328 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

329 {
330 $qstCollectionSubsetApplicationList = $this->buildQuestionCollectionSubsetApplicationListInstance();
331
332 $intersectionQstCollectionByDefIdMap = $this->getIntersectionQstCollectionByDefinitionMap($definition);
333 foreach ($intersectionQstCollectionByDefIdMap as $otherDefinitionId => $intersectionCollection) {
334 /* @var ilTestRandomQuestionSetQuestionCollection $intersectionCollection */
335
336 $qstCollectionSubsetApplication = $this->buildQuestionCollectionSubsetApplicationInstance();
337 $qstCollectionSubsetApplication->setQuestions($intersectionCollection->getQuestions());
338 $qstCollectionSubsetApplication->setApplicantId($otherDefinitionId);
339
340 #$qstCollectionSubsetApplication->setRequiredAmount($this->getRequiredSharedQuestionAmount(
341 # $this->getSourcePoolDefinitionList()->getDefinition($otherDefinitionId)
342 #));
343
344 $qstCollectionSubsetApplication->setRequiredAmount(
345 $this->getSourcePoolDefinitionList()->getDefinition($otherDefinitionId)->getQuestionAmount()
346 );
347
348 $qstCollectionSubsetApplicationList->addCollectionSubsetApplication($qstCollectionSubsetApplication);
349 }
350
351 return $qstCollectionSubsetApplicationList;
352 }
getIntersectionQstCollectionByDefinitionMap(ilTestRandomQuestionSetSourcePoolDefinition $definition)

References buildQuestionCollectionSubsetApplicationInstance(), buildQuestionCollectionSubsetApplicationListInstance(), getIntersectionQstCollectionByDefinitionMap(), and getSourcePoolDefinitionList().

Referenced by getAvailableSharedQuestionAmount().

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

◆ getIntersectionSharingDefinitionList()

ilTestRandomQuestionsQuantitiesDistribution::getIntersectionSharingDefinitionList ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
protected
Parameters
ilTestRandomQuestionSetSourcePoolDefinition$definition
Returns
ilTestRandomQuestionSetSourcePoolDefinitionList

Definition at line 360 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

361 {
362 $intersectionSharingDefinitionList = $this->buildSourcePoolDefinitionListInstance();
363
364 $sharedQuestionCollection = $this->getSharedQuestionCollection($definition->getId());
365 foreach ($sharedQuestionCollection as $sharedQuestion) {
366 $relatedSrcPoolDefList = $this->getQuestRelatedSrcPoolDefinitionList($sharedQuestion->getQuestionId());
367 foreach ($relatedSrcPoolDefList as $otherDefinition) {
368 if ($otherDefinition->getId() == $definition->getId()) {
369 continue;
370 }
371
372 if ($intersectionSharingDefinitionList->hasDefinition($otherDefinition->getId())) {
373 continue;
374 }
375
376 $intersectionSharingDefinitionList->addDefinition($otherDefinition);
377 }
378 }
379
380 return $intersectionSharingDefinitionList;
381 }

References buildSourcePoolDefinitionListInstance(), ilTestRandomQuestionSetSourcePoolDefinition\getId(), getQuestRelatedSrcPoolDefinitionList(), and getSharedQuestionCollection().

Referenced by calculateQuantities().

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

◆ getQuestionCollectionProvider()

ilTestRandomQuestionsQuantitiesDistribution::getQuestionCollectionProvider ( )

◆ getQuestRelatedSrcPoolDefinitionList()

ilTestRandomQuestionsQuantitiesDistribution::getQuestRelatedSrcPoolDefinitionList (   $questionId)
protected
Parameters
$questionId
Returns
ilTestRandomQuestionSetSourcePoolDefinitionList

Definition at line 152 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

153 {
154 if (isset($this->questRelatedSrcPoolDefRegister[$questionId])) {
155 return $this->questRelatedSrcPoolDefRegister[$questionId];
156 }
157
158 return null;
159 }

Referenced by getIntersectionQstCollectionByDefinitionMap(), and getIntersectionSharingDefinitionList().

+ Here is the caller graph for this function:

◆ getRequiredSharedQuestionAmount()

ilTestRandomQuestionsQuantitiesDistribution::getRequiredSharedQuestionAmount ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
protected
Parameters
ilTestRandomQuestionSetSourcePoolDefinition$definition
Returns
integer

Definition at line 430 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

431 {
432 $exclusiveQstCollection = $this->getExclusiveQuestionCollection($definition->getId());
433 $missingExclsuiveQstCount = $exclusiveQstCollection->getMissingCount($definition->getQuestionAmount());
434 return $missingExclsuiveQstCount;
435 }

References getExclusiveQuestionCollection(), ilTestRandomQuestionSetSourcePoolDefinition\getId(), and ilTestRandomQuestionSetSourcePoolDefinition\getQuestionAmount().

Referenced by requiresSharedQuestions().

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

◆ getSharedQuestionCollection()

ilTestRandomQuestionsQuantitiesDistribution::getSharedQuestionCollection (   $definitionId)
protected
Parameters
integer$definitionId
Returns
ilTestRandomQuestionSetQuestionCollection

Definition at line 268 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

269 {
270 $srcPoolDefRelatedQstCollection = $this->getSrcPoolDefRelatedQuestionCollection($definitionId);
271 $exclusiveQstCollection = $this->getExclusiveQuestionCollection($definitionId);
272 return $srcPoolDefRelatedQstCollection->getRelativeComplementCollection($exclusiveQstCollection);
273 }

References getExclusiveQuestionCollection(), and getSrcPoolDefRelatedQuestionCollection().

Referenced by getAvailableSharedQuestionAmount(), getIntersectionQstCollectionByDefinitionMap(), getIntersectionQuestionCollection(), and getIntersectionSharingDefinitionList().

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

◆ getSourcePoolDefinitionList()

◆ getSrcPoolDefQuestionCombinationCollection()

ilTestRandomQuestionsQuantitiesDistribution::getSrcPoolDefQuestionCombinationCollection ( )
protected
Returns
ilTestRandomQuestionSetQuestionCollection

Definition at line 233 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

234 {
235 $qstCollectionProvider = $this->getQuestionCollectionProvider();
236 $srcPoolDefinitionList = $this->getSourcePoolDefinitionList();
237
238 $defQstCombinationCollection = $qstCollectionProvider->getSrcPoolDefListRelatedQuestCombinationCollection(
239 $srcPoolDefinitionList
240 );
241
242 return $defQstCombinationCollection;
243 }

References getQuestionCollectionProvider(), and getSourcePoolDefinitionList().

Referenced by initialiseRegisters().

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

◆ getSrcPoolDefRelatedQuestionAmount()

ilTestRandomQuestionsQuantitiesDistribution::getSrcPoolDefRelatedQuestionAmount ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
protected
Parameters
ilTestRandomQuestionSetSourcePoolDefinition$definition

Definition at line 397 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

398 {
399 return $this->getSrcPoolDefRelatedQuestionCollection($definition->getId())->getQuestionAmount();
400 }

References ilTestRandomQuestionSetSourcePoolDefinition\getId(), and getSrcPoolDefRelatedQuestionCollection().

Referenced by calculateQuantities().

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

◆ getSrcPoolDefRelatedQuestionCollection()

ilTestRandomQuestionsQuantitiesDistribution::getSrcPoolDefRelatedQuestionCollection (   $definitionId)
protected
Parameters
integer$definitionId
Returns
ilTestRandomQuestionSetQuestionCollection

Definition at line 186 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

187 {
188 if (isset($this->srcPoolDefRelatedQuestRegister[$definitionId])) {
189 return $this->srcPoolDefRelatedQuestRegister[$definitionId];
190 }
191
193 }

Referenced by getExclusiveQuestionCollection(), getSharedQuestionCollection(), and getSrcPoolDefRelatedQuestionAmount().

+ Here is the caller graph for this function:

◆ initialise()

ilTestRandomQuestionsQuantitiesDistribution::initialise ( )

Definition at line 448 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

449 {
450 $this->initialiseRegisters();
451 }

References initialiseRegisters().

+ Here is the call graph for this function:

◆ initialiseRegisters()

ilTestRandomQuestionsQuantitiesDistribution::initialiseRegisters ( )
protected

initialise the src-pool-def/question registers

Definition at line 200 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

201 {
202 foreach ($this->getSrcPoolDefQuestionCombinationCollection() as $randomQuestion) {
203 $sourcePoolDefinition = $this->getSourcePoolDefinitionList()->getDefinition(
204 $randomQuestion->getSourcePoolDefinitionId()
205 );
206
208 $randomQuestion->getSourcePoolDefinitionId(),
209 $randomQuestion
210 );
211
213 $randomQuestion->getQuestionId(),
214 $sourcePoolDefinition
215 );
216 }
217 }
registerQuestRelatedSrcPoolDef($questionId, ilTestRandomQuestionSetSourcePoolDefinition $definition)
registerSrcPoolDefRelatedQuest($definitionId, ilTestRandomQuestionSetQuestion $randomSetQuestion)

References getSourcePoolDefinitionList(), getSrcPoolDefQuestionCombinationCollection(), registerQuestRelatedSrcPoolDef(), and registerSrcPoolDefRelatedQuest().

Referenced by initialise().

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

◆ isQuestionUsedByMultipleSrcPoolDefinitions()

ilTestRandomQuestionsQuantitiesDistribution::isQuestionUsedByMultipleSrcPoolDefinitions ( ilTestRandomQuestionSetQuestion  $question)
protected
Parameters
ilTestRandomQuestionSetQuestion$question
Returns
bool

Definition at line 387 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

388 {
389 /* @var ilTestRandomQuestionSetSourcePoolDefinitionList $qstRelatedSrcPoolDefList */
390 $qstRelatedSrcPoolDefList = $this->questRelatedSrcPoolDefRegister[$question->getQuestionId()];
391 return $qstRelatedSrcPoolDefList->getDefinitionCount() > 1;
392 }

References ilTestRandomQuestionSetQuestion\getQuestionId().

Referenced by getExclusiveQuestionCollection().

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

◆ registerQuestRelatedSrcPoolDef()

ilTestRandomQuestionsQuantitiesDistribution::registerQuestRelatedSrcPoolDef (   $questionId,
ilTestRandomQuestionSetSourcePoolDefinition  $definition 
)
protected
Parameters
integer$questionId
ilTestRandomQuestionSetSourcePoolDefinition$definition

Definition at line 139 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

140 {
141 if (!$this->questRelatedSrcPoolDefRegister[$questionId]) {
142 $this->questRelatedSrcPoolDefRegister[$questionId] = $this->buildSourcePoolDefinitionListInstance();
143 }
144
145 $this->questRelatedSrcPoolDefRegister[$questionId]->addDefinition($definition);
146 }

References buildSourcePoolDefinitionListInstance().

Referenced by initialiseRegisters().

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

◆ registerSrcPoolDefRelatedQuest()

ilTestRandomQuestionsQuantitiesDistribution::registerSrcPoolDefRelatedQuest (   $definitionId,
ilTestRandomQuestionSetQuestion  $randomSetQuestion 
)
protected
Parameters
integer$definitionId
ilTestRandomQuestionSetQuestion$randomSetQuestion

Definition at line 173 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

174 {
175 if (!isset($this->srcPoolDefRelatedQuestRegister[$definitionId])) {
176 $this->srcPoolDefRelatedQuestRegister[$definitionId] = $this->buildRandomQuestionCollectionInstance();
177 }
178
179 $this->srcPoolDefRelatedQuestRegister[$definitionId]->addQuestion($randomSetQuestion);
180 }

References buildRandomQuestionCollectionInstance().

Referenced by initialiseRegisters().

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

◆ requiresSharedQuestions()

ilTestRandomQuestionsQuantitiesDistribution::requiresSharedQuestions ( ilTestRandomQuestionSetSourcePoolDefinition  $definition)
protected
Parameters
ilTestRandomQuestionSetSourcePoolDefinition$definition
Returns
bool

Definition at line 441 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

442 {
443 return $this->getRequiredSharedQuestionAmount($definition) > 0;
444 }
getRequiredSharedQuestionAmount(ilTestRandomQuestionSetSourcePoolDefinition $definition)

References getRequiredSharedQuestionAmount().

+ Here is the call graph for this function:

◆ reset()

ilTestRandomQuestionsQuantitiesDistribution::reset ( )

Definition at line 453 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

References resetRegisters().

+ Here is the call graph for this function:

◆ resetQuestRelatedSrcPoolDefRegister()

ilTestRandomQuestionsQuantitiesDistribution::resetQuestRelatedSrcPoolDefRegister ( )
protected

re-setter for questRelatedSrcPoolDefRegister

Definition at line 130 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

131 {
132 $this->questRelatedSrcPoolDefRegister = array();
133 }

Referenced by resetRegisters().

+ Here is the caller graph for this function:

◆ resetRegisters()

ilTestRandomQuestionsQuantitiesDistribution::resetRegisters ( )
protected

reset internal registers

Definition at line 222 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

223 {
226 }
resetSrcPoolDefRelatedQuestRegister()
re-setter the srcPoolDefRelatedQuestRegister
resetQuestRelatedSrcPoolDefRegister()
re-setter for questRelatedSrcPoolDefRegister

References resetQuestRelatedSrcPoolDefRegister(), and resetSrcPoolDefRelatedQuestRegister().

Referenced by reset().

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

◆ resetSrcPoolDefRelatedQuestRegister()

ilTestRandomQuestionsQuantitiesDistribution::resetSrcPoolDefRelatedQuestRegister ( )
protected

re-setter the srcPoolDefRelatedQuestRegister

Definition at line 164 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

165 {
166 $this->srcPoolDefRelatedQuestRegister = array();
167 }

Referenced by resetRegisters().

+ Here is the caller graph for this function:

◆ setQuestionCollectionProvider()

ilTestRandomQuestionsQuantitiesDistribution::setQuestionCollectionProvider ( ilTestRandomSourcePoolDefinitionQuestionCollectionProvider  $questionCollectionProvider)
Parameters
ilTestRandomSourcePoolDefinitionQuestionCollectionProvider$questionCollectionProvider

Definition at line 58 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

59 {
60 $this->questionCollectionProvider = $questionCollectionProvider;
61 }

References $questionCollectionProvider.

Referenced by __construct().

+ Here is the caller graph for this function:

◆ setSourcePoolDefinitionList()

ilTestRandomQuestionsQuantitiesDistribution::setSourcePoolDefinitionList (   $sourcePoolDefinitionList)
Parameters
ilTestRandomQuestionSetSourcePoolDefinitionList$sourcePoolDefinitionList

Definition at line 74 of file class.ilTestRandomQuestionsQuantitiesDistribution.php.

75 {
76 $this->sourcePoolDefinitionList = $sourcePoolDefinitionList;
77 }

References $sourcePoolDefinitionList.

Field Documentation

◆ $questionCollectionProvider

ilTestRandomQuestionsQuantitiesDistribution::$questionCollectionProvider
protected

◆ $questRelatedSrcPoolDefRegister

ilTestRandomQuestionsQuantitiesDistribution::$questRelatedSrcPoolDefRegister = array()
protected

◆ $sourcePoolDefinitionList

ilTestRandomQuestionsQuantitiesDistribution::$sourcePoolDefinitionList
protected

◆ $srcPoolDefRelatedQuestRegister

ilTestRandomQuestionsQuantitiesDistribution::$srcPoolDefRelatedQuestRegister = array()
protected

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