package org.infinispan.persistence.jpa.entity;
import java.io.Serializable;
import java.util.Set;
import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.ElementCollection;
import javax.persistence.Embedded;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
@Entity
public class Person implements Serializable {
private static final long serialVersionUID = 4748311041613897465L;
@Id
private String id;
private String name;
@ElementCollection(fetch = FetchType.EAGER)
private Set<String> nickNames;
@Embedded
@AttributeOverrides({ @AttributeOverride(name = "zipCode", column = @Column(name = "zip")) })
private Address address;
@ElementCollection(fetch = FetchType.EAGER)
private Set<Address> secondaryAdresses;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Set<String> getNickNames() {
return nickNames;
}
public void setNickNames(Set<String> nickNames) {
this.nickNames = nickNames;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
public Set<Address> getSecondaryAdresses() {
return secondaryAdresses;
}
public void setSecondaryAdresses(Set<Address> secondaryAdresses) {
this.secondaryAdresses = secondaryAdresses;
}
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;
final Person person = (Person) o;
if (id != null ? !id.equals(person.getId()) : person.getId() != null)
return false;
if (name != null ? !name.equals(person.getName()) : person.getName() != null)
return false;
if ( (nickNames != null && !nickNames.isEmpty()) ? !nickNames.equals(person.getNickNames()) :
(person.getNickNames() != null && !person.getNickNames().isEmpty()))
return false;
if (address != null ? !address.equals(person.getAddress()) : person.getAddress() != null)
return false;
if ( (secondaryAdresses != null && !secondaryAdresses.isEmpty() ) ? !secondaryAdresses.equals(person.getSecondaryAdresses()) :
(person.getSecondaryAdresses() != null && !person.getSecondaryAdresses().isEmpty()))
return false;
return true;
}
public int hashCode() {
final int prime = 31;
int result;
result = (id != null ? id.hashCode() : 0);
result = prime * result + (name != null ? name.hashCode() : 0);
result = prime * result + (nickNames != null ? nickNames.hashCode() : 0);
result = prime * result + (address != null ? address.hashCode() : 0);
result = prime * result + (secondaryAdresses != null ? secondaryAdresses.hashCode() : 0);
return result;
}
@Override
public String toString() {
return "Person{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", nickNames=" + nickNames +
", address=" + address +
", secondaryAdresses=" + secondaryAdresses +
'}';
}
}