ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ilTestRandomQuestionCollectionSubsetApplicationList Class Reference
+ Inheritance diagram for ilTestRandomQuestionCollectionSubsetApplicationList:
+ Collaboration diagram for ilTestRandomQuestionCollectionSubsetApplicationList:

Public Member Functions

 __construct ()
 
 getCollectionSubsetApplication ($applicantId)
 
 getCollectionSubsetApplications ()
 
 addCollectionSubsetApplication (ilTestRandomQuestionCollectionSubsetApplication $collectionSubsetApplication)
 
 setCollectionSubsetApplications (array $collectionSubsetApplications)
 
 resetCollectionSubsetApplicants ()
 
 getReservedQuestionCollection ()
 
 setReservedQuestionCollection (ilTestRandomQuestionSetQuestionCollection $reservedQuestionCollection)
 
 addReservedQuestion (ilTestRandomQuestionSetQuestion $reservedQuestion)
 
 current ()
 
 next ()
 
 key ()
 
 valid ()
 
 rewind ()
 
 handleQuestionRequest (ilTestRandomQuestionSetQuestion $question)
 
 getNonReservedQuestionAmount ()
 

Protected Attributes

array $collectionSubsetApplications = []
 
ilTestRandomQuestionSetQuestionCollection $reservedQuestionCollection
 

Detailed Description

Constructor & Destructor Documentation

◆ __construct()

ilTestRandomQuestionCollectionSubsetApplicationList::__construct ( )

Member Function Documentation

◆ addCollectionSubsetApplication()

ilTestRandomQuestionCollectionSubsetApplicationList::addCollectionSubsetApplication ( ilTestRandomQuestionCollectionSubsetApplication  $collectionSubsetApplication)

Definition at line 55 of file class.ilTestRandomQuestionCollectionSubsetApplicationList.php.

57 : void {
58 $this->collectionSubsetApplications[$collectionSubsetApplication->getApplicantId()] = $collectionSubsetApplication;
59 }

◆ addReservedQuestion()

ilTestRandomQuestionCollectionSubsetApplicationList::addReservedQuestion ( ilTestRandomQuestionSetQuestion  $reservedQuestion)

◆ current()

◆ getCollectionSubsetApplication()

ilTestRandomQuestionCollectionSubsetApplicationList::getCollectionSubsetApplication (   $applicantId)
Parameters
int$applicantId

Definition at line 42 of file class.ilTestRandomQuestionCollectionSubsetApplicationList.php.

43 {
44 return $this->collectionSubsetApplications[$applicantId] ?? null;
45 }

◆ getCollectionSubsetApplications()

ilTestRandomQuestionCollectionSubsetApplicationList::getCollectionSubsetApplications ( )

◆ getNonReservedQuestionAmount()

ilTestRandomQuestionCollectionSubsetApplicationList::getNonReservedQuestionAmount ( )

Definition at line 135 of file class.ilTestRandomQuestionCollectionSubsetApplicationList.php.

135 : int
136 {
137 $availableQuestionCollection = new ilTestRandomQuestionSetQuestionCollection();
138
139 foreach ($this as $collectionSubsetApplication) {
140 $applicationsNonReservedQstCollection = $collectionSubsetApplication->getRelativeComplementCollection(
142 );
143
144 $availableQuestionCollection->mergeQuestionCollection($applicationsNonReservedQstCollection);
145 }
146
147 $nonReservedQuestionCollection = $availableQuestionCollection->getUniqueQuestionCollection();
148
149 return $nonReservedQuestionCollection->getQuestionAmount();
150 }

◆ getReservedQuestionCollection()

ilTestRandomQuestionCollectionSubsetApplicationList::getReservedQuestionCollection ( )

◆ handleQuestionRequest()

ilTestRandomQuestionCollectionSubsetApplicationList::handleQuestionRequest ( ilTestRandomQuestionSetQuestion  $question)

Definition at line 115 of file class.ilTestRandomQuestionCollectionSubsetApplicationList.php.

115 : void
116 {
117 $questionReservationRequired = false;
118
119 foreach ($this as $collectionSubsetApplication) {
120 if (!$collectionSubsetApplication->hasQuestion($question->getQuestionId())) {
121 continue;
122 }
123
124 if ($collectionSubsetApplication->hasRequiredAmountLeft()) {
125 $questionReservationRequired = true;
126 $collectionSubsetApplication->decrementRequiredAmount();
127 }
128 }
129
130 if ($questionReservationRequired) {
131 $this->addReservedQuestion($question);
132 }
133 }

References ilTestRandomQuestionSetQuestion\getQuestionId().

+ Here is the call graph for this function:

◆ key()

ilTestRandomQuestionCollectionSubsetApplicationList::key ( )

◆ next()

ilTestRandomQuestionCollectionSubsetApplicationList::next ( )

◆ resetCollectionSubsetApplicants()

ilTestRandomQuestionCollectionSubsetApplicationList::resetCollectionSubsetApplicants ( )

◆ rewind()

ilTestRandomQuestionCollectionSubsetApplicationList::rewind ( )

Definition at line 110 of file class.ilTestRandomQuestionCollectionSubsetApplicationList.php.

110 : void
111 {
112 reset($this->collectionSubsetApplications);
113 }

◆ setCollectionSubsetApplications()

ilTestRandomQuestionCollectionSubsetApplicationList::setCollectionSubsetApplications ( array  $collectionSubsetApplications)
Parameters
array<int,ilTestRandomQuestionCollectionSubsetApplication>$collectionSubsetApplications

Definition at line 64 of file class.ilTestRandomQuestionCollectionSubsetApplicationList.php.

64 : void
65 {
66 $this->collectionSubsetApplications = $collectionSubsetApplications;
67 }

◆ setReservedQuestionCollection()

ilTestRandomQuestionCollectionSubsetApplicationList::setReservedQuestionCollection ( ilTestRandomQuestionSetQuestionCollection  $reservedQuestionCollection)

Definition at line 79 of file class.ilTestRandomQuestionCollectionSubsetApplicationList.php.

81 : void {
82 $this->reservedQuestionCollection = $reservedQuestionCollection;
83 }

Referenced by __construct().

+ Here is the caller graph for this function:

◆ valid()

ilTestRandomQuestionCollectionSubsetApplicationList::valid ( )

Definition at line 105 of file class.ilTestRandomQuestionCollectionSubsetApplicationList.php.

105 : bool
106 {
107 return key($this->collectionSubsetApplications) !== null;
108 }

Field Documentation

◆ $collectionSubsetApplications

array ilTestRandomQuestionCollectionSubsetApplicationList::$collectionSubsetApplications = []
protected

◆ $reservedQuestionCollection

ilTestRandomQuestionSetQuestionCollection ilTestRandomQuestionCollectionSubsetApplicationList::$reservedQuestionCollection
protected

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