/* * JBoss, Home of Professional Open Source * * Copyright 2013 Red Hat, Inc. and/or its affiliates. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.picketlink.test.idm.identitymodel.complex.model.entity; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.OneToMany; import javax.persistence.Temporal; import javax.persistence.TemporalType; import java.io.Serializable; import java.util.ArrayList; import java.util.Date; import java.util.List; import static javax.persistence.CascadeType.ALL; /** * @author pedroigor */ @Entity @Inheritance(strategy = InheritanceType.JOINED) public class Person implements Serializable { @Id @GeneratedValue private Long id; private String firstName; private String lastName; @Temporal(TemporalType.TIMESTAMP) private Date birthDate; @OneToMany (mappedBy = "person", cascade = ALL) private List<Address> address; @OneToMany (mappedBy = "person", cascade = ALL) private List<Email> emails; @OneToMany (mappedBy = "person", cascade = ALL) private List<Phone> phones; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public Date getBirthDate() { return birthDate; } public void setBirthDate(Date birthDate) { this.birthDate = birthDate; } public List<Address> getAddress() { return address; } public void setAddress(List<Address> address) { this.address = address; } public List<Email> getEmails() { return emails; } public void setEmails(List<Email> emails) { this.emails = emails; } public List<Phone> getPhones() { return phones; } public void setPhones(List<Phone> phones) { this.phones = phones; } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (!getClass().isInstance(obj)) { return false; } Person other = (Person) obj; return getId() != null && other.getId() != null && getId().equals(other.getId()); } @Override public int hashCode() { int result = getId() != null ? getId().hashCode() : 0; result = 31 * result + (getId() != null ? getId().hashCode() : 0); return result; } public void addAddress(Address address) { if (this.address == null) { this.address = new ArrayList<Address>(); } address.setPerson(this); this.address.add(address); } public void addEmail(Email email) { if (this.emails == null) { this.emails = new ArrayList<Email>(); } email.setPerson(this); this.emails.add(email); } public void addPhone(final Phone phone) { if (this.phones == null) { this.phones = new ArrayList<Phone>(); } phone.setPerson(this); this.phones.add(phone); } }