public function readShufflingGroup()
    {
        try {
            $identifiers = new IdentifierCollection();
            $fixedIdentifiers = new IdentifierCollection();
            
            $identifiersCount = $this->readTinyInt();
            
            for ($i = 0; $i < $identifiersCount; $i++) {
                $identifiers[] = $this->readString();
            }
            
            $shufflingGroup = new ShufflingGroup($identifiers);
            
            $fixedIdentifiersCount = $this->readTinyInt();
            for ($i = 0; $i < $fixedIdentifiersCount; $i++) {
                $fixedIdentifiers[] = $this->readString();
            }
            
            $shufflingGroup->setFixedIdentifiers($fixedIdentifiers);
            
            return $shufflingGroup;
            
        } catch (BinaryStreamAccessException $e) {
            $msg = "An error occured while reading a shufflingGroup.";
            throw new QtiBinaryStreamAccessException($msg, $this, QtiBinaryStreamAccessException::SHUFFLING_GROUP, $e);
        }
    }