]> git.mxchange.org Git - jjobs-core.git/blobdiff - src/org/mxchange/jjobs/model/jobskill/JobPositionSkill.java
Continued:
[jjobs-core.git] / src / org / mxchange / jjobs / model / jobskill / JobPositionSkill.java
index 410ae68680774c0d4a93c5d35056390f4376e066..adcc4a1e0bdc9eb8d280216f763ef16e99328ef1 100644 (file)
@@ -34,10 +34,15 @@ import javax.persistence.TemporalType;
 import javax.persistence.Transient;
 import org.mxchange.jcontactsbusiness.model.jobposition.EmployeePosition;
 import org.mxchange.jcontactsbusiness.model.jobposition.HireableJobPosition;
+import org.mxchange.jcontactsbusiness.model.utils.JobPositionUtils;
+import org.mxchange.jcoreutils.comparable.ComparableUtils;
+import org.mxchange.jcoreutils.number.SafeNumberUtils;
 import org.mxchange.jjobs.model.skill.JobSkill;
 import org.mxchange.jjobs.model.skill.Skillable;
+import org.mxchange.jjobs.model.utils.SkillUtils;
 import org.mxchange.jusercore.model.user.LoginUser;
 import org.mxchange.jusercore.model.user.User;
+import org.mxchange.jusercore.model.utils.UserUtils;
 
 /**
  * A POJO entity for job position skills (linking job position and skill
@@ -157,6 +162,38 @@ public class JobPositionSkill implements SkillableJobPosition {
                this.skillImportance = skillImportance;
        }
 
+       @Override
+       public int compareTo (final SkillableJobPosition skillableJobPosition) {
+               // Checkparameter and return 0 if equal
+               if (null == skillableJobPosition) {
+                       // Should not happen
+                       throw new NullPointerException("Parameter 'skillableJobPosition' is null"); //NOI18N
+               } else if (Objects.equals(this, skillableJobPosition)) {
+                       // Same object
+                       return 0;
+               }
+
+               // Init comparitors
+               final int comparitors[] = {
+                       // First compare job position
+                       JobPositionUtils.compare(this.getJobPosition(), skillableJobPosition.getJobPosition()),
+                       // ... next skill
+                       SkillUtils.compare(this.getJobSkill(), skillableJobPosition.getJobSkill()),
+                       // next job importance
+                       SafeNumberUtils.compare(this.getSkillImportance(), skillableJobPosition.getSkillImportance()),
+                       // ... next user
+                       UserUtils.compare(this.getSkillAddedUser(), skillableJobPosition.getSkillAddedUser()),
+                       // ... next primary key
+                       SafeNumberUtils.compare(this.getJobPositionSkillId(), skillableJobPosition.getJobPositionSkillId())
+               };
+
+               // Check all values
+               final int comparison = ComparableUtils.checkAll(comparitors);
+
+               // Return value
+               return comparison;
+       }
+
        @Override
        public boolean equals (final Object object) {
                if (this == object) {