<commit_before>package br.oltecnologias.hype.controller;

import br.oltecnologias.hype.dao.ProdutoJpaRepository;
import br.oltecnologias.hype.exception.ProdutoExistenteException;
import br.oltecnologias.hype.model.Produto;
import java.util.ArrayList;
import java.util.List;
import br.oltecnologias.hype.exception.ProdutoInexistenteException;
import br.oltecnologias.hype.model.Fornecedor;
import br.oltecnologias.hype.model.ProdutoLocado;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class GerenciadorDeProduto {

    private static GerenciadorDeProduto singleton = null;

    private GerenciadorDeProduto() {
    }

    public static GerenciadorDeProduto getInstance() {
        if (singleton == null) {
            singleton = new GerenciadorDeProduto();
        }
        return singleton;
    }

    public Produto cadastrarProduto(Produto produto) throws ProdutoExistenteException, ProdutoInexistenteException {

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);

        try {
            pjp.create(produto);
        } finally {
            emf.close();
        }

        return produto;
    }

    public void removerProduto(String codigo) throws ProdutoInexistenteException {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);

        try {
            pjp.apagarProduto(codigo);
        } finally {
            emf.close();
        }
    }

    public void editarProduto(Produto p) throws ProdutoInexistenteException {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);

        try {
            pjp.editarProduto(p);
        } finally {
            emf.close();
        }
    }

    public List<Produto> pesquisarProdutosPeloNome(String nome) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);

        List<Produto> aux = new ArrayList<Produto>();

        try {
            for (Produto p : pjp.getAllProdutos()) {
                if (p.getNome().toUpperCase().contains(nome.toUpperCase())) {
                    aux.add(p);
                }
            }
        } finally {
            emf.close();
        }

        return aux;
    }

    /**
     *
     * @param codigo
     * @return
     * @throws br.oltecnologias.hype.exception.ProdutoInexistenteException
     */
    public Produto pesquisarProdutoPeloCodigo(String codigo) throws ProdutoInexistenteException {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);

        Produto pResult = null;

        try {
            for (Produto p : pjp.getAllProdutos()) {
                if (p.getCodigo().equals(codigo)) {
                    pResult = p;
                }
            }
        } finally {
            emf.close();
        }
        return pResult;
    }

    public List<Produto> getProdutos() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);
        List<Produto> produtos = new ArrayList<Produto>();

        try {
            produtos = pjp.getAllProdutos();
        } finally {
            emf.close();
        }

        return produtos;
    }

    public void removerQuantidade(String codigoDoProduto, int quantidade) throws ProdutoInexistenteException {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);
        Produto p;

        try {
            p = pjp.findById(codigoDoProduto);
            p.removerQuant(quantidade);
            pjp.editarProduto(p);
        } finally {
            emf.close();
        }
    }
    
    public List<Produto> getProdutosDeLocacao(){
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);
        List<Produto> produtosLocaveis = new ArrayList<Produto>();
       try{
           
       
        for (Produto p: pjp.getAllProdutos()){
            if (p.isLocation()){
                produtosLocaveis.add(p);
            }
        }
        return produtosLocaveis;
       } finally{
           emf.close();
       }
        
    }
    
    
    public List<Produto> getProdutosDeVenda(){
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);
        List<Produto> produtosLocaveis = new ArrayList<Produto>();
       try{
           
       
        for (Produto p: pjp.getAllProdutos()){
            if (!p.isLocation()){
                produtosLocaveis.add(p);
            }
        }
        return produtosLocaveis;
       } finally{
           emf.close();
       }
    }
    
    
}<commit_msg>Tudo Funcional, menos na hora de deletar um cliente.<commit_after>package br.oltecnologias.hype.controller;

import br.oltecnologias.hype.dao.ProdutoJpaRepository;
import br.oltecnologias.hype.exception.ProdutoExistenteException;
import br.oltecnologias.hype.model.Produto;
import java.util.ArrayList;
import java.util.List;
import br.oltecnologias.hype.exception.ProdutoInexistenteException;
import br.oltecnologias.hype.model.Fornecedor;
import br.oltecnologias.hype.model.ProdutoLocado;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

public class GerenciadorDeProduto {

    private static GerenciadorDeProduto singleton = null;

    private GerenciadorDeProduto() {
    }

    public static GerenciadorDeProduto getInstance() {
        if (singleton == null) {
            singleton = new GerenciadorDeProduto();
        }
        return singleton;
    }

    public Produto cadastrarProduto(Produto produto) throws ProdutoExistenteException, ProdutoInexistenteException {

        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);

        try {
            pjp.create(produto);
        } finally {
            emf.close();
        }

        return produto;
    }

    public void removerProduto(String codigo) throws ProdutoInexistenteException {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);

        try {
            pjp.apagarProduto(codigo);
        } finally {
            emf.close();
        }
    }

    public void editarProduto(Produto p) throws ProdutoInexistenteException {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);

        try {
            pjp.editarProduto(p);
        } finally {
            emf.close();
        }
    }

    public List<Produto> pesquisarProdutosPeloNome(String nome) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);

        List<Produto> aux = new ArrayList<Produto>();

        try {
            for (Produto p : pjp.getAllProdutos()) {
                if (p.getNome().toUpperCase().contains(nome.toUpperCase())) {
                    aux.add(p);
                }
            }
        } finally {
            emf.close();
        }

        return aux;
    }

    /**
     *
     * @param codigo
     * @return
     * @throws br.oltecnologias.hype.exception.ProdutoInexistenteException
     */
    public Produto pesquisarProdutoPeloCodigo(String codigo) throws ProdutoInexistenteException {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);

        Produto pResult = null;

        try {
            for (Produto p : pjp.getAllProdutos()) {
                if (p.getCodigo().equals(codigo)) {
                    pResult = p;
                }
            }
        } finally {
            emf.close();
        }
        return pResult;
    }

    public List<Produto> getProdutos() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);
        List<Produto> produtos = new ArrayList<Produto>();

        try {
            produtos = pjp.getAllProdutos();
        } finally {
            emf.close();
        }

        return produtos;
    }

    public void removerQuantidade(String codigoDoProduto, int quantidade) throws ProdutoInexistenteException {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);
        Produto p;

        try {
            p = pjp.findById(codigoDoProduto);
            p.removerQuant(quantidade);
            pjp.editarProduto(p);
        } finally {
            emf.close();
        }
    }

    public List<Produto> getProdutosDeLocacao() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);
        List<Produto> produtosLocaveis = new ArrayList<Produto>();
        try {

            for (Produto p : pjp.getAllProdutos()) {
                if (p.isLocation()) {
                    produtosLocaveis.add(p);
                }
            }
            return produtosLocaveis;
        } finally {
            emf.close();
        }

    }

    public List<Produto> getProdutosDeVenda() {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);
        List<Produto> produtosDeVenda = new ArrayList<Produto>();
        try {

            for (Produto p : pjp.getAllProdutos()) {
                if (!p.isLocation()) {
                    produtosDeVenda.add(p);
                }
            }
            return produtosDeVenda;
        } finally {
            emf.close();
        }
    }

    public List<Produto> pesquisarProdutoDeLocacaoPeloNome(String nome) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);
        List<Produto> retorno = new ArrayList<Produto>();

        try {

            for (Produto p : pjp.getAllProdutos()) {
                if (p.isLocation()) {
                    if (p.getNome().contains(nome)) {
                        retorno.add(p);
                    }
                }
            }

            return retorno;

        } finally {
            if (emf != null) {
                emf.close();
            }
        }
    }

    public List<Produto> pesquisarProdutoDeVendaPeloNome(String nome) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("closetpu");
        ProdutoJpaRepository pjp = new ProdutoJpaRepository(emf);
        List<Produto> produtosDeVenda = new ArrayList<Produto>();
        try {

            for (Produto p : pjp.getAllProdutos()) {
                if (!p.isLocation()) {
                    if (p.getNome().contains(nome)){
                        produtosDeVenda.add(p);
                    }
                    
                }
            }
            return produtosDeVenda;
        } finally {
            emf.close();
        }
    }

}
{'fraction_non_alphanumeric': 0.08995337007206443, 'fraction_numerical': 0.0, 'mean_word_length': 2.1231135822081018, 'pattern_counts': {'":': 0, '<': 33, '<?xml version=': 0, '>': 33, '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': '4334919', 'n_tokens_mistral': 3706, 'n_tokens_neox': 3582, 'n_words': 581}