public function processar()
    {
        $retorno = new Retorno();
        $lote = null;

        $lines = file($this->processor->getNomeArquivo(), FILE_IGNORE_NEW_LINES);
        foreach ($lines as $lineNumber => $lineContent) {
            $string = new Stringy(rtrim($lineContent, "\r\n"));
            $composable = $this->processor->processarLinha($lineNumber, $string);

            if ($this->processor->needToCreateLote()) {
                $lote = $this->createLote($retorno);
            }

            $this->processor->processCnab($retorno, $composable, $lote);

            $event = new OnDetailRegisterEvent($this->processor, $lineNumber, $composable);
            $this->dispatcher->dispatch(RetornoEvents::ON_DETAIL_REGISTER, $event);
        }

        return $retorno;
    }