2018-03-21 11:57:56 +01:00
|
|
|
package eu.eudat.data.entities;
|
2017-12-15 17:57:41 +01:00
|
|
|
|
2018-10-02 16:33:58 +02:00
|
|
|
import eu.eudat.data.converters.DateToUTCConverter;
|
2019-05-21 17:17:41 +02:00
|
|
|
import eu.eudat.data.entities.helpers.EntityBinder;
|
2018-03-21 11:16:32 +01:00
|
|
|
import eu.eudat.queryable.queryableentity.DataEntity;
|
|
|
|
|
2017-12-15 17:57:41 +01:00
|
|
|
import javax.persistence.*;
|
|
|
|
import java.util.Date;
|
2018-10-02 16:33:58 +02:00
|
|
|
import java.util.List;
|
2017-12-15 17:57:41 +01:00
|
|
|
import java.util.UUID;
|
|
|
|
|
2018-02-01 10:08:06 +01:00
|
|
|
|
2017-12-15 17:57:41 +01:00
|
|
|
@Entity
|
2018-01-25 16:24:21 +01:00
|
|
|
@Table(name = "\"Credential\"")
|
2018-02-23 11:36:51 +01:00
|
|
|
@NamedEntityGraphs({
|
2019-05-21 17:17:41 +02:00
|
|
|
@NamedEntityGraph(
|
|
|
|
name = "credentialUserInfo",
|
|
|
|
attributeNodes = {@NamedAttributeNode("userInfo")})
|
2018-02-23 11:36:51 +01:00
|
|
|
})
|
2019-05-21 17:17:41 +02:00
|
|
|
public class Credential implements DataEntity<Credential, UUID> {
|
2017-12-15 17:57:41 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Id
|
|
|
|
@Column(name = "\"Id\"", updatable = false, nullable = false, columnDefinition = "BINARY(16)")
|
|
|
|
private UUID id;
|
2017-12-15 17:57:41 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@ManyToOne
|
|
|
|
@JoinColumn(name = "\"UserId\"", nullable = false)
|
|
|
|
private UserInfo userInfo;
|
2017-12-15 17:57:41 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Column(name = "\"Status\"", nullable = false)
|
|
|
|
private Integer status;
|
2017-12-15 17:57:41 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Column(name = "\"Provider\"", nullable = false)
|
|
|
|
private Integer provider;
|
|
|
|
@Column(name = "\"Public\"", nullable = false)
|
|
|
|
private String publicValue;
|
|
|
|
@Column(name = "\"Secret\"", nullable = false)
|
|
|
|
private String secret;
|
2018-10-02 16:33:58 +02:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
@Column(name = "\"CreationTime\"", nullable = false)
|
|
|
|
@Convert(converter = DateToUTCConverter.class)
|
|
|
|
private Date creationTime;
|
|
|
|
|
|
|
|
@Column(name = "\"LastUpdateTime\"", nullable = false)
|
|
|
|
@Convert(converter = DateToUTCConverter.class)
|
|
|
|
private Date lastUpdateTime;
|
|
|
|
|
|
|
|
@Column(name = "\"ExternalId\"", nullable = false)
|
|
|
|
private String externalId;
|
2018-02-23 11:36:51 +01:00
|
|
|
|
2019-05-21 17:17:41 +02:00
|
|
|
public UUID getId() {
|
|
|
|
return id;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setId(UUID id) {
|
|
|
|
this.id = id;
|
|
|
|
}
|
|
|
|
|
|
|
|
public UserInfo getUserInfo() {
|
|
|
|
return userInfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setUserInfo(UserInfo userInfo) {
|
|
|
|
this.userInfo = userInfo;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Integer getStatus() {
|
|
|
|
return status;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setStatus(Integer status) {
|
|
|
|
this.status = status;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Integer getProvider() {
|
|
|
|
return provider;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setProvider(Integer provider) {
|
|
|
|
this.provider = provider;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getPublicValue() {
|
|
|
|
return publicValue;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setPublicValue(String publicValue) {
|
|
|
|
this.publicValue = publicValue;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getSecret() {
|
|
|
|
return secret;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setSecret(String secret) {
|
|
|
|
this.secret = secret;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Date getCreationTime() {
|
|
|
|
return creationTime;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setCreationTime(Date creationTime) {
|
|
|
|
this.creationTime = creationTime;
|
|
|
|
}
|
|
|
|
|
|
|
|
public Date getLastUpdateTime() {
|
|
|
|
return lastUpdateTime;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setLastUpdateTime(Date lastUpdateTime) {
|
|
|
|
this.lastUpdateTime = lastUpdateTime;
|
|
|
|
}
|
|
|
|
|
|
|
|
public String getExternalId() {
|
|
|
|
return externalId;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setExternalId(String externalId) {
|
|
|
|
this.externalId = externalId;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public boolean equals(Object o) {
|
|
|
|
if (this == o) return true;
|
|
|
|
if (o == null || getClass() != o.getClass()) return false;
|
|
|
|
|
|
|
|
Credential that = (Credential) o;
|
|
|
|
|
|
|
|
return provider.intValue() == that.provider.intValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public int hashCode() {
|
|
|
|
return provider.intValue();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void update(Credential entity) {
|
|
|
|
this.status = entity.status;
|
|
|
|
this.publicValue = entity.getPublicValue();
|
|
|
|
this.secret = entity.getSecret();
|
|
|
|
this.lastUpdateTime = new Date();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public UUID getKeys() {
|
|
|
|
return this.id;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public Credential buildFromTuple(List<Tuple> tuple, List<String> fields, String base) {
|
|
|
|
String currentBase = base.isEmpty() ? "" : base + ".";
|
|
|
|
if (fields.contains(currentBase + "id")) this.id = EntityBinder.fromTuple(tuple, currentBase + "id");
|
|
|
|
return this;
|
|
|
|
}
|
2017-12-15 17:57:41 +01:00
|
|
|
}
|