X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2Forg%2Fmxchange%2Fjcontactsbusiness%2Fmodel%2Fjobposition%2FEmployeePosition.java;h=be455e3e5dbfe72b165e8b5b91afbbfa55c9a9a0;hb=4baade5df65346398c881cd06795548d2d9c2ff5;hp=7c6e933d396f7282ff674541770c0f16dad952b5;hpb=81b71869a43b860747214ea480fd30b562da62a3;p=jcontacts-business-core.git diff --git a/src/org/mxchange/jcontactsbusiness/model/jobposition/EmployeePosition.java b/src/org/mxchange/jcontactsbusiness/model/jobposition/EmployeePosition.java index 7c6e933..be455e3 100644 --- a/src/org/mxchange/jcontactsbusiness/model/jobposition/EmployeePosition.java +++ b/src/org/mxchange/jcontactsbusiness/model/jobposition/EmployeePosition.java @@ -19,16 +19,24 @@ package org.mxchange.jcontactsbusiness.model.jobposition; import java.util.Date; import java.util.Objects; import javax.persistence.Basic; +import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; +import javax.persistence.EnumType; +import javax.persistence.Enumerated; 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 javax.persistence.Temporal; import javax.persistence.TemporalType; import javax.persistence.Transient; +import org.mxchange.jcontactsbusiness.model.jobposition.status.JobPositionStatus; import org.mxchange.jcoreutils.Comparables; +import org.mxchange.jusercore.model.user.LoginUser; +import org.mxchange.jusercore.model.user.User; /** * A POJO for job positions @@ -40,7 +48,7 @@ import org.mxchange.jcoreutils.Comparables; name = "company_job_positions" ) @SuppressWarnings ("PersistenceUnitPresent") -public class EmployeePosition implements JobPosition { +public class EmployeePosition implements HireableJobPosition { /** * Serial number @@ -48,6 +56,13 @@ public class EmployeePosition implements JobPosition { @Transient private static final long serialVersionUID = 18_427_587_187_609L; + /** + * User who has added this job position + */ + @JoinColumn (name = "job_position_added_user_id", referencedColumnName = "user_id", updatable = false) + @OneToOne (targetEntity = LoginUser.class, cascade = CascadeType.REFRESH, optional = false) + private User jobPositionAddedUser; + /** * Timestamp when this entry has been created */ @@ -56,6 +71,27 @@ public class EmployeePosition implements JobPosition { @Column (name = "job_position_created", nullable = false, updatable = false) private Date jobPositionCreated; + /** + * When this job position (offer) was deleted + */ + @Column (name = "job_position_deleted") + @Temporal (TemporalType.TIMESTAMP) + private Date jobPositionDeleted; + + /** + * When this job position (offer) has expired + */ + @Column (name = "job_position_expired") + @Temporal (TemporalType.TIMESTAMP) + private Date jobPositionExpired; + + /** + * When a new employed was hired for this job position + */ + @Column (name = "job_position_hired") + @Temporal (TemporalType.TIMESTAMP) + private Date jobPositionHired; + /** * Id number */ @@ -71,6 +107,22 @@ public class EmployeePosition implements JobPosition { @Column (name = "job_position_name", nullable = false, unique = true) private String jobPositionName; + /** + * When this job position (offer) starts + */ + @Basic (optional = false) + @Column (name = "job_position_start", nullable = false) + @Temporal (TemporalType.DATE) + private Date jobPositionStart; + + /** + * Job position status + */ + @Basic (optional = false) + @Column (name = "job_position_status", nullable = false) + @Enumerated (EnumType.STRING) + private JobPositionStatus jobPositionStatus; + /** * Timestamp when this entry has been created */ @@ -79,7 +131,7 @@ public class EmployeePosition implements JobPosition { private Date jobPositionUpdated; @Override - public int compareTo (final JobPosition jobPosition) { + public int compareTo (final HireableJobPosition jobPosition) { // Check parameter on null-reference and equality to this if (null == jobPosition) { // Should not happen @@ -91,7 +143,9 @@ public class EmployeePosition implements JobPosition { // Init comparisons final int[] comparators = { - // First position name ... + // First added by which user ... + this.getJobPositionAddedUser().compareTo(jobPosition.getJobPositionAddedUser()), + // ... next name this.getJobPositionName().compareToIgnoreCase(jobPosition.getJobPositionName()) }; @@ -112,17 +166,29 @@ public class EmployeePosition implements JobPosition { return false; } - final JobPosition other = (JobPosition) object; + final HireableJobPosition other = (HireableJobPosition) object; if (!Objects.equals(this.getJobPositionId(), other.getJobPositionId())) { return false; } else if (!Objects.equals(this.getJobPositionName(), other.getJobPositionName())) { return false; + } else if (!Objects.equals(this.getJobPositionAddedUser(), other.getJobPositionAddedUser())) { + return false; } return true; } + @Override + public User getJobPositionAddedUser () { + return this.jobPositionAddedUser; + } + + @Override + public void setJobPositionAddedUser (final User jobPositionAddedUser) { + this.jobPositionAddedUser = jobPositionAddedUser; + } + @Override @SuppressWarnings ("ReturnOfDateField") public Date getJobPositionCreated () { @@ -167,12 +233,71 @@ public class EmployeePosition implements JobPosition { this.jobPositionUpdated = jobPositionUpdated; } + @Override + @SuppressWarnings ("ReturnOfDateField") + public Date getJobPositionDeleted () { + return this.jobPositionDeleted; + } + + @Override + @SuppressWarnings ("AssignmentToDateFieldFromParameter") + public void setJobPositionDeleted (final Date jobPositionDeleted) { + this.jobPositionDeleted = jobPositionDeleted; + } + + @Override + @SuppressWarnings ("ReturnOfDateField") + public Date getJobPositionExpired () { + return this.jobPositionExpired; + } + + @Override + @SuppressWarnings ("AssignmentToDateFieldFromParameter") + public void setJobPositionExpired (final Date jobPositionExpired) { + this.jobPositionExpired = jobPositionExpired; + } + + @Override + @SuppressWarnings ("ReturnOfDateField") + public Date getJobPositionHired () { + return this.jobPositionHired; + } + + @Override + @SuppressWarnings ("AssignmentToDateFieldFromParameter") + public void setJobPositionHired (final Date jobPositionHired) { + this.jobPositionHired = jobPositionHired; + } + + @Override + @SuppressWarnings ("ReturnOfDateField") + public Date getJobPositionStart () { + return this.jobPositionStart; + } + + @Override + @SuppressWarnings ("AssignmentToDateFieldFromParameter") + public void setJobPositionStart (final Date jobPositionStart) { + this.jobPositionStart = jobPositionStart; + } + + @Override + public JobPositionStatus getJobPositionStatus () { + return this.jobPositionStatus; + } + + @Override + public void setJobPositionStatus (final JobPositionStatus jobPositionStatus) { + this.jobPositionStatus = jobPositionStatus; + } + @Override public int hashCode () { int hash = 7; hash = 37 * hash + Objects.hashCode(this.getJobPositionId()); hash = 37 * hash + Objects.hashCode(this.getJobPositionName()); + hash = 37 * hash + Objects.hashCode(this.getJobPositionAddedUser()); return hash; }