/** * Convenience method that returns the mapped variable identifier from $targetIdentifier. * * @param \qtism\data\AssessmentItemRef $assessmentItemRef An AssessmentItemRef object where variable mappings can be found. * @param string $targetIdentifier A targetIdentifier to be replaced by a sourceIdentifier. * @return string|false The mapped identifier or $targetIdentifier if no mapping could be established. */ protected static function getMappedVariableIdentifier(AssessmentItemRef $assessmentItemRef, $targetIdentifier) { // return false if no mapping found. $sourceIdentifier = $targetIdentifier; foreach ($assessmentItemRef->getVariableMappings() as $variableMapping) { if ($variableMapping->getTarget() === $targetIdentifier) { $sourceIdentifier = $variableMapping->getSource(); break; } elseif ($variableMapping->getSource() === $targetIdentifier) { // Conflict. $sourceIdentifier = false; } } return $sourceIdentifier; }