Implement PlatformUser superclass

This commit is contained in:
Tobias Eidelpes 2021-04-02 18:45:52 +02:00
parent 00d2078a30
commit fd9b742026
3 changed files with 100 additions and 27 deletions

View File

@ -8,12 +8,7 @@ import java.util.ArrayList;
import java.util.Collection;
@Entity
public class Driver implements IDriver {
@Id @GeneratedValue private Long id;
private String name;
@NotNull private String tel;
private Double avgRating;
public class Driver extends PlatformUser implements IDriver {
@OneToMany(targetEntity = Match.class)
private Collection<IMatch> matches = new ArrayList<>();

View File

@ -0,0 +1,62 @@
package dst.ass1.jpa.model.impl;
import dst.ass1.jpa.model.IPlatformUser;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@MappedSuperclass
public class PlatformUser implements IPlatformUser, Serializable {
@Id @GeneratedValue
protected Long id;
protected String name;
@NotNull
protected String tel;
protected Double avgRating;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
this.id = id;
}
@Override
public String getName() {
return name;
}
@Override
public void setName(String name) {
this.name = name;
}
@Override
public String getTel() {
return tel;
}
@Override
public void setTel(String tel) {
this.tel = tel;
}
@Override
public Double getAvgRating() {
return avgRating;
}
@Override
public void setAvgRating(Double avgRating) {
this.avgRating = avgRating;
}
}

View File

@ -4,20 +4,36 @@ import dst.ass1.jpa.model.IPreferences;
import dst.ass1.jpa.model.IRider;
import dst.ass1.jpa.model.ITrip;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.*;
import javax.validation.constraints.NotNull;
import java.util.Collection;
import static dst.ass1.jpa.util.Constants.M_RIDER_ACCOUNT;
import static dst.ass1.jpa.util.Constants.M_RIDER_BANK_CODE;
@Table(
uniqueConstraints = @UniqueConstraint(columnNames = {M_RIDER_ACCOUNT, M_RIDER_BANK_CODE})
)
@Entity
public class Rider implements IRider {
@Id
private Long id;
private String name;
@NotNull
private String tel;
private Double avgRating;
private Collection<ITrip> trips;
public class Rider extends PlatformUser implements IRider {
@Column(unique = true) @NotNull
private String email;
@Column(columnDefinition = "VARBINARY(20)", length = 20)
private byte[] password;
@Column(name = M_RIDER_ACCOUNT)
private String accountNo;
@Column(name = M_RIDER_BANK_CODE)
private String bankCode;
@OneToOne(targetEntity = Preferences.class, optional = false)
private IPreferences preferences;
@ManyToOne(targetEntity = Trip.class)
private Collection<ITrip> trips = new ArrayList<>();
@Override
public Long getId() {
@ -41,7 +57,7 @@ public class Rider implements IRider {
@Override
public String getTel() {
return null;
return tel;
}
@Override
@ -61,52 +77,52 @@ public class Rider implements IRider {
@Override
public String getEmail() {
return null;
return email;
}
@Override
public void setEmail(String email) {
this.email = email;
}
@Override
public byte[] getPassword() {
return new byte[0];
return password;
}
@Override
public void setPassword(byte[] password) {
this.password = password;
}
@Override
public String getAccountNo() {
return null;
return accountNo;
}
@Override
public void setAccountNo(String accountNo) {
this.accountNo = accountNo;
}
@Override
public String getBankCode() {
return null;
return bankCode;
}
@Override
public void setBankCode(String bankCode) {
this.bankCode = bankCode;
}
@Override
public IPreferences getPreferences() {
return null;
return preferences;
}
@Override
public void setPreferences(IPreferences preferences) {
this.preferences = preferences;
}
@Override