package de.lemo.dms.db.mapping; import java.util.Map; import javax.persistence.Entity; import javax.persistence.FetchType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; import de.lemo.dms.db.mapping.abstractions.IMapping; @Entity @Table(name = "lemo_course_user") public class CourseUser implements IMapping { private long id; private Course course; private User user; private Role role; @Override public boolean equals(final IMapping o) { if (!(o instanceof CourseUser)) { return false; } if ((o.getId() == this.getId()) && (o instanceof CourseUser)) { return true; } return false; } @Override public int hashCode() { return (int) id; } /** * @return the id */ @Id public long getId() { return id; } /** * @param id the id to set */ public void setId(long id) { this.id = id; } /** * @return the course */ @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="course_id") public Course getCourse() { return course; } /** * @param course the course to set */ public void setCourse(Course course) { this.course = course; } /** * @return the user */ @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="user_id") public User getUser() { return user; } /** * @param user the user to set */ public void setUser(User user) { this.user = user; } /** * @return the role */ @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="role_id") public Role getRole() { return role; } /** * @param role the role to set */ public void setRole(Role role) { this.role = role; } public void setCourse(final long course, final Map<Long, Course> courses, final Map<Long, Course> oldCourses) { if (courses.get(course) != null) { this.course = courses.get(course); courses.get(course).addCourseUser(this); } if ((this.course == null) && (oldCourses.get(course) != null)) { this.course = oldCourses.get(course); oldCourses.get(course).addCourseUser(this); } } public void setUser(final long user, final Map<Long, User> users, final Map<Long, User> oldUsers) { if (users.get(user) != null) { this.user = users.get(user); users.get(user).addCourseUser(this); } if ((this.user == null) && (oldUsers.get(user) != null)) { this.user = oldUsers.get(user); oldUsers.get(user).addCourseUser(this); } } public void setRole(final long role, final Map<Long, Role> roles, final Map<Long, Role> oldRoles) { if (roles.get(role) != null) { this.role = roles.get(role); roles.get(role).addCourseUser(this); } if ((this.role == null) && (oldRoles.get(role) != null)) { this.role = oldRoles.get(role); oldRoles.get(role).addCourseUser(this); } } }