2 * Copyright (C) 2015 Roland Haeder
4 * This program is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 package org.mxchange.jcontactsbusiness.basicdata;
19 import java.util.Objects;
20 import javax.persistence.Basic;
21 import javax.persistence.CascadeType;
22 import javax.persistence.Column;
23 import javax.persistence.Entity;
24 import javax.persistence.FetchType;
25 import javax.persistence.GeneratedValue;
26 import javax.persistence.GenerationType;
27 import javax.persistence.Id;
28 import javax.persistence.JoinColumn;
29 import javax.persistence.Lob;
30 import javax.persistence.OneToOne;
31 import javax.persistence.Table;
32 import org.mxchange.jcontactsbusiness.logo.BusinessLogo;
33 import org.mxchange.jcontactsbusiness.logo.CompanyLogo;
34 import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
35 import org.mxchange.jphone.phonenumbers.fax.FaxNumber;
36 import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
37 import org.mxchange.jphone.phonenumbers.landline.LandLineNumber;
40 * A POJO for basic company data
42 * @author Roland Haeder
44 @Entity (name = "company_basic_data")
45 @Table (name = "company_basic_data")
46 public class CompanyBasicData implements BusinessBasicData, Comparable<BusinessBasicData> {
51 private static final long serialVersionUID = 486_895_878_178_761L;
57 @Column (name = "company_basic_id", length = 20, nullable = false, updatable = false)
58 @GeneratedValue (strategy = GenerationType.IDENTITY)
59 private Long companyBasicId;
65 @Column (name = "company_comments")
66 private String companyComments;
69 * Company's main email address (example: info@company.com)
71 @Column (name = "company_email_address", length = 100)
72 private String companyEmailAddress;
75 * Company's main fax numbers: +ccxxxxxxxxxx
77 @JoinColumn (name = "company_fax_number_id")
78 @OneToOne (targetEntity = FaxNumber.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
79 private DialableFaxNumber companyFaxNumber;
82 * Legal status of company (example: "Inc.", "GmbH")
84 @Basic (optional = false)
85 @Column (name = "company_legal_status", length = 20, nullable = false)
86 private String companyLegalStatus;
89 * Id number of company logo
91 @JoinColumn (name = "company_logo_id")
92 @OneToOne (targetEntity = CompanyLogo.class, cascade = CascadeType.ALL)
93 private BusinessLogo companyLogo;
98 @Basic (optional = false)
99 @Column (name = "company_name", length = 100, nullable = false)
100 private String companyName;
103 * Company's main phone number: +ccxxxxxxxxxx
105 @JoinColumn (name = "company_phone_number")
106 @OneToOne (targetEntity = LandLineNumber.class, cascade = CascadeType.ALL, fetch = FetchType.EAGER)
107 private DialableLandLineNumber companyPhoneNumber;
112 @Column (name = "company_tax_number", length = 30)
113 private String companyTaxNumber;
116 * URL for company website
118 @Column (name = "company_website_url")
119 private String companyWebsiteUrl;
122 public int compareTo (final BusinessBasicData businessData) {
123 throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
127 public boolean equals (final Object object) {
128 if (object == null) {
130 } else if (getClass() != object.getClass()) {
134 final BusinessBasicData other = (BusinessBasicData) object;
136 if (!Objects.equals(this.getCompanyLegalStatus(), other.getCompanyLegalStatus())) {
138 } else if (!Objects.equals(this.getCompanyName(), other.getCompanyName())) {
140 } else if (!Objects.equals(this.getCompanyTaxNumber(), other.getCompanyTaxNumber())) {
148 public Long getCompanyBasicId () {
149 return this.companyBasicId;
153 public void setCompanyBasicId (final Long companyBasicId) {
154 this.companyBasicId = companyBasicId;
158 public String getCompanyComments () {
159 return this.companyComments;
163 public void setCompanyComments (final String companyComments) {
164 this.companyComments = companyComments;
168 public String getCompanyEmailAddress () {
169 return this.companyEmailAddress;
173 public void setCompanyEmailAddress (final String companyEmailAddress) {
174 this.companyEmailAddress = companyEmailAddress;
178 public DialableFaxNumber getCompanyFaxNumber () {
179 return this.companyFaxNumber;
183 public void setCompanyFaxNumber (final DialableFaxNumber companyFaxNumber) {
184 this.companyFaxNumber = companyFaxNumber;
188 public String getCompanyLegalStatus () {
189 return this.companyLegalStatus;
193 public void setCompanyLegalStatus (final String companyLegalStatus) {
194 this.companyLegalStatus = companyLegalStatus;
198 public BusinessLogo getCompanyLogo () {
199 return this.companyLogo;
203 public void setCompanyLogo (final BusinessLogo companyLogoId) {
204 this.companyLogo = companyLogoId;
208 public String getCompanyName () {
209 return this.companyName;
213 public void setCompanyName (final String companyName) {
214 this.companyName = companyName;
218 public DialableLandLineNumber getCompanyPhoneNumber () {
219 return this.companyPhoneNumber;
223 public void setCompanyPhoneNumber (final DialableLandLineNumber companyPhoneNumber) {
224 this.companyPhoneNumber = companyPhoneNumber;
228 public String getCompanyTaxNumber () {
229 return this.companyTaxNumber;
233 public void setCompanyTaxNumber (final String companyTaxNumber) {
234 this.companyTaxNumber = companyTaxNumber;
238 public String getCompanyWebsiteUrl () {
239 return this.companyWebsiteUrl;
243 public void setCompanyWebsiteUrl (final String companyWebsiteUrl) {
244 this.companyWebsiteUrl = companyWebsiteUrl;
248 public int hashCode () {
250 hash = 53 * hash + Objects.hashCode(this.getCompanyLegalStatus());
251 hash = 53 * hash + Objects.hashCode(this.getCompanyName());
252 hash = 53 * hash + Objects.hashCode(this.getCompanyTaxNumber());