// ========================================================================
// Copyright (C) zeroth Project Team. All rights reserved.
// GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
// http://www.gnu.org/licenses/agpl-3.0.txt
// ========================================================================
package zeroth.actor.service.domain.parts;
import javax.persistence.Cacheable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;
import zeroth.framework.enterprise.domain.AbstractVersionable;
/**
* 住所
* @param <T> 住所オブジェクト型
* @author nilcy
*/
@Entity
@Table(name = "address")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "address_type", discriminatorType = DiscriminatorType.STRING)
@Cacheable(true)
public class Address<T extends Address<T>> extends AbstractVersionable<T> {
/** 製品番号 */
private static final long serialVersionUID = -589669347532041227L;
/** 住所宛名 */
@Column(name = "name", nullable = false, insertable = true, updatable = true)
private String name;
/** 郵便番号 */
@Column(name = "code", nullable = true, insertable = true, updatable = true)
private String code;
/** 都道府県 */
@Column(name = "pref", nullable = true, insertable = true, updatable = true)
private String pref;
/** 市区町村 */
@Column(name = "city", nullable = true, insertable = true, updatable = true)
private String city;
/** 町域 */
@Column(name = "town", nullable = true, insertable = true, updatable = true)
private String town;
/** 丁目番地 */
@Column(name = "street", nullable = true, insertable = true, updatable = true)
private String street;
/**
* {@link #name} の取得
* @return {@link #name}
*/
public String getName() {
return this.name;
}
/**
* {@link #name} の設定
* @param aName {@link #name}
*/
public void setName(final String aName) {
this.name = aName;
}
/**
* {@link #code} の取得
* @return {@link #code}
*/
public String getCode() {
return this.code;
}
/**
* {@link #code} の設定
* @param aCode {@link #code}
*/
public void setCode(final String aCode) {
this.code = aCode;
}
/**
* {@link #pref} の取得
* @return {@link #pref}
*/
public String getPref() {
return this.pref;
}
/**
* {@link #pref} の設定
* @param aPref {@link #pref}
*/
public void setPref(final String aPref) {
this.pref = aPref;
}
/**
* {@link #city} の取得
* @return {@link #city}
*/
public String getCity() {
return this.city;
}
/**
* {@link #city} の設定
* @param aCity {@link #city}
*/
public void setCity(final String aCity) {
this.city = aCity;
}
/**
* {@link #town} の取得
* @return {@link #town}
*/
public String getTown() {
return this.town;
}
/**
* {@link #town} の設定
* @param aTown {@link #town}
*/
public void setTown(final String aTown) {
this.town = aTown;
}
/**
* {@link #street} の取得
* @return {@link #street}
*/
public String getStreet() {
return this.street;
}
/**
* {@link #street} の設定
* @param aStreet {@link #street}
*/
public void setStreet(final String aStreet) {
this.street = aStreet;
}
}