Sugestão para redução de if's?

   public List obterRegistrosArquivo(InputStream arquivoEnviado)
   {
      try
      {
         produtosValidos = new ArrayList();
         produtosDivergencia = new ArrayList();
         String linhaLida;
         String[] dadosLinha = null;
         ProdutoNaoControladoTO produtoNaoControladoTO;
         InputStreamReader reader = new InputStreamReader(arquivoEnviado);
         BufferedReader bufferedReader = new BufferedReader(reader);

         String caracterDeSplit = null;
         if ((linhaLida = bufferedReader.readLine()) != null)
         {
            boolean temPeloMenosQuatroVirgulas = linhaLida.matches("^(.*?[,]){4}.*$");

            caracterDeSplit = temPeloMenosQuatroVirgulas? "," : ";";
         }

         while ((linhaLida = bufferedReader.readLine()) != null)
         {
            dadosLinha = linhaLida.split(caracterDeSplit);

            if (dadosLinha.length < 3)
               return null;

            produtoNaoControladoTO = this.setarDadosBean(dadosLinha);

            if (!this.validarRegistroLinha(produtoNaoControladoTO) && this.validarRegistroProduto(produtoNaoControladoTO))
               getProdutosValidos().add(produtoNaoControladoTO);
         }
      }
      catch (IOException e)
      {
         e.printStackTrace();
      }
      return getProdutosValidos();
   }

Talvez funcione, talvez não.