// Path: src/main/java/com/raibledesigns/dao/LookupDao.java
// public interface LookupDao {
//     //~ Methods ================================================================
// 
//     /**
//      * Returns all Roles ordered by name
//      * @return populated list of roles
//      */
//     List<Role> getRoles();
// }
// 
// Path: src/main/java/com/raibledesigns/model/Role.java
// @Entity
// @Table(name = "role")
// @NamedQueries({
//         @NamedQuery(
//                 name = "findRoleByName",
//                 query = "select r from Role r where r.name = :name "
//         )
// })
// public class Role extends BaseObject implements Serializable, GrantedAuthority {
//     private static final long serialVersionUID = 3690197650654049848L;
//     private Long id;
//     private String name;
//     private String description;
// 
//     /**
//      * Default constructor - creates a new instance with no values set.
//      */
//     public Role() {
//     }
// 
//     /**
//      * Create a new instance and set the name.
//      *
//      * @param name name of the role.
//      */
//     public Role(final String name) {
//         this.name = name;
//     }
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.AUTO)
//     public Long getId() {
//         return id;
//     }
// 
//     /**
//      * @return the name property (getAuthority required by Acegi's GrantedAuthority interface)
//      * @see org.springframework.security.core.GrantedAuthority#getAuthority()
//      */
//     @Transient
//     public String getAuthority() {
//         return getName();
//     }
// 
//     @Column(length = 20)
//     public String getName() {
//         return this.name;
//     }
// 
//     @Column(length = 64)
//     public String getDescription() {
//         return this.description;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// 
//     /**
//      * {@inheritDoc}
//      */
//     public boolean equals(Object o) {
//         if (this == o) {
//             return true;
//         }
//         if (!(o instanceof Role)) {
//             return false;
//         }
// 
//         final Role role = (Role) o;
// 
//         return !(name != null ? !name.equals(role.name) : role.name != null);
// 
//     }
// 
//     /**
//      * {@inheritDoc}
//      */
//     public int hashCode() {
//         return (name != null ? name.hashCode() : 0);
//     }
// 
//     /**
//      * {@inheritDoc}
//      */
//     public String toString() {
//         return new ToStringBuilder(this, ToStringStyle.SIMPLE_STYLE)
//                 .append(this.name)
//                 .toString();
//     }
// }


import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.raibledesigns.dao.LookupDao;
import com.raibledesigns.model.Role;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.List;
package com.raibledesigns.dao.jpa;



/**
 * JPA implementation of LookupDao.
 *
 * @author <a href="mailto:bwnoll@gmail.com">Bryan Noll</a>
 */
@Repository
public class LookupDaoJpa implements LookupDao {
    private Log log = LogFactory.getLog(LookupDaoJpa.class);
    @PersistenceContext
    EntityManager entityManager;

    /**
     * {@inheritDoc}
     */
    @SuppressWarnings("unchecked")
// Path: src/main/java/com/raibledesigns/dao/LookupDao.java
// public interface LookupDao {
//     //~ Methods ================================================================
// 
//     /**
//      * Returns all Roles ordered by name
//      * @return populated list of roles
//      */
//     List<Role> getRoles();
// }
// 
// Path: src/main/java/com/raibledesigns/model/Role.java
// @Entity
// @Table(name = "role")
// @NamedQueries({
//         @NamedQuery(
//                 name = "findRoleByName",
//                 query = "select r from Role r where r.name = :name "
//         )
// })
// public class Role extends BaseObject implements Serializable, GrantedAuthority {
//     private static final long serialVersionUID = 3690197650654049848L;
//     private Long id;
//     private String name;
//     private String description;
// 
//     /**
//      * Default constructor - creates a new instance with no values set.
//      */
//     public Role() {
//     }
// 
//     /**
//      * Create a new instance and set the name.
//      *
//      * @param name name of the role.
//      */
//     public Role(final String name) {
//         this.name = name;
//     }
// 
//     @Id
//     @GeneratedValue(strategy = GenerationType.AUTO)
//     public Long getId() {
//         return id;
//     }
// 
//     /**
//      * @return the name property (getAuthority required by Acegi's GrantedAuthority interface)
//      * @see org.springframework.security.core.GrantedAuthority#getAuthority()
//      */
//     @Transient
//     public String getAuthority() {
//         return getName();
//     }
// 
//     @Column(length = 20)
//     public String getName() {
//         return this.name;
//     }
// 
//     @Column(length = 64)
//     public String getDescription() {
//         return this.description;
//     }
// 
//     public void setId(Long id) {
//         this.id = id;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// 
//     public void setDescription(String description) {
//         this.description = description;
//     }
// 
//     /**
//      * {@inheritDoc}
//      */
//     public boolean equals(Object o) {
//         if (this == o) {
//             return true;
//         }
//         if (!(o instanceof Role)) {
//             return false;
//         }
// 
//         final Role role = (Role) o;
// 
//         return !(name != null ? !name.equals(role.name) : role.name != null);
// 
//     }
// 
//     /**
//      * {@inheritDoc}
//      */
//     public int hashCode() {
//         return (name != null ? name.hashCode() : 0);
//     }
// 
//     /**
//      * {@inheritDoc}
//      */
//     public String toString() {
//         return new ToStringBuilder(this, ToStringStyle.SIMPLE_STYLE)
//                 .append(this.name)
//                 .toString();
//     }
// }


// Path: src/main/java/com/raibledesigns/dao/jpa/LookupDaoJpa.java
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.raibledesigns.dao.LookupDao;
import com.raibledesigns.model.Role;
import org.springframework.stereotype.Repository;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import java.util.List;

package com.raibledesigns.dao.jpa;



/**
 * JPA implementation of LookupDao.
 *
 * @author <a href="mailto:bwnoll@gmail.com">Bryan Noll</a>
 */
@Repository
public class LookupDaoJpa implements LookupDao {
    private Log log = LogFactory.getLog(LookupDaoJpa.class);
    @PersistenceContext
    EntityManager entityManager;

    /**
     * {@inheritDoc}
     */
    @SuppressWarnings("unchecked")
    public List<Role> getRoles() {