package eu.eudat.data.entities; import eu.eudat.queryable.queryableentity.DataEntity; import org.hibernate.annotations.GenericGenerator; import javax.persistence.*; import java.util.List; import java.util.UUID; @Entity @Table(name = "\"UserDMP\"") public class UserDMP implements DataEntity { public enum UserDMPRoles { OWNER(0), USER(1); private Integer value; private UserDMPRoles(Integer value) { this.value = value; } public Integer getValue() { return value; } public static UserDMPRoles fromInteger(Integer value) { switch (value) { case 0: return OWNER; case 1: return USER; default: throw new RuntimeException("Unsupported User Dmp Role Message Code"); } } } @Id @GeneratedValue @GenericGenerator(name = "uuid2", strategy = "uuid2") @Column(name = "id", updatable = false, nullable = false, columnDefinition = "BINARY(16)") private UUID id; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "usr") private UserInfo user; @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "dmp") private DMP dmp; @Column(name = "role") private Integer role; public UUID getId() { return id; } public void setId(UUID id) { this.id = id; } public UserInfo getUser() { return user; } public void setUser(UserInfo user) { this.user = user; } public DMP getDmp() { return dmp; } public void setDmp(DMP dmp) { this.dmp = dmp; } public Integer getRole() { return role; } public void setRole(Integer role) { this.role = role; } @Override public void update(UserDMP entity) { this.role = entity.getRole(); } @Override public UUID getKeys() { return this.id; } @Override public UserDMP buildFromTuple(List tuple, String base) { this.id = UUID.fromString((String) tuple.get(0).get(base.isEmpty() ? base + "." + "id" : "id")); return this; } }