// Path: src/test/java/com/example/dao/WidgetDao.java
// public interface WidgetDao {
// 
//     /**
//      * @return {@link List}&lt;{@link Widget}&gt;
//      */
//     List<Widget> listAll();
// 
//     /**
//      * @param id
//      *        the widget id
//      * @return {@link Widget}
//      */
//     Widget findById(int id);
// 
//     /**
//      * @param name
//      *        the widget name
//      * @return {@link Widget}
//      */
//     Widget findByName(String name);
// 
// }
// 
// Path: src/test/java/com/example/dao/jpa/JpaWidgetDao.java
// public class JpaWidgetDao implements WidgetDao {
// 
//     private final EntityManager entityManager;
// 
//     /**
//      * @param entityManager
//      *        the {@link EntityManager}
//      */
//     public JpaWidgetDao(final EntityManager entityManager) {
//         this.entityManager = entityManager;
//     }
// 
//     /**
//      * {@inheritDoc}
//      *
//      * @see com.example.dao.WidgetDao#findById(int)
//      */
//     @Override
//     public final Widget findById(final int id) {
//         return entityManager.find(Widget.class, id);
//     }
// 
//     /**
//      * {@inheritDoc}
//      *
//      * @see com.example.dao.WidgetDao#findByName(java.lang.String)
//      */
//     @Override
//     @SuppressWarnings("unchecked")
//     public final Widget findByName(final String name) {
//         final List<Widget> list = entityManager.createNamedQuery(Widget.FIND_BY_NAME).setParameter("name", name)
//                 .getResultList();
//         if (list.isEmpty()) {
//             return null;
//         }
//         return list.get(0);
//     }
// 
//     /**
//      * {@inheritDoc}
//      *
//      * @see com.example.dao.WidgetDao#listAll()
//      */
//     @Override
//     @SuppressWarnings("unchecked")
//     public final List<Widget> listAll() {
//         return entityManager.createNamedQuery(Widget.LIST_ALL).getResultList();
//     }
// 
// }
// 
// Path: src/test/java/com/example/model/Widget.java
// @Entity
// @NamedQueries({
//   @NamedQuery(name = Widget.LIST_ALL, query = "SELECT w FROM Widget w"),
//   @NamedQuery(name = Widget.FIND_BY_ID, query = "SELECT w FROM Widget w WHERE w.id = :id"),
//   @NamedQuery(name = Widget.FIND_BY_NAME, query = "SELECT w FROM Widget w WHERE w.name = :name")
// })
// public class Widget implements Serializable {
// 
//     /**
//      *
//      */
//     private static final long serialVersionUID = -1689099836716604893L;
// 
//     /**
//      * {@value #LIST_ALL}
//      */
//     public static final String LIST_ALL = "Widget.listAll";
// 
//     /**
//      * {@value #FIND_BY_ID}
//      */
//     public static final String FIND_BY_ID = "Widget.findById";
// 
//     /**
//      * {@value #FIND_BY_NAME}
//      */
//     public static final String FIND_BY_NAME = "Widget.findByName";
// 
//     @Id
//     private Integer id;
// 
//     @Column
//     private String name;
// 
//     /**
//      * @return the id
//      */
//     public final Integer getId() {
//         return id;
//     }
// 
//     /**
//      * @param id
//      *        the id to set
//      */
//     public final void setId(final Integer id) {
//         this.id = id;
//     }
// 
//     /**
//      * @return the name
//      */
//     public final String getName() {
//         return name;
//     }
// 
//     /**
//      * @param name
//      *        the name to set
//      */
//     public final void setName(final String name) {
//         this.name = name;
//     }
// 
// }


import java.util.List;
import javax.annotation.PostConstruct;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import com.example.dao.WidgetDao;
import com.example.dao.jpa.JpaWidgetDao;
import com.example.model.Widget;
/**
 * junit-rules: JUnit Rules Library
 *
 * Copyright (c) 2009-2011 by Alistair A. Israel.
 * This software is made available under the terms of the MIT License.
 *
 * Created Oct 16, 2009
 */
package com.example.ejb3.beans;




/**
 * @author Alistair A. Israel
 */
public class WidgetBean {

    @PersistenceContext
    private EntityManager em;

// Path: src/test/java/com/example/dao/WidgetDao.java
// public interface WidgetDao {
// 
//     /**
//      * @return {@link List}&lt;{@link Widget}&gt;
//      */
//     List<Widget> listAll();
// 
//     /**
//      * @param id
//      *        the widget id
//      * @return {@link Widget}
//      */
//     Widget findById(int id);
// 
//     /**
//      * @param name
//      *        the widget name
//      * @return {@link Widget}
//      */
//     Widget findByName(String name);
// 
// }
// 
// Path: src/test/java/com/example/dao/jpa/JpaWidgetDao.java
// public class JpaWidgetDao implements WidgetDao {
// 
//     private final EntityManager entityManager;
// 
//     /**
//      * @param entityManager
//      *        the {@link EntityManager}
//      */
//     public JpaWidgetDao(final EntityManager entityManager) {
//         this.entityManager = entityManager;
//     }
// 
//     /**
//      * {@inheritDoc}
//      *
//      * @see com.example.dao.WidgetDao#findById(int)
//      */
//     @Override
//     public final Widget findById(final int id) {
//         return entityManager.find(Widget.class, id);
//     }
// 
//     /**
//      * {@inheritDoc}
//      *
//      * @see com.example.dao.WidgetDao#findByName(java.lang.String)
//      */
//     @Override
//     @SuppressWarnings("unchecked")
//     public final Widget findByName(final String name) {
//         final List<Widget> list = entityManager.createNamedQuery(Widget.FIND_BY_NAME).setParameter("name", name)
//                 .getResultList();
//         if (list.isEmpty()) {
//             return null;
//         }
//         return list.get(0);
//     }
// 
//     /**
//      * {@inheritDoc}
//      *
//      * @see com.example.dao.WidgetDao#listAll()
//      */
//     @Override
//     @SuppressWarnings("unchecked")
//     public final List<Widget> listAll() {
//         return entityManager.createNamedQuery(Widget.LIST_ALL).getResultList();
//     }
// 
// }
// 
// Path: src/test/java/com/example/model/Widget.java
// @Entity
// @NamedQueries({
//   @NamedQuery(name = Widget.LIST_ALL, query = "SELECT w FROM Widget w"),
//   @NamedQuery(name = Widget.FIND_BY_ID, query = "SELECT w FROM Widget w WHERE w.id = :id"),
//   @NamedQuery(name = Widget.FIND_BY_NAME, query = "SELECT w FROM Widget w WHERE w.name = :name")
// })
// public class Widget implements Serializable {
// 
//     /**
//      *
//      */
//     private static final long serialVersionUID = -1689099836716604893L;
// 
//     /**
//      * {@value #LIST_ALL}
//      */
//     public static final String LIST_ALL = "Widget.listAll";
// 
//     /**
//      * {@value #FIND_BY_ID}
//      */
//     public static final String FIND_BY_ID = "Widget.findById";
// 
//     /**
//      * {@value #FIND_BY_NAME}
//      */
//     public static final String FIND_BY_NAME = "Widget.findByName";
// 
//     @Id
//     private Integer id;
// 
//     @Column
//     private String name;
// 
//     /**
//      * @return the id
//      */
//     public final Integer getId() {
//         return id;
//     }
// 
//     /**
//      * @param id
//      *        the id to set
//      */
//     public final void setId(final Integer id) {
//         this.id = id;
//     }
// 
//     /**
//      * @return the name
//      */
//     public final String getName() {
//         return name;
//     }
// 
//     /**
//      * @param name
//      *        the name to set
//      */
//     public final void setName(final String name) {
//         this.name = name;
//     }
// 
// }


// Path: src/test/java/com/example/ejb3/beans/WidgetBean.java
import java.util.List;
import javax.annotation.PostConstruct;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import com.example.dao.WidgetDao;
import com.example.dao.jpa.JpaWidgetDao;
import com.example.model.Widget;

/**
 * junit-rules: JUnit Rules Library
 *
 * Copyright (c) 2009-2011 by Alistair A. Israel.
 * This software is made available under the terms of the MIT License.
 *
 * Created Oct 16, 2009
 */
package com.example.ejb3.beans;




/**
 * @author Alistair A. Israel
 */
public class WidgetBean {

    @PersistenceContext
    private EntityManager em;

    private WidgetDao widgetDao;