package org.mxchange.jcontactsbusiness.headquarters;
import javax.persistence.Basic;
+import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
+import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.OneToOne;
import javax.persistence.Table;
+import org.mxchange.jcountry.data.Country;
+import org.mxchange.jcountry.data.CountryData;
+import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
+import org.mxchange.jphone.phonenumbers.fax.FaxNumber;
+import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
+import org.mxchange.jphone.phonenumbers.landline.LandLineNumber;
/**
* A POJO for company headquarts data
* <p>
* @author Roland Haeder
*/
-@Entity (name = "headquarters")
-@Table (name = "headquarters")
+@Entity (name = "company_headquarters")
+@Table (name = "company_headquarters")
public class CompanyHeadQuartersData implements HeadQuartersData, Comparable<HeadQuartersData> {
/**
/**
* Headquarter's country code
*/
- @Basic (optional = false)
- @Column (name = "headquarters_country_code", length = 2, nullable = false)
- private String headquartersCountryCode;
+ @JoinColumn (name = "headquarters_country_id", nullable = false)
+ @OneToOne (targetEntity = CountryData.class, cascade = CascadeType.ALL, optional = false, fetch = FetchType.EAGER)
+ private Country headquartersCountry;
+
+ /**
+ * Headquarters' fax number
+ */
+ @JoinColumn (name = "headquarters_fax_number_id")
+ @OneToOne (targetEntity = FaxNumber.class, cascade = CascadeType.ALL)
+ private DialableFaxNumber headquartersFaxNumber;
/**
* Headquarters' house number
* Id number
*/
@Id
- @Column (name = "headquarters_id", length = 20, nullable = false, unique = true, updatable = false)
@GeneratedValue (strategy = GenerationType.IDENTITY)
+ @Column (name = "headquarters_id", length = 20, nullable = false, updatable = false)
private Long headquartersId;
+ /**
+ * Headquarters' phone number
+ */
+ @JoinColumn (name = "headquarters_phone_number_id")
+ @OneToOne (targetEntity = LandLineNumber.class, cascade = CascadeType.ALL)
+ private DialableLandLineNumber headquartersPhoneNumber;
+
/**
* Headquarters' store number (multi-store building only)
*/
}
@Override
- public String getHeadquartersCountryCode () {
- return this.headquartersCountryCode;
+ public Country getHeadquartersCountry () {
+ return this.headquartersCountry;
+ }
+
+ @Override
+ public void setHeadquartersCountry (final Country headquartersCountry) {
+ this.headquartersCountry = headquartersCountry;
}
@Override
- public void setHeadquartersCountryCode (final String headquartersCountryCode) {
- this.headquartersCountryCode = headquartersCountryCode;
+ public DialableFaxNumber getHeadquartersFaxNumber () {
+ return this.headquartersFaxNumber;
+ }
+
+ @Override
+ public void setHeadquartersFaxNumber (final DialableFaxNumber headquartersFaxNumber) {
+ this.headquartersFaxNumber = headquartersFaxNumber;
}
@Override
this.headquartersId = headquartersId;
}
+ @Override
+ public DialableLandLineNumber getHeadquartersPhoneNumber () {
+ return this.headquartersPhoneNumber;
+ }
+
+ @Override
+ public void setHeadquartersPhoneNumber (final DialableLandLineNumber headquartersPhoneNumber) {
+ this.headquartersPhoneNumber = headquartersPhoneNumber;
+ }
+
@Override
public Short getHeadquartersStore () {
return this.headquartersStore;