package org.molgenis.data.mapper.algorithmgenerator.categorymapper.convertor;
import org.jscience.physics.amount.Amount;
import org.molgenis.data.mapper.algorithmgenerator.bean.AmountWrapper;
import org.molgenis.data.mapper.algorithmgenerator.categorymapper.CategoryMapperUtil;
import javax.measure.unit.NonSI;
import javax.measure.unit.Unit;
public abstract class AmountConvertor
{
public static final Unit<?> STANDARD_PER_WEEK_UNIT = NonSI.WEEK.inverse();
public abstract boolean matchCriteria(String description);
abstract AmountWrapper getInternalAmount(String description);
public AmountWrapper getAmount(String description)
{
AmountWrapper amountWrapper = getInternalAmount(description);
if (amountWrapper != null && CategoryMapperUtil.containNegativeAdjectives(description))
{
Amount<?> amount = amountWrapper.getAmount();
Amount<?> newAmount = Amount.rangeOf((double) 0, amount.getEstimatedValue(), amount.getUnit());
amountWrapper = AmountWrapper.create(newAmount, amountWrapper.isDetermined());
}
return amountWrapper;
}
}