package cyrille.sample;
import java.io.Serializable;
import java.math.BigInteger;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
import com.thoughtworks.xstream.annotations.XStreamAlias;
@Entity
@Table(name = "person")
public class Person implements Serializable {
private static final long serialVersionUID = 1L;
@Basic
@Column(name = "age", nullable = true)
Integer age;
@Basic
@XStreamAlias("age-as-object")
int ageAsPrimitive;
@Basic
BigInteger amount;
@Basic
@XStreamAlias("birth-date")
@Column(name = "birth_date", nullable = true)
Date birthDate;
@Basic
@Column(name = "first_name", nullable = false, length = 255)
@XStreamAlias("first-name")
String firstName;
@Id
@GeneratedValue
Long id;
@Basic
@Column(name = "last_name", nullable = false, length = 255)
@XStreamAlias("last-name")
String lastName;
public Person() {
super();
}
public Person(String firstName, String lastName, Date birthDate, int ageAsPrimitive, Integer age, BigInteger amount) {
super();
this.firstName = firstName;
this.lastName = lastName;
this.birthDate = birthDate;
this.ageAsPrimitive = ageAsPrimitive;
this.age = age;
this.amount = amount;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (getClass() != obj.getClass()) {
return false;
}
final Person other = (Person) obj;
return new EqualsBuilder().append(this.id, other.id).isEquals();
}
public Integer getAge() {
return this.age;
}
public int getAgeAsPrimitive() {
return this.ageAsPrimitive;
}
public Date getBirthDate() {
return this.birthDate;
}
public String getFirstName() {
return this.firstName;
}
public Long getId() {
return this.id;
}
public String getLastName() {
return this.lastName;
}
@Override
public int hashCode() {
return new HashCodeBuilder().append(this.id).toHashCode();
}
public void setAge(Integer ageAsObject) {
this.age = ageAsObject;
}
public void setAgeAsPrimitive(int age) {
this.ageAsPrimitive = age;
}
public void setBirthDate(Date birthDate) {
this.birthDate = birthDate;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
public void setId(Long id) {
this.id = id;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
@Override
public String toString() {
return new ToStringBuilder(this).append("id", this.id).append("lastName", this.lastName).append("firstName", this.firstName).append("age", this.age)
.append("ageAsPrimitive", this.ageAsPrimitive).append("birthDate", this.birthDate).toString();
}
}