UserImageDaoBean.java 1.63 KB
package fi.insomnia.intra.utilbeans;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.math.BigInteger;

import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import sun.misc.BASE64Encoder;

import fi.insomnia.intra.dao.ExternalEntityManagerFactory;
import fi.insomnia.intra.dao.UserImageDAO;
import fi.insomnia.intra.db.User;
import fi.insomnia.intra.db.UserImage;

/**
 * Session Bean implementation class UserImageBean
 */
@Stateless
public class UserImageDaoBean extends UserImageDAO implements UserImageDaoBeanLocal, ExternalEntityManagerFactory {

    @PersistenceContext(unitName = "InsomniaIntraDB")
    private EntityManager em;
    private static final Logger logger = LoggerFactory.getLogger(UserImageDaoBean.class);
    @EJB
    private UserDaoBeanLocal userbean;

    /**
     * Default constructor.
     */
    public UserImageDaoBean() {
	super();
	this.setEntityManagerFactory(this);
    }

    @Override
    public EntityManager getExternalEntity() {
	return em;
    }

    @Override
    public void createImage(User user, byte[] bs) {
	UserImage img = new UserImage();
	ByteArrayOutputStream out = new ByteArrayOutputStream();
	try {
	    new BASE64Encoder().encodeBuffer(bs, out);

	    img.setDefaultImage(true);
	    img.setImageData(out.toByteArray());
	    img.setOwner(user);
	    img.setMimetype("img/png");
	    logger.info("Persisting image");
	    em.persist(img);

	} catch (IOException e) {
	    // TODO Auto-generated catch block
	    e.printStackTrace();
	}

    }

}