JobPosting.java
package com.wilzwert.myjobs.core.domain.model.job.jsonld;
/**
* @author Wilhelm Zwertvaegher
*/
public record JobPosting (
String title,
String datePosted,
String description,
String experienceRequirements,
String qualifications,
String industry,
String employmentType,
String url,
String educationRequirements,
String validThrough,
JobLocation jobLocation,
HiringOrganization hiringOrganization,
BaseSalary baseSalary,
String salaryCurrency
) {
public String computeSalary() {
if(baseSalary == null) {
return "";
}
if(baseSalary.numberValue() != null) {
return baseSalary().numberValue()+(salaryCurrency() != null ? " "+salaryCurrency() : "");
}
if(baseSalary.value() == null) {
return "";
}
// minValue implies that we have a MonetaryAmount with a range
if(baseSalary.value().minValue() != null) {
return baseSalary.value().minValue()+" - "+baseSalary.value().maxValue()+ " " +baseSalary.currency()+" / "+baseSalary.value().unitText();
}
// a price range
if(baseSalary.value().minPrice() != null) {
return baseSalary.value().minPrice()+" - "+baseSalary.value().maxPrice()+ " " +baseSalary.value().priceCurrency();
}
return "";
}
}