Schedule1Part3EHelper.java
package com.tradecloud.dto.duties;
import com.tradecloud.domain.duties.DutySchedule;
import com.tradecloud.domain.duties.DutyUnit;
import com.tradecloud.domain.duties.Schedule1Part3E;
import com.tradecloud.tariffing.domain.BaseTariff;
import com.tradecloud.tariffing.domain.Environmental;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.regex.Pattern;
public class Schedule1Part3EHelper {
public static void populateSchedule1Part3E(DutySchedule dutySchedule, BaseTariff baseTariff) {
Schedule1Part3E schedule1Part3E = (Schedule1Part3E) dutySchedule;
setSchedule1Part3EDuties(schedule1Part3E, baseTariff);
}
private static void setSchedule1Part3EDuties(Schedule1Part3E schedule1Part3E, BaseTariff baseTariff) {
if (baseTariff instanceof Environmental) {
Environmental environmental = (Environmental) baseTariff;
String dutyDescription = environmental.getRateOfDuty().toLowerCase();
String randPerKgNet = "^r\\d+\\.\\d+/kg\\s+net$";
if (Pattern.matches(randPerKgNet, dutyDescription)) {
String randValue = dutyDescription.split("/")[0];
randValue = randValue.replace("r", "");
schedule1Part3E.getDutyRate().getOtherDuty1().setValue(
new BigDecimal(TariffGeneralHelper.stringToDouble(randValue)).setScale(5, RoundingMode.HALF_DOWN));
schedule1Part3E.getDutyRate().getOtherDuty1().setUnit(DutyUnit.MASS_KG);
}
schedule1Part3E.setCalculationMethod(TariffGeneralHelper.getCalculationMethod(dutyDescription));
}
}
}