]> git.somenet.org - pub/jan/dst18.git/blob - ass1-jpa/src/main/java/dst/ass1/jpa/model/impl/Participant.java
hash password!
[pub/jan/dst18.git] / ass1-jpa / src / main / java / dst / ass1 / jpa / model / impl / Participant.java
1 package dst.ass1.jpa.model.impl;
2
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;
7
8 import javax.persistence.*;
9 import java.security.MessageDigest;
10 import java.security.NoSuchAlgorithmException;
11 import java.util.ArrayList;
12 import java.util.Collection;
13
14 @Entity
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)
21     private String email;
22
23     @Column(name = Constants.M_PERSON_PASSWORD, columnDefinition = "VARBINARY(20)")
24     private byte[] password;
25
26     @Column
27     private String accountNo;
28
29     @Column
30     private String bankCode;
31
32     // FIXME: TESTS VS DB-MODEL?
33     @OneToMany(targetEntity = Enrollment.class)
34     private Collection<IEnrollment> enrollments = new ArrayList<>();
35
36     // FIXME: TESTS VS DB-MODEL?
37     @OneToMany(targetEntity = Membership.class)
38     private Collection<IMembership> memberships = new ArrayList<>();
39
40
41     @Override
42     public String getEmail() {
43         return email;
44     }
45
46     @Override
47     public void setEmail(String email) {
48         this.email = email;
49     }
50
51     // FIXME: This makes no sense. set(get()) - is broken. -> checkPW()?
52     @Override
53     public byte[] getPassword() {
54         return password;
55     }
56
57     @Override
58     public void setPassword(byte[] password) {
59         try {
60             this.password = MessageDigest.getInstance("SHA-1").digest(password);
61         } catch (NoSuchAlgorithmException e) {
62             e.printStackTrace();
63         }
64     }
65
66     @Override
67     public String getAccountNo() {
68         return accountNo;
69     }
70
71     @Override
72     public void setAccountNo(String accountNo) {
73         this.accountNo = accountNo;
74     }
75
76     @Override
77     public String getBankCode() {
78         return bankCode;
79     }
80
81     @Override
82     public void setBankCode(String bankCode) {
83         this.bankCode = bankCode;
84     }
85
86     @Override
87     public Collection<IEnrollment> getEnrollments() {
88         return enrollments;
89     }
90
91     @Override
92     public void setEnrollments(Collection<IEnrollment> enrollments) {
93         this.enrollments = enrollments;
94     }
95
96     @Override
97     public void addEnrollment(IEnrollment enrollment) {
98         this.enrollments.add(enrollment);
99     }
100
101     @Override
102     public Collection<IMembership> getMemberships() {
103         return memberships;
104     }
105
106     @Override
107     public void setMemberships(Collection<IMembership> memberships) {
108         this.memberships = memberships;
109     }
110
111     @Override
112     public void addMembership(IMembership membership) {
113         this.memberships.add(membership);
114     }
115 }