package com.lifeasageek.goodstuffexample;
import com.lifeasageek.goodstuffexample.cdi.Good;
import com.lifeasageek.goodstuffexample.cdi.Transactional;
import com.lifeasageek.goodstuffexample.entity.Deed;
import java.io.Serializable;
import java.util.List;
import java.util.Random;
import javax.annotation.PostConstruct;
import javax.inject.Inject;
import javax.persistence.EntityManager;
/**
*
* @author Justin Wyer <justin@lifeasageek.com>
*/
@Transactional
@Good
public class GoodStuff implements Serializable
{
private static final String[] altruists = {"Bill", "Melinda", "Warren", "Larry", "Richard"};
private static final String[] recipients = {"John", "Jane", "Sally", "Simon", "Spot"};
@Inject
private EntityManager em;
@PostConstruct
private void init()
{
System.out.println("A GoodStuff bean has been constructed.");
}
public Deed doSomethingGood()
{
Deed deed = new Deed(altruists[new Random().nextInt(5)], recipients[new Random().nextInt(5)]);
em.persist(deed);
return deed;
}
public Deed doGoodDeed(String altruist, String recipient)
{
Deed deed = new Deed(altruist, recipient);
em.persist(deed);
return deed;
}
public Deed getDeed(Integer id)
{
return em.find(Deed.class, id);
}
public List<Deed> getDeeds()
{
return em.createQuery("select d from Deed d", Deed.class).getResultList();
}
}