/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
*/
package org.hibernate.test.bytecode.enhancement.association;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Version;
/**
* @author <a href="mailto:stale.pedersen@jboss.org">Ståle W. Pedersen</a>
*/
@Entity
public class Customer {
@Id
private int id;
@OneToOne
private User user;
private String firstName;
private String lastName;
@OneToMany(mappedBy = "customer", cascade = CascadeType.ALL, fetch = FetchType.EAGER)
private List<CustomerInventory> customerInventories;
@Version
private int version;
public Customer() {
}
public Integer getId() {
return id;
}
public void setId(Integer customerId) {
this.id = customerId;
}
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 List<CustomerInventory> getInventories() {
if ( customerInventories == null ) {
customerInventories = new ArrayList<CustomerInventory>();
}
return customerInventories;
}
public void setInventories (List<CustomerInventory> inventories) {
this.customerInventories = inventories;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public void addInventory(CustomerInventory inventory) {
List<CustomerInventory> list = getInventories();
list.add( inventory );
customerInventories = list;
}
public CustomerInventory addInventory(String item) {
CustomerInventory inventory = new CustomerInventory( this, item );
getInventories().add( inventory );
return inventory;
}
public int getVersion() {
return version;
}
@Override
public boolean equals(Object o) {
if ( this == o ) {
return true;
}
if ( o == null || getClass() != o.getClass() ) {
return false;
}
return id == ( (Customer) o ).id;
}
@Override
public int hashCode() {
return new Integer( id ).hashCode();
}
@Override
public String toString() {
return this.getFirstName() + " " + this.getLastName();
}
}