package org.apereo.cas.otp.repository.token; import org.apache.commons.lang3.builder.CompareToBuilder; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; import org.apache.commons.lang3.builder.ToStringBuilder; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import java.io.Serializable; import java.time.LocalDateTime; /** * This is {@link OneTimeToken}. * * @author Misagh Moayyed * @since 5.1.0 */ @Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public class OneTimeToken implements Serializable, Comparable<OneTimeToken> { private static final long serialVersionUID = -1329938047176583075L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id = Integer.MAX_VALUE; @Column(nullable = false) private Integer token; @Column(nullable = false) private String userId; @Column(nullable = false) private LocalDateTime issuedDateTime = LocalDateTime.now(); public OneTimeToken() { } public OneTimeToken(final Integer token, final String userId) { this.token = token; this.userId = userId; } public Integer getToken() { return token; } public String getUserId() { return userId; } public LocalDateTime getIssuedDateTime() { return issuedDateTime; } public void setId(final long id) { this.id = id; } public void setToken(final Integer token) { this.token = token; } public void setUserId(final String userId) { this.userId = userId; } public void setIssuedDateTime(final LocalDateTime issuedDateTime) { this.issuedDateTime = issuedDateTime; } @Override public String toString() { return new ToStringBuilder(this) .append("token", token) .append("userId", userId) .append("issuedDateTime", issuedDateTime) .toString(); } @Override public boolean equals(final Object obj) { if (obj == null) { return false; } if (obj == this) { return true; } if (obj.getClass() != getClass()) { return false; } final OneTimeToken rhs = (OneTimeToken) obj; return new EqualsBuilder() .append(this.token, rhs.token) .append(this.userId, rhs.userId) .append(this.issuedDateTime, rhs.issuedDateTime) .isEquals(); } @Override public int hashCode() { return new HashCodeBuilder() .append(token) .append(userId) .append(issuedDateTime) .toHashCode(); } @Override public int compareTo(final OneTimeToken o) { return new CompareToBuilder() .append(token, o.getToken()) .append(userId, o.getUserId()) .append(issuedDateTime, o.getIssuedDateTime()) .build(); } }