+++ /dev/null
-/*
- * Copyright (C) 2016, 2017 Roland Häder
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.jcontactsbusiness;
-
-import java.io.Serializable;
-import java.util.Calendar;
-import java.util.List;
-import org.mxchange.jcontactsbusiness.branch.BranchOffice;
-import org.mxchange.jcontactsbusiness.employee.Employee;
-import org.mxchange.jcontactsbusiness.headquarters.HeadQuartersData;
-import org.mxchange.jcontactsbusiness.logo.BusinessLogo;
-import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
-import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
-import org.mxchange.jusercore.model.user.User;
-
-/**
- * A POJI for business contact classes
- * <p>
- * @author Roland Häder<roland@mxchange.org>
- */
-public interface BusinessBasicData extends Serializable {
-
- /**
- * Getter for branches list
- * <p>
- * @return Branches list
- */
- List<BranchOffice> getBrancheOffices ();
-
- /**
- * Setter for branches list
- * <p>
- * @param branches Branches list
- */
- void setBrancheOffices (final List<BranchOffice> branches);
-
- /**
- * Getter for company contact person
- * <p>
- * @return Company contact person
- */
- Employee getCompanyContactEmployee ();
-
- /**
- * Setter for company contact person
- * <p>
- * @param companyContact Company contact person
- */
- void setCompanyContactEmployee (final Employee companyContact);
-
- /**
- * Getter for business contact id
- * <p>
- * @return Business contact id
- */
- Long getBusinessDataId ();
-
- /**
- * Setter for business contact id
- * <p>
- * @param businessContactId Business contact id
- */
- void setBusinessDataId (final Long businessContactId);
-
- /**
- * Getter for company founder
- * <p>
- * @return Company founder
- */
- Employee getCompanyFounder ();
-
- /**
- * Setter for company founder
- * <p>
- * @param companyFounder Company founder
- */
- void setCompanyFounder (final Employee companyFounder);
-
- /**
- * Getter for headquarters data
- * <p>
- * @return Headquarters data
- */
- HeadQuartersData getHeadQuartersData ();
-
- /**
- * Setter for headquarters data
- * <p>
- * @param headQuartersData Headquarters data
- */
- void setHeadQuartersData (final HeadQuartersData headQuartersData);
-
- /**
- * Getter for user owner instance
- * <p>
- * @return User owner instance
- */
- User getContactCompanyUserOwner ();
-
- /**
- * Setter for user owner instance
- * <p>
- * @param contactUserOwner User owner instance
- */
- void setContactCompanyUserOwner (final User contactUserOwner);
-
- /**
- * Getter for timestamp when this entry has been created
- * <p>
- * @return Timestamp when this entry has been created
- */
- Calendar getContactCreated ();
-
- /**
- * Setter for timestamp when this entry has been created
- * <p>
- * @param contactCreated Timestamp when this entry has been created
- */
- void setContactCreated (final Calendar contactCreated);
-
- /**
- * Getter for comments
- * <p>
- * @return Comments
- */
- String getCompanyComments ();
-
- /**
- * Setter for comments
- * <p>
- * @param companyComments Comments
- */
- void setCompanyComments (final String companyComments);
-
- /**
- * Getter for email address
- * <p>
- * @return Email address
- */
- String getCompanyEmailAddress ();
-
- /**
- * Setter for email address
- * <p>
- * @param companyEmailAddress Email address
- */
- void setCompanyEmailAddress (final String companyEmailAddress);
-
- /**
- * Getter for list of fax number
- * <p>
- * @return Fax numbers
- */
- DialableFaxNumber getCompanyFaxNumber ();
-
- /**
- * Setter for list of fax number
- * <p>
- * @param companyFaxNumber Fax numbers
- */
- void setCompanyFaxNumber (final DialableFaxNumber companyFaxNumber);
-
- /**
- * Getter for legal status
- * <p>
- * @return Legal status
- */
- String getCompanyLegalStatus ();
-
- /**
- * Setter for legal status
- * <p>
- * @param companyLegalStatus Legal status
- */
- void setCompanyLegalStatus (final String companyLegalStatus);
-
- /**
- * Getter for company logo
- * <p>
- * @return Company logo
- */
- BusinessLogo getCompanyLogo ();
-
- /**
- * Setter for company logo
- * <p>
- * @param companyLogo Company logo
- */
- void setCompanyLogo (final BusinessLogo companyLogo);
-
- /**
- * Getter for company name
- * <p>
- * @return Company name
- */
- String getCompanyName ();
-
- /**
- * Setter for company name
- * <p>
- * @param companyName Company name
- */
- void setCompanyName (final String companyName);
-
- /**
- * Getter for list of phone number
- * <p>
- * @return Phone numbers
- */
- DialableLandLineNumber getCompanyPhoneNumber ();
-
- /**
- * Setter for list of phone number
- * <p>
- * @param companyPhoneNumber Phone numbers
- */
- void setCompanyPhoneNumber (final DialableLandLineNumber companyPhoneNumber);
-
- /**
- * Getter for tax number
- * <p>
- * @return Tax number
- */
- String getCompanyTaxNumber ();
-
- /**
- * Setter for tax number
- * <p>
- * @param companyTaxNumber Tax number
- */
- void setCompanyTaxNumber (final String companyTaxNumber);
-
- /**
- * Getter for website URL
- * <p>
- * @return Website URL
- */
- String getCompanyWebsiteUrl ();
-
- /**
- * Setter for website URL
- * <p>
- * @param companyWebsiteUrl Website URL
- */
- void setCompanyWebsiteUrl (final String companyWebsiteUrl);
-
- @Override
- boolean equals (final Object object);
-
- @Override
- int hashCode ();
-}
+++ /dev/null
-/*
- * Copyright (C) 2016, 2017 Roland Häder
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-package org.mxchange.jcontactsbusiness;
-
-import java.util.Calendar;
-import java.util.List;
-import java.util.Objects;
-import javax.persistence.Basic;
-import javax.persistence.CascadeType;
-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.Lob;
-import javax.persistence.NamedQueries;
-import javax.persistence.NamedQuery;
-import javax.persistence.OneToOne;
-import javax.persistence.Table;
-import javax.persistence.Temporal;
-import javax.persistence.TemporalType;
-import javax.persistence.Transient;
-import org.mxchange.jcontactsbusiness.branch.BranchOffice;
-import org.mxchange.jcontactsbusiness.employee.CompanyEmployee;
-import org.mxchange.jcontactsbusiness.employee.Employee;
-import org.mxchange.jcontactsbusiness.headquarters.CompanyHeadQuartersData;
-import org.mxchange.jcontactsbusiness.headquarters.HeadQuartersData;
-import org.mxchange.jcontactsbusiness.logo.BusinessLogo;
-import org.mxchange.jcontactsbusiness.logo.CompanyLogo;
-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;
-import org.mxchange.jusercore.model.user.LoginUser;
-import org.mxchange.jusercore.model.user.User;
-
-/**
- * A POJO for business basic data
- * <p>
- * @author Roland Häder<roland@mxchange.org>
- */
-@Entity (name = "company_basic_data")
-@Table (name = "company_basic_data")
-@NamedQueries (
- {
- @NamedQuery (name = "AllBusinessData", query = "SELECT b FROM company_basic_data AS b ORDER BY b.businessDataId"),
- @NamedQuery (name = "SearchBusinessDataById", query = "SELECT b FROM company_basic_data AS b WHERE b.businessDataId = :businessDataId")
- }
-)
-@SuppressWarnings ("PersistenceUnitPresent")
-public class CompanyBasicData implements BusinessBasicData {
-
- /**
- * Serial number
- */
- @Transient
- private static final long serialVersionUID = 470_375_172_748_691L;
-
- /**
- * Reference to company branch offices
- */
- @Transient
- private List<BranchOffice> brancheOffices;
-
- /**
- * Id number
- */
- @Id
- @Column (name = "business_data_id", nullable = false, updatable = false)
- @GeneratedValue (strategy = GenerationType.IDENTITY)
- private Long businessDataId;
-
- /**
- * Comments (any)
- */
- @Lob
- @Column (name = "company_comments")
- private String companyComments;
-
- /**
- * Reference to contact person
- */
- @JoinColumn (name = "company_contact_employee_id")
- @OneToOne (targetEntity = CompanyEmployee.class, cascade = CascadeType.ALL)
- private Employee companyContactEmployee;
-
- /**
- * Company's main email address (example: info@company.com)
- */
- @Column (name = "company_email_address", length = 100)
- private String companyEmailAddress;
-
- /**
- * Company's main fax numbers: +ccxxxxxxxxxx
- */
- @JoinColumn (name = "company_fax_number_id")
- @OneToOne (targetEntity = FaxNumber.class, cascade = CascadeType.ALL)
- private DialableFaxNumber companyFaxNumber;
-
- /**
- * Reference to CEO "employee"
- */
- @JoinColumn (name = "company_founder_id")
- @OneToOne (targetEntity = CompanyEmployee.class, cascade = CascadeType.ALL)
- private Employee companyFounder;
-
- /**
- * Legal status of company (example: "Inc.", "GmbH")
- */
- @Column (name = "company_legal_status")
- private String companyLegalStatus;
-
- /**
- * Id number of company logo
- */
- @JoinColumn (name = "company_logo_id")
- @OneToOne (targetEntity = CompanyLogo.class, cascade = CascadeType.ALL)
- private BusinessLogo companyLogo;
-
- /**
- * Company name
- */
- @Basic (optional = false)
- @Column (name = "company_name", length = 100, nullable = false)
- private String companyName;
-
- /**
- * Company's main phone number: +ccxxxxxxxxxx
- */
- @JoinColumn (name = "company_phone_number_id")
- @OneToOne (targetEntity = LandLineNumber.class, cascade = CascadeType.ALL)
- private DialableLandLineNumber companyPhoneNumber;
-
- /**
- * Tax number
- */
- @Column (name = "company_tax_number", length = 30)
- private String companyTaxNumber;
-
- /**
- * URL for company website
- */
- @Column (name = "company_website_url")
- private String companyWebsiteUrl;
-
- /**
- * User owner instance
- */
- @JoinColumn (name = "company_owner_user_id")
- @OneToOne (targetEntity = LoginUser.class, cascade = CascadeType.REFRESH)
- private User contactCompanyUserOwner;
-
- /**
- * Timestamp when this entry has been created
- */
- @Basic (optional = false)
- @Temporal (TemporalType.TIMESTAMP)
- @Column (name = "company_entry_created", nullable = false, updatable = false)
- private Calendar contactCreated;
-
- /**
- * Reference to headquarters data
- */
- @JoinColumn (name = "company_headquarters_data_id")
- @OneToOne (targetEntity = CompanyHeadQuartersData.class, cascade = CascadeType.ALL)
- private HeadQuartersData headQuartersData;
-
- @Override
- public boolean equals (final Object object) {
- if (null == object) {
- return false;
- } else if (this.getClass() != object.getClass()) {
- return false;
- }
-
- final BusinessBasicData other = (BusinessBasicData) object;
-
- if (!Objects.equals(this.getBusinessDataId(), other.getBusinessDataId())) {
- return false;
- } else if (!Objects.equals(this.getCompanyName(), other.getCompanyName())) {
- return false;
- } else if (!Objects.equals(this.getCompanyLegalStatus(), other.getCompanyLegalStatus())) {
- return false;
- } else if (!Objects.equals(this.getHeadQuartersData(), other.getHeadQuartersData())) {
- return false;
- } else if (!Objects.equals(this.getCompanyContactEmployee(), other.getCompanyContactEmployee())) {
- return false;
- } else if (!Objects.equals(this.getCompanyFounder(), other.getCompanyFounder())) {
- return false;
- }
-
- return true;
- }
-
- @Override
- @SuppressWarnings ("ReturnOfCollectionOrArrayField")
- public List<BranchOffice> getBrancheOffices () {
- return this.brancheOffices;
- }
-
- @Override
- @SuppressWarnings ("AssignmentToCollectionOrArrayFieldFromParameter")
- public void setBrancheOffices (final List<BranchOffice> brancheOffices) {
- this.brancheOffices = brancheOffices;
- }
-
- @Override
- public Long getBusinessDataId () {
- return this.businessDataId;
- }
-
- @Override
- public void setBusinessDataId (final Long businessDataId) {
- this.businessDataId = businessDataId;
- }
-
- @Override
- public String getCompanyComments () {
- return this.companyComments;
- }
-
- @Override
- public void setCompanyComments (final String companyComments) {
- this.companyComments = companyComments;
- }
-
- @Override
- public Employee getCompanyContactEmployee () {
- return this.companyContactEmployee;
- }
-
- @Override
- public void setCompanyContactEmployee (final Employee companyContactEmployee) {
- this.companyContactEmployee = companyContactEmployee;
- }
-
- @Override
- public String getCompanyEmailAddress () {
- return this.companyEmailAddress;
- }
-
- @Override
- public void setCompanyEmailAddress (final String companyEmailAddress) {
- this.companyEmailAddress = companyEmailAddress;
- }
-
- @Override
- public DialableFaxNumber getCompanyFaxNumber () {
- return this.companyFaxNumber;
- }
-
- @Override
- public void setCompanyFaxNumber (final DialableFaxNumber companyFaxNumber) {
- this.companyFaxNumber = companyFaxNumber;
- }
-
- @Override
- public Employee getCompanyFounder () {
- return this.companyFounder;
- }
-
- @Override
- public void setCompanyFounder (final Employee companyFounder) {
- this.companyFounder = companyFounder;
- }
-
- @Override
- public String getCompanyLegalStatus () {
- return this.companyLegalStatus;
- }
-
- @Override
- public void setCompanyLegalStatus (final String companyLegalStatus) {
- this.companyLegalStatus = companyLegalStatus;
- }
-
- @Override
- public BusinessLogo getCompanyLogo () {
- return this.companyLogo;
- }
-
- @Override
- public void setCompanyLogo (final BusinessLogo companyLogoId) {
- this.companyLogo = companyLogoId;
- }
-
- @Override
- public String getCompanyName () {
- return this.companyName;
- }
-
- @Override
- public void setCompanyName (final String companyName) {
- this.companyName = companyName;
- }
-
- @Override
- public DialableLandLineNumber getCompanyPhoneNumber () {
- return this.companyPhoneNumber;
- }
-
- @Override
- public void setCompanyPhoneNumber (final DialableLandLineNumber companyPhoneNumber) {
- this.companyPhoneNumber = companyPhoneNumber;
- }
-
- @Override
- public String getCompanyTaxNumber () {
- return this.companyTaxNumber;
- }
-
- @Override
- public void setCompanyTaxNumber (final String companyTaxNumber) {
- this.companyTaxNumber = companyTaxNumber;
- }
-
- @Override
- public String getCompanyWebsiteUrl () {
- return this.companyWebsiteUrl;
- }
-
- @Override
- public void setCompanyWebsiteUrl (final String companyWebsiteUrl) {
- this.companyWebsiteUrl = companyWebsiteUrl;
- }
-
- @Override
- public User getContactCompanyUserOwner () {
- return this.contactCompanyUserOwner;
- }
-
- @Override
- public void setContactCompanyUserOwner (final User contactCompanyUserOwner) {
- this.contactCompanyUserOwner = contactCompanyUserOwner;
- }
-
- @Override
- @SuppressWarnings ("ReturnOfDateField")
- public Calendar getContactCreated () {
- return this.contactCreated;
- }
-
- @Override
- @SuppressWarnings ("AssignmentToDateFieldFromParameter")
- public void setContactCreated (final Calendar contactCreated) {
- this.contactCreated = contactCreated;
- }
-
- @Override
- public HeadQuartersData getHeadQuartersData () {
- return this.headQuartersData;
- }
-
- @Override
- public void setHeadQuartersData (final HeadQuartersData headQuartersData) {
- this.headQuartersData = headQuartersData;
- }
-
- @Override
- public int hashCode () {
- int hash = 3;
-
- hash = 37 * hash + Objects.hashCode(this.getBusinessDataId());
- hash = 37 * hash + Objects.hashCode(this.getCompanyName());
- hash = 37 * hash + Objects.hashCode(this.getCompanyLegalStatus());
- hash = 37 * hash + Objects.hashCode(this.getHeadQuartersData());
- hash = 37 * hash + Objects.hashCode(this.getCompanyContactEmployee());
- hash = 37 * hash + Objects.hashCode(this.getCompanyFounder());
-
- return hash;
- }
-
-}
--- /dev/null
+/*
+ * Copyright (C) 2016, 2017 Roland Häder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jcontactsbusiness.basicdata;
+
+import java.io.Serializable;
+import java.util.Calendar;
+import java.util.List;
+import org.mxchange.jcontactsbusiness.branch.BranchOffice;
+import org.mxchange.jcontactsbusiness.employee.Employee;
+import org.mxchange.jcontactsbusiness.headquarters.HeadQuartersData;
+import org.mxchange.jcontactsbusiness.logo.BusinessLogo;
+import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
+import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * A POJI for business contact classes
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+public interface BusinessBasicData extends Serializable {
+
+ /**
+ * Getter for branches list
+ * <p>
+ * @return Branches list
+ */
+ List<BranchOffice> getBrancheOffices ();
+
+ /**
+ * Setter for branches list
+ * <p>
+ * @param branches Branches list
+ */
+ void setBrancheOffices (final List<BranchOffice> branches);
+
+ /**
+ * Getter for company contact person
+ * <p>
+ * @return Company contact person
+ */
+ Employee getCompanyContactEmployee ();
+
+ /**
+ * Setter for company contact person
+ * <p>
+ * @param companyContact Company contact person
+ */
+ void setCompanyContactEmployee (final Employee companyContact);
+
+ /**
+ * Getter for business contact id
+ * <p>
+ * @return Business contact id
+ */
+ Long getBusinessDataId ();
+
+ /**
+ * Setter for business contact id
+ * <p>
+ * @param businessContactId Business contact id
+ */
+ void setBusinessDataId (final Long businessContactId);
+
+ /**
+ * Getter for company founder
+ * <p>
+ * @return Company founder
+ */
+ Employee getCompanyFounder ();
+
+ /**
+ * Setter for company founder
+ * <p>
+ * @param companyFounder Company founder
+ */
+ void setCompanyFounder (final Employee companyFounder);
+
+ /**
+ * Getter for headquarters data
+ * <p>
+ * @return Headquarters data
+ */
+ HeadQuartersData getHeadQuartersData ();
+
+ /**
+ * Setter for headquarters data
+ * <p>
+ * @param headQuartersData Headquarters data
+ */
+ void setHeadQuartersData (final HeadQuartersData headQuartersData);
+
+ /**
+ * Getter for user owner instance
+ * <p>
+ * @return User owner instance
+ */
+ User getContactCompanyUserOwner ();
+
+ /**
+ * Setter for user owner instance
+ * <p>
+ * @param contactUserOwner User owner instance
+ */
+ void setContactCompanyUserOwner (final User contactUserOwner);
+
+ /**
+ * Getter for timestamp when this entry has been created
+ * <p>
+ * @return Timestamp when this entry has been created
+ */
+ Calendar getContactCreated ();
+
+ /**
+ * Setter for timestamp when this entry has been created
+ * <p>
+ * @param contactCreated Timestamp when this entry has been created
+ */
+ void setContactCreated (final Calendar contactCreated);
+
+ /**
+ * Getter for comments
+ * <p>
+ * @return Comments
+ */
+ String getCompanyComments ();
+
+ /**
+ * Setter for comments
+ * <p>
+ * @param companyComments Comments
+ */
+ void setCompanyComments (final String companyComments);
+
+ /**
+ * Getter for email address
+ * <p>
+ * @return Email address
+ */
+ String getCompanyEmailAddress ();
+
+ /**
+ * Setter for email address
+ * <p>
+ * @param companyEmailAddress Email address
+ */
+ void setCompanyEmailAddress (final String companyEmailAddress);
+
+ /**
+ * Getter for list of fax number
+ * <p>
+ * @return Fax numbers
+ */
+ DialableFaxNumber getCompanyFaxNumber ();
+
+ /**
+ * Setter for list of fax number
+ * <p>
+ * @param companyFaxNumber Fax numbers
+ */
+ void setCompanyFaxNumber (final DialableFaxNumber companyFaxNumber);
+
+ /**
+ * Getter for company logo
+ * <p>
+ * @return Company logo
+ */
+ BusinessLogo getCompanyLogo ();
+
+ /**
+ * Setter for company logo
+ * <p>
+ * @param companyLogo Company logo
+ */
+ void setCompanyLogo (final BusinessLogo companyLogo);
+
+ /**
+ * Getter for company name
+ * <p>
+ * @return Company name
+ */
+ String getCompanyName ();
+
+ /**
+ * Setter for company name
+ * <p>
+ * @param companyName Company name
+ */
+ void setCompanyName (final String companyName);
+
+ /**
+ * Getter for list of phone number
+ * <p>
+ * @return Phone numbers
+ */
+ DialableLandLineNumber getCompanyPhoneNumber ();
+
+ /**
+ * Setter for list of phone number
+ * <p>
+ * @param companyPhoneNumber Phone numbers
+ */
+ void setCompanyPhoneNumber (final DialableLandLineNumber companyPhoneNumber);
+
+ /**
+ * Getter for tax number
+ * <p>
+ * @return Tax number
+ */
+ String getCompanyTaxNumber ();
+
+ /**
+ * Setter for tax number
+ * <p>
+ * @param companyTaxNumber Tax number
+ */
+ void setCompanyTaxNumber (final String companyTaxNumber);
+
+ /**
+ * Getter for website URL
+ * <p>
+ * @return Website URL
+ */
+ String getCompanyWebsiteUrl ();
+
+ /**
+ * Setter for website URL
+ * <p>
+ * @param companyWebsiteUrl Website URL
+ */
+ void setCompanyWebsiteUrl (final String companyWebsiteUrl);
+
+ @Override
+ boolean equals (final Object object);
+
+ @Override
+ int hashCode ();
+}
--- /dev/null
+/*
+ * Copyright (C) 2016, 2017 Roland Häder
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package org.mxchange.jcontactsbusiness.basicdata;
+
+import java.util.Calendar;
+import java.util.List;
+import java.util.Objects;
+import javax.persistence.Basic;
+import javax.persistence.CascadeType;
+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.Lob;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
+import javax.persistence.OneToOne;
+import javax.persistence.Table;
+import javax.persistence.Temporal;
+import javax.persistence.TemporalType;
+import javax.persistence.Transient;
+import org.mxchange.jcontactsbusiness.branch.BranchOffice;
+import org.mxchange.jcontactsbusiness.employee.CompanyEmployee;
+import org.mxchange.jcontactsbusiness.employee.Employee;
+import org.mxchange.jcontactsbusiness.headquarters.CompanyHeadQuartersData;
+import org.mxchange.jcontactsbusiness.headquarters.HeadQuartersData;
+import org.mxchange.jcontactsbusiness.logo.BusinessLogo;
+import org.mxchange.jcontactsbusiness.logo.CompanyLogo;
+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;
+import org.mxchange.jusercore.model.user.LoginUser;
+import org.mxchange.jusercore.model.user.User;
+
+/**
+ * A POJO for business basic data
+ * <p>
+ * @author Roland Häder<roland@mxchange.org>
+ */
+@Entity (name = "company_basic_data")
+@Table (name = "company_basic_data")
+@NamedQueries (
+ {
+ @NamedQuery (name = "AllBusinessData", query = "SELECT b FROM company_basic_data AS b ORDER BY b.businessDataId"),
+ @NamedQuery (name = "SearchBusinessDataById", query = "SELECT b FROM company_basic_data AS b WHERE b.businessDataId = :businessDataId")
+ }
+)
+@SuppressWarnings ("PersistenceUnitPresent")
+public class CompanyBasicData implements BusinessBasicData {
+
+ /**
+ * Serial number
+ */
+ @Transient
+ private static final long serialVersionUID = 470_375_172_748_691L;
+
+ /**
+ * Reference to company branch offices
+ */
+ @Transient
+ private List<BranchOffice> brancheOffices;
+
+ /**
+ * Id number
+ */
+ @Id
+ @Column (name = "business_data_id", nullable = false, updatable = false)
+ @GeneratedValue (strategy = GenerationType.IDENTITY)
+ private Long businessDataId;
+
+ /**
+ * Comments (any)
+ */
+ @Lob
+ @Column (name = "company_comments")
+ private String companyComments;
+
+ /**
+ * Reference to contact person
+ */
+ @JoinColumn (name = "company_contact_employee_id")
+ @OneToOne (targetEntity = CompanyEmployee.class, cascade = CascadeType.ALL)
+ private Employee companyContactEmployee;
+
+ /**
+ * Company's main email address (example: info@company.com)
+ */
+ @Column (name = "company_email_address", length = 100)
+ private String companyEmailAddress;
+
+ /**
+ * Company's main fax numbers: +ccxxxxxxxxxx
+ */
+ @JoinColumn (name = "company_fax_number_id")
+ @OneToOne (targetEntity = FaxNumber.class, cascade = CascadeType.ALL)
+ private DialableFaxNumber companyFaxNumber;
+
+ /**
+ * Reference to CEO "employee"
+ */
+ @JoinColumn (name = "company_founder_id")
+ @OneToOne (targetEntity = CompanyEmployee.class, cascade = CascadeType.ALL)
+ private Employee companyFounder;
+
+ /**
+ * Id number of company logo
+ */
+ @JoinColumn (name = "company_logo_id")
+ @OneToOne (targetEntity = CompanyLogo.class, cascade = CascadeType.ALL)
+ private BusinessLogo companyLogo;
+
+ /**
+ * Company name
+ */
+ @Basic (optional = false)
+ @Column (name = "company_name", length = 100, nullable = false)
+ private String companyName;
+
+ /**
+ * Company's main phone number: +ccxxxxxxxxxx
+ */
+ @JoinColumn (name = "company_phone_number_id")
+ @OneToOne (targetEntity = LandLineNumber.class, cascade = CascadeType.ALL)
+ private DialableLandLineNumber companyPhoneNumber;
+
+ /**
+ * Tax number
+ */
+ @Column (name = "company_tax_number", length = 30)
+ private String companyTaxNumber;
+
+ /**
+ * URL for company website
+ */
+ @Column (name = "company_website_url")
+ private String companyWebsiteUrl;
+
+ /**
+ * User owner instance
+ */
+ @JoinColumn (name = "company_owner_user_id")
+ @OneToOne (targetEntity = LoginUser.class, cascade = CascadeType.REFRESH)
+ private User contactCompanyUserOwner;
+
+ /**
+ * Timestamp when this entry has been created
+ */
+ @Basic (optional = false)
+ @Temporal (TemporalType.TIMESTAMP)
+ @Column (name = "company_entry_created", nullable = false, updatable = false)
+ private Calendar contactCreated;
+
+ /**
+ * Reference to headquarters data
+ */
+ @JoinColumn (name = "company_headquarters_data_id")
+ @OneToOne (targetEntity = CompanyHeadQuartersData.class, cascade = CascadeType.ALL)
+ private HeadQuartersData headQuartersData;
+
+ @Override
+ public boolean equals (final Object object) {
+ if (null == object) {
+ return false;
+ } else if (this.getClass() != object.getClass()) {
+ return false;
+ }
+
+ final BusinessBasicData other = (BusinessBasicData) object;
+
+ if (!Objects.equals(this.getBusinessDataId(), other.getBusinessDataId())) {
+ return false;
+ } else if (!Objects.equals(this.getCompanyName(), other.getCompanyName())) {
+ return false;
+ } else if (!Objects.equals(this.getHeadQuartersData(), other.getHeadQuartersData())) {
+ return false;
+ } else if (!Objects.equals(this.getCompanyContactEmployee(), other.getCompanyContactEmployee())) {
+ return false;
+ } else if (!Objects.equals(this.getCompanyFounder(), other.getCompanyFounder())) {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ @SuppressWarnings ("ReturnOfCollectionOrArrayField")
+ public List<BranchOffice> getBrancheOffices () {
+ return this.brancheOffices;
+ }
+
+ @Override
+ @SuppressWarnings ("AssignmentToCollectionOrArrayFieldFromParameter")
+ public void setBrancheOffices (final List<BranchOffice> brancheOffices) {
+ this.brancheOffices = brancheOffices;
+ }
+
+ @Override
+ public Long getBusinessDataId () {
+ return this.businessDataId;
+ }
+
+ @Override
+ public void setBusinessDataId (final Long businessDataId) {
+ this.businessDataId = businessDataId;
+ }
+
+ @Override
+ public String getCompanyComments () {
+ return this.companyComments;
+ }
+
+ @Override
+ public void setCompanyComments (final String companyComments) {
+ this.companyComments = companyComments;
+ }
+
+ @Override
+ public Employee getCompanyContactEmployee () {
+ return this.companyContactEmployee;
+ }
+
+ @Override
+ public void setCompanyContactEmployee (final Employee companyContactEmployee) {
+ this.companyContactEmployee = companyContactEmployee;
+ }
+
+ @Override
+ public String getCompanyEmailAddress () {
+ return this.companyEmailAddress;
+ }
+
+ @Override
+ public void setCompanyEmailAddress (final String companyEmailAddress) {
+ this.companyEmailAddress = companyEmailAddress;
+ }
+
+ @Override
+ public DialableFaxNumber getCompanyFaxNumber () {
+ return this.companyFaxNumber;
+ }
+
+ @Override
+ public void setCompanyFaxNumber (final DialableFaxNumber companyFaxNumber) {
+ this.companyFaxNumber = companyFaxNumber;
+ }
+
+ @Override
+ public Employee getCompanyFounder () {
+ return this.companyFounder;
+ }
+
+ @Override
+ public void setCompanyFounder (final Employee companyFounder) {
+ this.companyFounder = companyFounder;
+ }
+
+ @Override
+ public BusinessLogo getCompanyLogo () {
+ return this.companyLogo;
+ }
+
+ @Override
+ public void setCompanyLogo (final BusinessLogo companyLogoId) {
+ this.companyLogo = companyLogoId;
+ }
+
+ @Override
+ public String getCompanyName () {
+ return this.companyName;
+ }
+
+ @Override
+ public void setCompanyName (final String companyName) {
+ this.companyName = companyName;
+ }
+
+ @Override
+ public DialableLandLineNumber getCompanyPhoneNumber () {
+ return this.companyPhoneNumber;
+ }
+
+ @Override
+ public void setCompanyPhoneNumber (final DialableLandLineNumber companyPhoneNumber) {
+ this.companyPhoneNumber = companyPhoneNumber;
+ }
+
+ @Override
+ public String getCompanyTaxNumber () {
+ return this.companyTaxNumber;
+ }
+
+ @Override
+ public void setCompanyTaxNumber (final String companyTaxNumber) {
+ this.companyTaxNumber = companyTaxNumber;
+ }
+
+ @Override
+ public String getCompanyWebsiteUrl () {
+ return this.companyWebsiteUrl;
+ }
+
+ @Override
+ public void setCompanyWebsiteUrl (final String companyWebsiteUrl) {
+ this.companyWebsiteUrl = companyWebsiteUrl;
+ }
+
+ @Override
+ public User getContactCompanyUserOwner () {
+ return this.contactCompanyUserOwner;
+ }
+
+ @Override
+ public void setContactCompanyUserOwner (final User contactCompanyUserOwner) {
+ this.contactCompanyUserOwner = contactCompanyUserOwner;
+ }
+
+ @Override
+ @SuppressWarnings ("ReturnOfDateField")
+ public Calendar getContactCreated () {
+ return this.contactCreated;
+ }
+
+ @Override
+ @SuppressWarnings ("AssignmentToDateFieldFromParameter")
+ public void setContactCreated (final Calendar contactCreated) {
+ this.contactCreated = contactCreated;
+ }
+
+ @Override
+ public HeadQuartersData getHeadQuartersData () {
+ return this.headQuartersData;
+ }
+
+ @Override
+ public void setHeadQuartersData (final HeadQuartersData headQuartersData) {
+ this.headQuartersData = headQuartersData;
+ }
+
+ @Override
+ public int hashCode () {
+ int hash = 3;
+
+ hash = 37 * hash + Objects.hashCode(this.getBusinessDataId());
+ hash = 37 * hash + Objects.hashCode(this.getCompanyName());
+ hash = 37 * hash + Objects.hashCode(this.getHeadQuartersData());
+ hash = 37 * hash + Objects.hashCode(this.getCompanyContactEmployee());
+ hash = 37 * hash + Objects.hashCode(this.getCompanyFounder());
+
+ return hash;
+ }
+
+}
import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
import org.mxchange.jphone.phonenumbers.landline.DialableLandLineNumber;
import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jcontactsbusiness.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData;
/**
* A POJI for branch offices
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
-import org.mxchange.jcontactsbusiness.BusinessBasicData;
-import org.mxchange.jcontactsbusiness.CompanyBasicData;
+import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.basicdata.CompanyBasicData;
import org.mxchange.jcountry.data.Country;
import org.mxchange.jcountry.data.CountryData;
import org.mxchange.jphone.phonenumbers.fax.DialableFaxNumber;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Transient;
-import org.mxchange.jcontactsbusiness.CompanyBasicData;
+import org.mxchange.jcontactsbusiness.basicdata.CompanyBasicData;
import org.mxchange.jcontactsbusiness.branch.BranchOffice;
import org.mxchange.jcontactsbusiness.branch.CompanyBranchOffice;
import org.mxchange.jcontactsbusiness.employee.CompanyEmployee;
import org.mxchange.jcontactsbusiness.headquarters.HeadQuartersData;
import org.mxchange.jusercore.model.user.LoginUser;
import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jcontactsbusiness.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData;
/**
* A POJO for company departments
import org.mxchange.jcontactsbusiness.employee.Employee;
import org.mxchange.jcontactsbusiness.headquarters.HeadQuartersData;
import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jcontactsbusiness.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData;
/**
* A POJI for company departments
import javax.persistence.Transient;
import org.mxchange.jcontacts.contact.Contact;
import org.mxchange.jcontacts.contact.UserContact;
-import org.mxchange.jcontactsbusiness.CompanyBasicData;
+import org.mxchange.jcontactsbusiness.basicdata.CompanyBasicData;
import org.mxchange.jcontactsbusiness.branch.BranchOffice;
import org.mxchange.jcontactsbusiness.branch.CompanyBranchOffice;
import org.mxchange.jcontactsbusiness.department.CompanyDepartment;
import org.mxchange.jphone.phonenumbers.mobile.MobileNumber;
import org.mxchange.jusercore.model.user.LoginUser;
import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jcontactsbusiness.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData;
/**
* A POJO for company employees (including CEO)
import org.mxchange.jcontactsbusiness.jobposition.JobPosition;
import org.mxchange.jphone.phonenumbers.mobile.DialableMobileNumber;
import org.mxchange.jusercore.model.user.User;
-import org.mxchange.jcontactsbusiness.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData;
/**
* A POJI for employees
package org.mxchange.jcontactsbusiness.exceptions;
import java.text.MessageFormat;
-import org.mxchange.jcontactsbusiness.BusinessBasicData;
+import org.mxchange.jcontactsbusiness.basicdata.BusinessBasicData;
/**
* Thrown if the given BusinessBasicData instance is already added