package edu.lmu.cs.headmaster.ws.domain; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Transient; import javax.xml.bind.annotation.XmlRootElement; import javax.xml.bind.annotation.XmlTransient; import edu.lmu.cs.headmaster.ws.types.Role; @Entity @XmlRootElement public class UserRole implements Serializable { private Long id; private User user; private Role role; @Id @GeneratedValue(strategy = GenerationType.AUTO) public Long getId() { return id; } public void setId(Long id) { this.id = id; } // For compatibility with Tomcat's JDBCRealm, we join via the user login and // not its ID. @ManyToOne @JoinColumn(name = "login", referencedColumnName = "login") @XmlTransient public User getUser() { return user; } public void setUser(User user) { this.user = user; } // For compatibility with Tomcat's JDBCRealm, we store the role *name* and // not its ID. @XmlTransient public String getRolename() { return role.name().toLowerCase(); } public void setRolename(String rolename) { this.role = Role.valueOf(rolename.toUpperCase()); } @Transient public Role getRole() { return role; } public void setRole(Role role) { this.role = role; } }