1 package dst.ass1.jpa.model.impl;
3 import dst.ass1.jpa.model.IEnrollment;
4 import dst.ass1.jpa.model.IMembership;
5 import dst.ass1.jpa.model.IParticipant;
6 import dst.ass1.jpa.util.Constants;
8 import javax.persistence.*;
9 import java.security.MessageDigest;
10 import java.security.NoSuchAlgorithmException;
11 import java.util.ArrayList;
12 import java.util.Collection;
15 @Table(name = Constants.T_PARTICIPANT, uniqueConstraints = {@UniqueConstraint(columnNames = {Constants.M_PARTICIPANT_ACCOUNT, Constants.M_PARTICIPANT_BANK_CODE})})
16 @PrimaryKeyJoinColumn(name = "id")
17 @NamedQuery(name = Constants.Q_PARTICIPANT_BY_EMAIL, query =
18 "SELECT p FROM " + Constants.T_PARTICIPANT + " as p where p." + Constants.M_PERSON_EMAIL + " = :email")
19 public class Participant extends Person implements IParticipant {
20 @Column(nullable = false, unique = true)
23 @Column(name = Constants.M_PERSON_PASSWORD, columnDefinition = "VARBINARY(20)")
24 private byte[] password;
27 private String accountNo;
30 private String bankCode;
32 // FIXME: TESTS VS DB-MODEL?
33 @OneToMany(targetEntity = Enrollment.class)
34 private Collection<IEnrollment> enrollments = new ArrayList<>();
36 // FIXME: TESTS VS DB-MODEL?
37 @OneToMany(targetEntity = Membership.class)
38 private Collection<IMembership> memberships = new ArrayList<>();
42 public String getEmail() {
47 public void setEmail(String email) {
51 // FIXME: This makes no sense. set(get()) - is broken. -> checkPW()?
53 public byte[] getPassword() {
58 public void setPassword(byte[] password) {
60 this.password = MessageDigest.getInstance("SHA-1").digest(password);
61 } catch (NoSuchAlgorithmException e) {
67 public String getAccountNo() {
72 public void setAccountNo(String accountNo) {
73 this.accountNo = accountNo;
77 public String getBankCode() {
82 public void setBankCode(String bankCode) {
83 this.bankCode = bankCode;
87 public Collection<IEnrollment> getEnrollments() {
92 public void setEnrollments(Collection<IEnrollment> enrollments) {
93 this.enrollments = enrollments;
97 public void addEnrollment(IEnrollment enrollment) {
98 this.enrollments.add(enrollment);
102 public Collection<IMembership> getMemberships() {
107 public void setMemberships(Collection<IMembership> memberships) {
108 this.memberships = memberships;
112 public void addMembership(IMembership membership) {
113 this.memberships.add(membership);