/** * Copyright (C) 2012 KRM Associates, Inc. healtheme@krminc.com * * 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 com.krminc.phr.domain; 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.GenerationType; import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.NamedQueries; import javax.persistence.NamedQuery; import javax.persistence.Table; import javax.persistence.Temporal; import javax.persistence.TemporalType; /** * Address entity class. * * @author Daniel Shaw (dshaw.com) */ @Entity @Table(name = "user_addresses", catalog = "phr", schema = "") @NamedQueries({ @NamedQuery(name = "Address.findAll", query = "SELECT a FROM Address a"), @NamedQuery(name = "Address.findByAddressId", query = "SELECT a FROM Address a WHERE a.addressId = :addressId"), @NamedQuery(name = "Address.findByPrimaryAddress", query = "SELECT a FROM Address a WHERE a.primaryAddress = :primaryAddress"), @NamedQuery(name = "Address.findByAddress1", query = "SELECT a FROM Address a WHERE a.address1 = :address1"), @NamedQuery(name = "Address.findByAddress2", query = "SELECT a FROM Address a WHERE a.address2 = :address2"), @NamedQuery(name = "Address.findByAddress3", query = "SELECT a FROM Address a WHERE a.address3 = :address3"), @NamedQuery(name = "Address.findByCity", query = "SELECT a FROM Address a WHERE a.city = :city"), @NamedQuery(name = "Address.findByState", query = "SELECT a FROM Address a WHERE a.state = :state"), @NamedQuery(name = "Address.findByProvince", query = "SELECT a FROM Address a WHERE a.province = :province"), @NamedQuery(name = "Address.findByZip", query = "SELECT a FROM Address a WHERE a.zip = :zip"), @NamedQuery(name = "Address.findByCountry", query = "SELECT a FROM Address a WHERE a.country = :country"), @NamedQuery(name = "Address.findByDateCreated", query = "SELECT a FROM Address a WHERE a.dateCreated = :dateCreated"), @NamedQuery(name = "Address.findByCreatedByUserId", query = "SELECT a FROM Address a WHERE a.createdByUserId = :createdByUserId"), @NamedQuery(name = "Address.findByLastUpdated", query = "SELECT a FROM Address a WHERE a.lastUpdated = :lastUpdated") }) public class Address implements Serializable { private static final long serialVersionUID = 20100124L; @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Basic(optional = false) @Column(name = "address_id", nullable = false) private Long addressId; @Basic(optional = false) @Column(name = "user_id", nullable = false) private Long userId; @Column(name = "primary_address") private Boolean primaryAddress; @Column(name = "address1", length = 200) private String address1; @Column(name = "address2", length = 200) private String address2; @Column(name = "address3", length = 200) private String address3; @Column(name = "city", length = 100) private String city; @Column(name = "state", length = 100) private String state; @Column(name = "province", length = 100) private String province; @Column(name = "zip", length = 25) private String zip; @Column(name = "country", length = 25) private String country; @Basic(optional = false) @Column(name = "date_created", nullable = false) @Temporal(TemporalType.TIMESTAMP) private Date dateCreated; @Column(name = "created_by_user_id") private BigInteger createdByUserId; @Column(name = "last_updated") @Temporal(TemporalType.TIMESTAMP) private Date lastUpdated; @ManyToOne @JoinColumn(name = "user_id", referencedColumnName = "user_id", updatable=false, insertable=false) private User user; public Address() { } public Address(Long addressId) { this.addressId = addressId; } // TODO: this needs to be a constructor for the base address public Address(Long addressId, Date dateCreated, Date lastLogin) { this.addressId = addressId; this.dateCreated = dateCreated; } /** * Constructor for user enrollment form on update. * * @param addressId * @param userId * @param primaryAddress * @param dateCreated */ public Address(Long addressId, Long userId, Boolean primaryAddress, Date dateCreated) { this.addressId = addressId; this.userId = userId; this.primaryAddress = primaryAddress; this.dateCreated = dateCreated; } /** * Constructor for user enrollment form. * User defined post construction. * * @param primaryAddress Most likely TRUE if used to create a new user instance. * @param address1 * @param address2 * @param city * @param state * @param zip * @param dateCreated */ public Address(Boolean primaryAddress, String address1, String address2, String address3, String city, String state, String zip, Date dateCreated) { this.primaryAddress = primaryAddress; this.address1 = address1; this.address2 = address2; this.address3 = address3; this.city = city; this.state = state; this.zip = zip; this.dateCreated = dateCreated; } public Long getAddressId() { return addressId; } public void setAddressId(Long addressId) { this.addressId = addressId; } public Long getUserId() { return userId; } public void setUserId(Long userId) { this.userId = userId; } public Boolean getPrimaryAddress() { return primaryAddress; } public void setPrimaryAddress(Boolean primaryAddress) { this.primaryAddress = primaryAddress; } public String getAddress1() { return address1; } public void setAddress1(String address1) { this.address1 = address1; } public String getAddress2() { return address2; } public void setAddress2(String address2) { this.address2 = address2; } public String getAddress3() { return address3; } public void setAddress3(String address3) { this.address3 = address3; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getState() { return state; } public void setState(String state) { this.state = state; } public String getProvince() { return province; } public void setProvince(String province) { this.province = province; } public String getZip() { return zip; } public void setZip(String zip) { this.zip = zip; } public String getCountry() { return country; } public void setCountry(String country) { this.country = country; } public Date getDateCreated() { return dateCreated; } public void setDateCreated(Date dateCreated) { this.dateCreated = dateCreated; } public BigInteger getCreatedByUserId() { return createdByUserId; } public void setCreatedByUserId(BigInteger createdByUserId) { this.createdByUserId = createdByUserId; } public Date getLastUpdated() { return lastUpdated; } public void setLastUpdated(Date lastUpdated) { this.lastUpdated = lastUpdated; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } @Override public int hashCode() { int hash = 0; hash += (addressId != null ? addressId.hashCode() : 0); return hash; } @Override public boolean equals(Object object) { if (!(object instanceof Address)) { return false; } Address other = (Address) object; if ((this.addressId == null && other.addressId != null) || (this.addressId != null && !this.addressId.equals(other.addressId))) { return false; } return true; } @Override public String toString() { final StringBuilder result = new StringBuilder("Address[ "); result.append("addressId: ").append(addressId); result.append("address1: ").append(address1); // result.append(" firstName: ").append(firstName).append("\n"); // result.append(" middleName: ").append(middleName).append("\n"); // result.append(" lastName: ").append(lastName).append("\n"); // result.append(" ssn: ").append(ssn).append("\n"); // result.append(" dob: ").append(dob).append("\n"); // result.append(" dateCreated: ").append(dateCreated).append("\n"); result.append("]"); return result.toString(); } }