br.com.artesuzana.app.DataGenerator.java Source code

Java tutorial

Introduction

Here is the source code for br.com.artesuzana.app.DataGenerator.java

Source

/*
 * To change this license header, choose License Headers in Project Properties. To change this template file, choose Tools | Templates and open the
 * template in the editor.
 */
package br.com.artesuzana.app;

import java.math.BigDecimal;

import org.apache.commons.io.IOUtils;

import br.com.artesuzana.infra.CriptografiaUtil;
import br.com.artesuzana.infra.dao.Transacao;
import br.com.artesuzana.infra.db.HibernateUtil;
import br.com.artesuzana.infra.ioc.ApplicationContext;
import br.com.artesuzana.model.domain.Category;
import br.com.artesuzana.model.domain.Product;
import br.com.artesuzana.model.domain.ProductImage;
import br.com.artesuzana.model.domain.blog.Post;
import br.com.artesuzana.model.domain.security.User;
import br.com.artesuzana.model.repository.ICategoryRepository;
import br.com.artesuzana.model.repository.IPostRepository;
import br.com.artesuzana.model.repository.IProductRepository;
import br.com.artesuzana.model.repository.IUserRepository;

/**
 * 
 * @author francisco
 */
public class DataGenerator {

    public static void generate() {

        try {
            new HibernateUtil().iniciarSessionFactory();

            // if (true) return;
            final IProductRepository prdRepo = ApplicationContext.get().getBean(IProductRepository.class);
            final ICategoryRepository catRepo = ApplicationContext.get().getBean(ICategoryRepository.class);
            final IUserRepository userRepo = ApplicationContext.get().getBean(IUserRepository.class);

            if (catRepo.list().isEmpty()) {

                final Category madeira = new Category("Madeira");
                final Category bolsa = new Category("Bolsa");
                final Category sabonete = new Category("Sabonete");
                final Category bisquit = new Category("Bisquit");
                final Category tecido = new Category("Tecido");
                final Category especial = new Category("Especial");
                final Category roupa = new Category("Roupa");
                final Category toalha = new Category("Toalha");

                catRepo.save(madeira);
                catRepo.save(bolsa);
                catRepo.save(sabonete);
                catRepo.save(bisquit);
                catRepo.save(tecido);
                catRepo.save(especial);
                catRepo.save(roupa);
                catRepo.save(toalha);

                final Product portaBijuteria = new Product();
                portaBijuteria.setName("Porta Bijuteria Aveludado");
                portaBijuteria.setPrice(new BigDecimal(30));
                portaBijuteria.setDescription("Porta bijuterias com divisrias com fundos e lados aveludados");
                portaBijuteria.setCategory(madeira);

                final Transacao transacao = new Transacao();
                transacao.begin();

                final ProductImage imgPortaBijuteria = new ProductImage();
                imgPortaBijuteria.setImage(IOUtils.toByteArray(ArteSuzana.class.getClassLoader()
                        .getResourceAsStream("images/products/porta-bijuteria.jpeg")));

                final ProductImage imgPortaBijuteria2 = new ProductImage();
                imgPortaBijuteria2.setImage(IOUtils.toByteArray(ArteSuzana.class.getClassLoader()
                        .getResourceAsStream("images/products/porta-bijuteria2.jpeg")));

                final ProductImage imgPortaBijuteria3 = new ProductImage();
                imgPortaBijuteria3.setImage(IOUtils.toByteArray(ArteSuzana.class.getClassLoader()
                        .getResourceAsStream("images/products/porta-bijuteria3.jpeg")));

                final Product bolsaDiagonal = new Product();
                bolsaDiagonal.setName("Bolsa Diagonal");
                bolsaDiagonal.setPrice(new BigDecimal(55));
                bolsaDiagonal
                        .setDescription("Bolsa feita em tecido de qualidade com faixa diagonal em grande estilo");
                bolsaDiagonal.setCategory(bolsa);

                final ProductImage imgBolsaDiagonal = new ProductImage();
                imgBolsaDiagonal.setImage(IOUtils.toByteArray(ArteSuzana.class.getClassLoader()
                        .getResourceAsStream("images/products/bolsa-diagonal.jpeg")));

                final Product bolsaPrimavera = new Product();
                bolsaPrimavera.setName("Bolsa Primavera");
                bolsaPrimavera.setPrice(new BigDecimal(65));
                bolsaPrimavera.setDescription(
                        "Bolsa que deixar qualquer mulher mais atraente em qualquer poca do ano, inclusive na Primavera");
                bolsaPrimavera.setCategory(bolsa);

                final ProductImage imgBolsaPrimavera = new ProductImage();
                imgBolsaPrimavera.setImage(IOUtils.toByteArray(ArteSuzana.class.getClassLoader()
                        .getResourceAsStream("images/products/bolsa-primavera.jpeg")));

                final Product portaBolachas = new Product();
                portaBolachas.setName("Porta Bolachas com Biscuit");
                portaBolachas.setPrice(new BigDecimal(20));
                portaBolachas.setDescription("Porta bolachas de vidro com tampa detalhada em biscuit ");
                portaBolachas.setCategory(bisquit);

                final ProductImage imgPortaBolachas = new ProductImage();
                imgPortaBolachas.setImage(IOUtils.toByteArray(ArteSuzana.class.getClassLoader()
                        .getResourceAsStream("images/products/porta-oculos.jpeg")));

                final Product arvoreNatal = new Product();
                arvoreNatal.setName("?rvore de Natal");
                arvoreNatal.setPrice(new BigDecimal(25));
                arvoreNatal.setDescription("?rvore de natal feita de tecido");
                arvoreNatal.setCategory(especial);

                final ProductImage imgArvoreNatal = new ProductImage();
                imgArvoreNatal.setImage(IOUtils.toByteArray(ArteSuzana.class.getClassLoader()
                        .getResourceAsStream("images/products/arvore-natal.jpeg")));

                bolsaPrimavera.addToImages(imgBolsaPrimavera);
                portaBijuteria.addToImages(imgPortaBijuteria);
                portaBijuteria.addToImages(imgPortaBijuteria2);
                portaBijuteria.addToImages(imgPortaBijuteria3);
                bolsaDiagonal.addToImages(imgBolsaDiagonal);
                portaBolachas.addToImages(imgPortaBolachas);
                arvoreNatal.addToImages(imgArvoreNatal);

                prdRepo.save(portaBijuteria);
                prdRepo.save(bolsaDiagonal);
                prdRepo.save(bolsaPrimavera);
                prdRepo.save(portaBolachas);
                prdRepo.save(arvoreNatal);

                transacao.commit();

                final User chico = new User();
                chico.setUsername("chico");
                chico.setName("Francisco");
                chico.setEmail("fsilva1992@gmail.com");
                chico.setPassword(CriptografiaUtil.crypt("12345"));

                final User douglas = new User();
                douglas.setUsername("douglas");
                douglas.setName("Douglas Lucio");
                douglas.setEmail("dlucio10@gmail.com");
                douglas.setPassword(CriptografiaUtil.crypt("12345"));

                final User vitor = new User();
                vitor.setUsername("vitinho");
                vitor.setName("Vitor Orsolini");
                vitor.setEmail("orsolini.vitor@gmail.com");
                vitor.setPassword(CriptografiaUtil.crypt("12345"));

                userRepo.save(chico);
                userRepo.save(vitor);
                userRepo.save(douglas);

                final Post post = new Post();
                post.setAuthor(chico);
                post.setTitle("Produto muito bom!");
                post.setText("Este produto  fantastic!! recomendo a todos.");
                post.setPage(bolsaPrimavera.getPage());

                final Post post2 = new Post();
                post2.setAuthor(douglas);
                post2.setTitle("Minha me que faz!");
                post2.setText("Gente essa bolsa  minha me quem faz..  demais.. eu uso ela todos os dias!!");
                post2.setPage(bolsaPrimavera.getPage());

                ApplicationContext.get().getBean(IPostRepository.class).save(post);
                ApplicationContext.get().getBean(IPostRepository.class).save(post2);
            }
        } catch (final Throwable e) {
            e.printStackTrace();
        }

    }

}