<commit_before>package net.unesc.aplicacao;

import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import net.unesc.entidades.Usuario;
import net.unesc.exceptions.LoginException;
import net.unesc.aplicacao.TelaLogin;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Map;

public class Sessao {
    private static final String ROOT_FOLDER = "./build";
    private static final String SESSAO_FILE = ROOT_FOLDER+"/sessao.ser";
    private static final String LOG_FILE = ROOT_FOLDER+"/log.txt";

    private Usuario usuarioLogado;
    private Map<String, Usuario> usuariosRegistrados = new HashMap<>();
    public Sessao() {
        lerArquivoSessao();
        lerAquivoLogs();
    }
    
//    File arquivo = new File("log_sessao.txt");
//    public File getArquivo(){
//        return arquivo;
//    }
    
    
    private void lerArquivoSessao()  {
        try
        {            
            FileInputStream fileIn = new FileInputStream(SESSAO_FILE);
            ObjectInputStream in = new ObjectInputStream(fileIn);
            usuariosRegistrados = (Map<String, Usuario>) in.readObject();
            in.close();
            fileIn.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
    private void lerAquivoLogs() {
        try{
            File arquivo = new File(LOG_FILE);
            if (arquivo.exists()) {
                arquivo.createNewFile();
            }

            FileReader fr = new FileReader(arquivo);
            BufferedReader br = new BufferedReader(fr);

            while (br.ready()) {
                String linha = br.readLine();
            }
            fr.close();
            br.close();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
    
    public Usuario usuario() throws LoginException {
        if (usuarioLogado == null)
            throw new LoginException();
        return usuarioLogado;
    }
    public void entrar(String login, String senha) throws LoginException {
        Usuario usuarioTemporario = new Usuario(login, senha);
//        if(usuarioTemporario.getLogin().isEmpty()){
//            throw new LoginException("Usuário inválido!");
//        }
        System.out.println("usuariosRegistrados = " + usuariosRegistrados.size());
        Usuario usuarioRegistrado = usuariosRegistrados.get(usuarioTemporario.getLogin());
        System.out.println("usuarioRegistrado = " + usuarioRegistrado);
        System.out.println("usuarioTemporario = " + usuarioTemporario);  
        if(!usuarioTemporario.getSenha().equals(usuarioRegistrado.getSenha())){
            throw new LoginException("Senha inválida!");
        }
        
        //usuário logou
        this.usuarioLogado = usuarioTemporario;
        //salvar usuário no .ser caso nao exista
        if (usuariosRegistrados != null)
        {
            try<commit_msg>ajeita classe sessao para pegar usuarios de .ser<commit_after>package net.unesc.aplicacao;

import java.io.BufferedReader;
import java.io.FileWriter;
import java.io.IOException;
import net.unesc.entidades.Usuario;
import net.unesc.exceptions.LoginException;
import net.unesc.aplicacao.TelaLogin;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Map;

public class Sessao {
    private static final String ROOT_FOLDER = "./build";
    private static final String SESSAO_FILE = ROOT_FOLDER+"/sessao.ser";
    private static final String LOG_FILE = ROOT_FOLDER+"/log.txt";

    private Usuario usuarioLogado;
    private Map<String, Usuario> usuariosRegistrados = new HashMap<>();
    public Sessao() {
        lerArquivoSessao();
        lerAquivoLogs();
    }
    
//    File arquivo = new File("log_sessao.txt");
//    public File getArquivo(){
//        return arquivo;
//    }
    
    
    private void lerArquivoSessao()  {
        try
        {            
            FileInputStream fileIn = new FileInputStream(SESSAO_FILE);
            ObjectInputStream in = new ObjectInputStream(fileIn);
            usuariosRegistrados = (Map<String, Usuario>) in.readObject();
            in.close();
            fileIn.close();
        }
        catch(Exception e)
        {
            e.printStackTrace();
        }
    }
    private void lerAquivoLogs() {
        try{
            File arquivo = new File(LOG_FILE);
            if (arquivo.exists()) {
                arquivo.createNewFile();
            }

            FileReader fr = new FileReader(arquivo);
            BufferedReader br = new BufferedReader(fr);

            while (br.ready()) {
                String linha = br.readLine();
            }
            fr.close();
            br.close();
        }catch(IOException e){
            e.printStackTrace();
        }
    }
    
    public Usuario usuario() throws LoginException {
        if (usuarioLogado == null)
            throw new LoginException();
        return usuarioLogado;
    }
    public void entrar(String login, String senha) throws LoginException {
        Usuario usuarioTemporario = new Usuario(login, senha);
        Usuario usuarioRegistrado = usuariosRegistrados.get(usuarioTemporario.getLogin());
        if(!usuarioTemporario.getSenha().equals(usuarioRegistrado.getSenha())){
            throw new LoginException("Senha inválida!");
        }
        //usuário logou
        this.usuarioLogado = usuarioTemporario;
        //salvar usuário no .ser caso nao exista
        if (usuariosRegistrados != null)
        {
            try
{'fraction_non_alphanumeric': 0.10216346153846154, 'fraction_numerical': 0.0, 'mean_word_length': 2.294683257918552, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 9, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1063316', 'n_tokens_mistral': 1748, 'n_tokens_neox': 1778, 'n_words': 361}