+ @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;
+ }
+