package com.nurkiewicz.jdbcrepository.repositories;
import org.springframework.data.domain.Persistable;
import java.util.Date;
public class User implements Persistable<String> {
private transient boolean persisted;
private String userName;
private Date dateOfBirth;
private int reputation;
private boolean enabled;
public User(String userName, Date dateOfBirth, int reputation, boolean enabled) {
this.userName = userName;
this.dateOfBirth = dateOfBirth;
this.reputation = reputation;
this.enabled = enabled;
}
@Override
public String getId() {
return userName;
}
@Override
public boolean isNew() {
return !persisted;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Date getDateOfBirth() {
return dateOfBirth;
}
public void setDateOfBirth(Date dateOfBirth) {
this.dateOfBirth = dateOfBirth;
}
public int getReputation() {
return reputation;
}
public void setReputation(int reputation) {
this.reputation = reputation;
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public User withPersisted(boolean persisted) {
this.persisted = persisted;
return this;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
User user = (User) o;
if (enabled != user.enabled) return false;
if (reputation != user.reputation) return false;
if (dateOfBirth != null ? !dateOfBirth.equals(user.dateOfBirth) : user.dateOfBirth != null) return false;
return !(userName != null ? !userName.equals(user.userName) : user.userName != null);
}
@Override
public int hashCode() {
int result = userName != null ? userName.hashCode() : 0;
result = 31 * result + (dateOfBirth != null ? dateOfBirth.hashCode() : 0);
result = 31 * result + reputation;
result = 31 * result + (enabled ? 1 : 0);
return result;
}
@Override
public String toString() {
return "User(userName='" + userName + '\'' + ", dateOfBirth=" + dateOfBirth + ", reputation=" + reputation + ", enabled=" + enabled + ')';
}
}