/*-
* #%L
* BroadleafCommerce Profile
* %%
* Copyright (C) 2009 - 2025 Broadleaf Commerce
* %%
* Licensed under the Broadleaf Fair Use License Agreement, Version 1.0
* (the "Fair Use License" located at
[Link]
* unless the restrictions on use therein are violated and require payment to
Broadleaf in which case
* the Broadleaf End User License Agreement (EULA), Version 1.1
* (the "Commercial License" located at
[Link]
* shall apply.
*
* Alternatively, the Commercial License may be replaced with a mutually agreed
upon license (the "Custom License")
* between you and Broadleaf Commerce. You may not use this file except in
compliance with the applicable license.
* #L%
*/
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import
[Link];
import
[Link];
import
[Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
@Entity
@EntityListeners(value = {[Link]})
@Inheritance(strategy = [Link])
@Table(name = "BLC_ADDRESS", indexes = {
@Index(name = "ADDRESS_ISO_COUNTRY_IDX", columnList =
"ISO_COUNTRY_ALPHA2"),
@Index(name = "ADDRESS_PHONE_PRI_IDX", columnList = "PHONE_PRIMARY_ID"),
@Index(name = "ADDRESS_PHONE_SEC_IDX", columnList = "PHONE_SECONDARY_ID"),
@Index(name = "ADDRESS_PHONE_FAX_IDX", columnList = "PHONE_FAX_ID"),
@Index(name = "ADDRESS_COUNTY_INDEX", columnList = "COUNTY")
})
@AdminPresentationMergeOverrides({
@AdminPresentationMergeOverride(name = "phonePrimary", mergeEntries =
@AdminPresentationMergeEntry(propertyType =
[Link],
booleanOverrideValue = true)),
@AdminPresentationMergeOverride(name = "phoneSecondary", mergeEntries =
@AdminPresentationMergeEntry(propertyType =
[Link],
booleanOverrideValue = true)),
@AdminPresentationMergeOverride(name = "phoneFax", mergeEntries =
@AdminPresentationMergeEntry(propertyType =
[Link],
booleanOverrideValue = true)),
@AdminPresentationMergeOverride(name = "[Link]",
mergeEntries = {
@AdminPresentationMergeEntry(propertyType =
[Link],
booleanOverrideValue = false),
@AdminPresentationMergeEntry(propertyType =
[Link],
intOverrideValue = 1300),
@AdminPresentationMergeEntry(
propertyType =
[Link],
overrideValue = "NOT_REQUIRED"),
@AdminPresentationMergeEntry(
propertyType = [Link],
overrideValue = "PhoneImpl_Primary_Phone")}),
@AdminPresentationMergeOverride(name = "[Link]",
mergeEntries = {
@AdminPresentationMergeEntry(propertyType =
[Link],
booleanOverrideValue = false),
@AdminPresentationMergeEntry(propertyType =
[Link],
intOverrideValue = 1400),
@AdminPresentationMergeEntry(
propertyType =
[Link],
overrideValue = "NOT_REQUIRED"),
@AdminPresentationMergeEntry(
propertyType = [Link],
overrideValue = "PhoneImpl_Secondary_Phone")}),
@AdminPresentationMergeOverride(name = "[Link]", mergeEntries
= {
@AdminPresentationMergeEntry(propertyType =
[Link],
booleanOverrideValue = false),
@AdminPresentationMergeEntry(propertyType =
[Link],
intOverrideValue = 1500),
@AdminPresentationMergeEntry(
propertyType =
[Link],
overrideValue = "NOT_REQUIRED"),
@AdminPresentationMergeEntry(
propertyType = [Link],
overrideValue = "PhoneImpl_Fax_Phone")}),
@AdminPresentationMergeOverride(name = "state", mergeEntries =
@AdminPresentationMergeEntry(propertyType =
[Link],
booleanOverrideValue = true)),
@AdminPresentationMergeOverride(name = "country", mergeEntries =
@AdminPresentationMergeEntry(propertyType =
[Link],
booleanOverrideValue = true))
})
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE, region = "blOrderElements")
@AdminPresentationClass(populateToOneFields = [Link],
friendlyName = "AddressImpl_baseAddress")
public class AddressImpl implements Address {
@Serial
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(generator = "AddressId")
@GenericGenerator(
name = "AddressId",
type = [Link],
parameters = {
@Parameter(name = "segment_value", value = "AddressImpl"),
@Parameter(name = "entity_name",
value =
"[Link]")
}
)
@Column(name = "ADDRESS_ID")
protected Long id;
@Column(name = "FULL_NAME")
@AdminPresentation(friendlyName = "AddressImpl_Full_Name", order = 10, group =
"AddressImpl_Address")
protected String fullName;
@Column(name = "FIRST_NAME")
@AdminPresentation(friendlyName = "AddressImpl_First_Name", order = 10, group =
"AddressImpl_Address")
protected String firstName;
@Column(name = "LAST_NAME")
@AdminPresentation(friendlyName = "AddressImpl_Last_Name", order = 20, group =
"AddressImpl_Address")
protected String lastName;
@Column(name = "EMAIL_ADDRESS")
@AdminPresentation(friendlyName = "AddressImpl_Email_Address", order = 30,
group = "AddressImpl_Address")
protected String emailAddress;
@Column(name = "COMPANY_NAME")
@AdminPresentation(friendlyName = "AddressImpl_Company_Name", order = 40, group
= "AddressImpl_Address")
protected String companyName;
@Column(name = "ADDRESS_LINE1", nullable = false)
@AdminPresentation(friendlyName = "AddressImpl_Address_1", order = 50, group =
"AddressImpl_Address")
protected String addressLine1;
@Column(name = "ADDRESS_LINE2")
@AdminPresentation(friendlyName = "AddressImpl_Address_2", order = 60, group =
"AddressImpl_Address")
protected String addressLine2;
@Column(name = "ADDRESS_LINE3")
@AdminPresentation(friendlyName = "AddressImpl_Address_3", order = 60, group =
"AddressImpl_Address")
protected String addressLine3;
@Column(name = "CITY", nullable = false)
@AdminPresentation(friendlyName = "AddressImpl_City", order = 70, group =
"AddressImpl_Address")
protected String city;
@Column(name = "ISO_COUNTRY_SUB")
@AdminPresentation(friendlyName = "AddressImpl_Country_Subdivision", order =
110, group = "AddressImpl_Address",
tooltip = "AddressImpl_Country_Subdivision_ToolTip")
protected String isoCountrySubdivision;
@Column(name = "SUB_STATE_PROV_REG")
@AdminPresentation(friendlyName = "AddressImpl_State_Province_Region", order =
80, group = "AddressImpl_Address")
protected String stateProvinceRegion;
@Column(name = "COUNTY")
@AdminPresentation(friendlyName = "AddressImpl_County", order = 90, group =
"AddressImpl_Address")
protected String county;
@ManyToOne(cascade = {[Link], [Link]}, targetEntity =
[Link])
@JoinColumn(name = "ISO_COUNTRY_ALPHA2")
@AdminPresentation(friendlyName = "AddressImpl_Country_Alpha2", order = 100,
group = "AddressImpl_Address")
@AdminPresentationToOneLookup
protected ISOCountry isoCountryAlpha2;
@Column(name = "POSTAL_CODE")
@AdminPresentation(friendlyName = "AddressImpl_Postal_Code", order = 120, group
= "AddressImpl_Address")
protected String postalCode;
@Column(name = "ZIP_FOUR")
@AdminPresentation(friendlyName = "AddressImpl_Four_Digit_Zip", order = 130,
group = "AddressImpl_Address")
protected String zipFour;
@ManyToOne(targetEntity = [Link], cascade = {[Link],
[Link], [Link]})
@JoinColumn(name = "PHONE_PRIMARY_ID")
protected Phone phonePrimary;
@ManyToOne(targetEntity = [Link], cascade = {[Link],
[Link], [Link]})
@JoinColumn(name = "PHONE_SECONDARY_ID")
protected Phone phoneSecondary;
@ManyToOne(targetEntity = [Link], cascade = {[Link],
[Link], [Link]})
@JoinColumn(name = "PHONE_FAX_ID")
protected Phone phoneFax;
@Column(name = "IS_DEFAULT")
@AdminPresentation(friendlyName = "AddressImpl_Default_Address", order = 160,
group = "AddressImpl_Address")
protected boolean isDefault = false;
@Column(name = "IS_ACTIVE")
@AdminPresentation(friendlyName = "AddressImpl_Active_Address", order = 170,
group = "AddressImpl_Address")
protected boolean isActive = true;
@Column(name = "IS_BUSINESS")
@AdminPresentation(friendlyName = "AddressImpl_Business_Address", order = 180,
group = "AddressImpl_Address")
protected boolean isBusiness = false;
/**
* Intended to be used to differentiate whether this address is a physical
address (e.g.
* street/house) or a mailing address (e.g. P.O. Box etc..)
*/
@Column(name = "IS_STREET")
@AdminPresentation(friendlyName = "AddressImpl_Street_Address", order = 220,
group = "AddressImpl_Address")
protected boolean isStreet = false;
/**
* Intended to be used to differentiate whether this address is a physical
address (e.g.
* street/house) or a mailing address (e.g. P.O. Box etc..)
*/
@Column(name = "IS_MAILING")
@AdminPresentation(friendlyName = "AddressImpl_Mailing_Address", order = 230,
group = "AddressImpl_Address")
protected boolean isMailing = false;
/**
* This is intented to be used for address verification integrations and should
not be
* modifiable in the admin
*/
@Column(name = "TOKENIZED_ADDRESS")
@AdminPresentation(friendlyName = "AddressImpl_Tokenized_Address", order = 190,
group = "AddressImpl_Address", visibility = VisibilityEnum.HIDDEN_ALL)
protected String tokenizedAddress;
/**
* This is intented to be used for address verification integrations and should
not be
* modifiable in the admin
*/
@Column(name = "STANDARDIZED")
@AdminPresentation(friendlyName = "AddressImpl_Standardized", order = 200,
group = "AddressImpl_Address", visibility = VisibilityEnum.HIDDEN_ALL)
protected Boolean standardized = [Link];
/**
* This is intented to be used for address verification integrations and should
not be
* modifiable in the admin
*/
@Column(name = "VERIFICATION_LEVEL")
@AdminPresentation(friendlyName = "AddressImpl_Verification_Level", order =
210,
group = "AddressImpl_Address", visibility = VisibilityEnum.HIDDEN_ALL)
protected String verificationLevel;
@Column(name = "PRIMARY_PHONE")
@Deprecated
protected String primaryPhone;
@Column(name = "SECONDARY_PHONE")
@Deprecated
protected String secondaryPhone;
@Column(name = "FAX")
@Deprecated
protected String fax;
@Override
public Long getId() {
return id;
}
@Override
public void setId(Long id) {
[Link] = id;
}
@Override
public String getAddressLine1() {
return addressLine1;
}
@Override
public void setAddressLine1(String addressLine1) {
this.addressLine1 = addressLine1;
}
@Override
public String getAddressLine2() {
return addressLine2;
}
@Override
public void setAddressLine2(String addressLine2) {
this.addressLine2 = addressLine2;
}
@Override
public String getAddressLine3() {
return addressLine3;
}
@Override
public void setAddressLine3(String addressLine3) {
this.addressLine3 = addressLine3;
}
@Override
public String getCity() {
return city;
}
@Override
public void setCity(String city) {
[Link] = city;
}
@Override
public String getIsoCountrySubdivision() {
return isoCountrySubdivision;
}
@Override
public void setIsoCountrySubdivision(String isoCountrySubdivision) {
[Link] = isoCountrySubdivision;
}
@Override
public String getStateProvinceRegion() {
return stateProvinceRegion;
}
@Override
public void setStateProvinceRegion(String stateProvinceRegion) {
[Link] = stateProvinceRegion;
}
@Override
public ISOCountry getIsoCountryAlpha2() {
return isoCountryAlpha2;
}
@Override
public void setIsoCountryAlpha2(ISOCountry isoCountryAlpha2) {
this.isoCountryAlpha2 = isoCountryAlpha2;
}
@Override
public String getPostalCode() {
return postalCode;
}
@Override
public void setPostalCode(String postalCode) {
[Link] = postalCode;
}
@Override
public String getCounty() {
return county;
}
@Override
public void setCounty(String county) {
[Link] = county;
}
@Override
public String getTokenizedAddress() {
return tokenizedAddress;
}
@Override
public void setTokenizedAddress(String tokenizedAddress) {
[Link] = tokenizedAddress;
}
@Override
public Boolean getStandardized() {
return standardized;
}
@Override
public void setStandardized(Boolean standardized) {
[Link] = standardized;
}
@Override
public String getZipFour() {
return zipFour;
}
@Override
public void setZipFour(String zipFour) {
[Link] = zipFour;
}
@Override
public String getCompanyName() {
return companyName;
}
@Override
public void setCompanyName(String companyName) {
[Link] = companyName;
}
@Override
public boolean isDefault() {
return isDefault;
}
@Override
public void setDefault(boolean isDefault) {
[Link] = isDefault;
}
@Override
public boolean isActive() {
return isActive;
}
@Override
public void setActive(boolean isActive) {
[Link] = isActive;
}
@Override
public String getFullName() {
return fullName;
}
@Override
public void setFullName(String fullName) {
[Link] = fullName;
}
@Override
public String getFirstName() {
return firstName;
}
@Override
public void setFirstName(String firstName) {
[Link] = firstName;
}
@Override
public String getLastName() {
return lastName;
}
@Override
public void setLastName(String lastName) {
[Link] = lastName;
}
@Override
@Deprecated
public String getPrimaryPhone() {
return primaryPhone;
}
@Override
@Deprecated
public void setPrimaryPhone(String primaryPhone) {
[Link] = primaryPhone;
}
@Override
@Deprecated
public String getSecondaryPhone() {
return secondaryPhone;
}
@Override
@Deprecated
public void setSecondaryPhone(String secondaryPhone) {
[Link] = secondaryPhone;
}
@Override
@Deprecated
public String getFax() {
return [Link];
}
@Override
@Deprecated
public void setFax(String fax) {
[Link] = fax;
}
@Override
public Phone getPhonePrimary() {
Phone legacyPhone = new PhoneImpl();
[Link]([Link]);
return (phonePrimary == null && [Link] != null) ? legacyPhone :
phonePrimary;
}
@Override
public void setPhonePrimary(Phone phonePrimary) {
[Link] = phonePrimary;
}
@Override
public Phone getPhoneSecondary() {
Phone legacyPhone = new PhoneImpl();
[Link]([Link]);
return (phoneSecondary == null && [Link] != null)
? legacyPhone
: phoneSecondary;
}
@Override
public void setPhoneSecondary(Phone phoneSecondary) {
[Link] = phoneSecondary;
}
@Override
public Phone getPhoneFax() {
Phone legacyPhone = new PhoneImpl();
[Link]([Link]);
return (phoneFax == null && [Link] != null) ? legacyPhone : phoneFax;
}
@Override
public void setPhoneFax(Phone phoneFax) {
[Link] = phoneFax;
}
@Override
public boolean isBusiness() {
return isBusiness;
}
@Override
public void setBusiness(boolean isBusiness) {
[Link] = isBusiness;
}
@Override
public boolean isStreet() {
return isStreet;
}
@Override
public void setStreet(boolean isStreet) {
[Link] = isStreet;
}
@Override
public boolean isMailing() {
return isMailing;
}
@Override
public void setMailing(boolean isMailing) {
[Link] = isMailing;
}
@Override
public String getVerificationLevel() {
return verificationLevel;
}
@Override
public void setVerificationLevel(String verificationLevel) {
[Link] = verificationLevel;
}
@Override
public String getEmailAddress() {
return [Link];
}
@Override
public void setEmailAddress(String emailAddress) {
[Link] = emailAddress;
}
@Override
public boolean equals(Object obj) {
if (this == obj)
return true;
if (obj == null)
return false;
if (!getClass().isAssignableFrom([Link]()))
return false;
AddressImpl other = (AddressImpl) obj;
if (id != null && [Link] != null) {
return [Link]([Link]);
}
if (addressLine1 == null) {
if (other.addressLine1 != null)
return false;
} else if ()
return false;
if (addressLine2 == null) {
if (other.addressLine2 != null)
return false;
} else if ()
return false;
if (city == null) {
if ([Link] != null)
return false;
} else if ()
return false;
if (companyName == null) {
if ([Link] != null)
return false;
} else if ()
return false;
if (isoCountryAlpha2 == null) {
if (other.isoCountryAlpha2 != null)
return false;
} else if ()
return false;
if (county == null) {
if ([Link] != null)
return false;
} else if ()
return false;
if (fullName == null) {
if ([Link] != null)
return false;
} else if ()
return false;
if (firstName == null) {
if ([Link] != null)
return false;
} else if ()
return false;
if (lastName == null) {
if ([Link] != null)
return false;
} else if ()
return false;
if (postalCode == null) {
if ([Link] != null)
return false;
} else if ()
return false;
if (isoCountrySubdivision == null) {
if ([Link] != null)
return false;
} else if ()
return false;
if (stateProvinceRegion == null) {
if ([Link] != null)
return false;
} else if ()
return false;
return true;
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : [Link]());
result = prime * result + ((addressLine1 == null) ? 0 :
[Link]());
result = prime * result + ((addressLine2 == null) ? 0 :
[Link]());
result = prime * result + ((city == null) ? 0 : [Link]());
result = prime * result + ((companyName == null) ? 0 :
[Link]());
result = prime * result + ((isoCountryAlpha2 == null) ? 0 :
[Link]());
result = prime * result + ((county == null) ? 0 : [Link]());
result = prime * result + ((fullName == null) ? 0 : [Link]());
result = prime * result + ((firstName == null) ? 0 : [Link]());
result = prime * result + ((lastName == null) ? 0 : [Link]());
result = prime * result + ((postalCode == null) ? 0 :
[Link]());
result = prime * result + ((isoCountrySubdivision == null)
? 0
: [Link]());
result = prime * result + ((stateProvinceRegion == null)
? 0
: [Link]());
return result;
}
@Override
public <G extends Address> CreateResponse<G>
createOrRetrieveCopyInstance(MultiTenantCopyContext context)
throws CloneNotSupportedException {
CreateResponse<G> createResponse =
[Link](this);
if ([Link]()) {
return createResponse;
}
Address cloned = [Link]();
[Link](isActive);
cloned.setAddressLine1(addressLine1);
cloned.setAddressLine2(addressLine2);
cloned.setAddressLine3(addressLine3);
[Link](isBusiness);
[Link](city);
[Link](companyName);
[Link](county);
[Link](isDefault);
[Link](emailAddress);
[Link](firstName);
[Link](lastName);
[Link](fullName);
cloned.setIsoCountryAlpha2(isoCountryAlpha2);
[Link](isoCountrySubdivision);
[Link](isStreet);
[Link](zipFour);
[Link](phoneFax);
[Link](phonePrimary);
[Link](postalCode);
[Link](fax);
[Link](isMailing);
[Link](standardized);
[Link](tokenizedAddress);
[Link](verificationLevel);
[Link](stateProvinceRegion);
[Link](phoneSecondary);
return createResponse;
}