package edu.harvard.iq.dataverse.authorization.users; import java.io.Serializable; import java.sql.Timestamp; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Index; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.validation.constraints.NotNull; @Entity @NamedQueries({ @NamedQuery( name="ApiToken.findByTokenString", query="SELECT t FROM ApiToken t WHERE t.tokenString = :tokenString" ), @NamedQuery( name="ApiToken.findByUser", query="SELECT t FROM ApiToken t WHERE t.authenticatedUser = :user") }) @Table(indexes = {@Index(columnList="authenticateduser_id")}) public class ApiToken implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @NotNull @Column(nullable = false, unique = true) private String tokenString; @NotNull @JoinColumn(nullable = false) @ManyToOne private AuthenticatedUser authenticatedUser; @Column(nullable = false) boolean disabled; @Column(nullable = false) private Timestamp createTime; @Column(nullable = false) private Timestamp expireTime; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getTokenString() { return tokenString; } public void setTokenString(String aToken) { this.tokenString = aToken; } public AuthenticatedUser getAuthenticatedUser() { return authenticatedUser; } public boolean isDisabled() { return disabled; } public Timestamp getCreateTime() { return createTime; } public Timestamp getExpireTime() { return expireTime; } public void setAuthenticatedUser(AuthenticatedUser authenticatedUser) { this.authenticatedUser = authenticatedUser; } public void setDisabled(boolean disabled) { this.disabled = disabled; } public void setCreateTime(Timestamp createTime) { this.createTime = createTime; } public void setExpireTime(Timestamp expireTime) { this.expireTime = expireTime; } }