public function setDefaultValue(QtiDatatype $defaultValue = null)
    {
        if (Utils::isBaseTypeCompliant($this->getBaseType(), $defaultValue) && Utils::isCardinalityCompliant($this->getCardinality(), $defaultValue)) {
            $this->defaultValue = $defaultValue;

            return;
        } else {
            Utils::throwBaseTypeTypingError($this->getBaseType(), $defaultValue);
        }
    }