package br.com.triadworks.issuetracker.spring; import java.io.File; import java.io.FileNotFoundException; import java.util.Scanner; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import br.com.triadworks.issuetracker.dao.UsuarioDao; import br.com.triadworks.issuetracker.model.Usuario; import br.com.triadworks.issuetracker.spring.impl.UsuarioParser; @Component("importadorDeUsuarios") public class ImportadorDeUsuarios { private File arquivo; private UsuarioParser usuarioParser; private UsuarioDao usuarioDao; @Autowired public ImportadorDeUsuarios( @Value("classpath:usuarios.txt") File arquivo, UsuarioParser usuarioParser, @Qualifier("usuarioJdbcDao") UsuarioDao usuarioDao) { this.arquivo = arquivo; this.usuarioParser = usuarioParser; this.usuarioDao = usuarioDao; } public void importa() { Scanner scanner = null; try { scanner = new Scanner(arquivo); while (scanner.hasNextLine()) { String linha = scanner.nextLine(); Usuario usuario = usuarioParser.parse(linha); usuarioDao.salva(usuario); } } catch (FileNotFoundException e) { throw new IllegalStateException("Arquivo de importação de usuários não encontrado no diretório padrão.", e); } finally { if (scanner != null) { scanner.close(); } } } }