WeightUnitOfMeasure.java

package com.tradecloud.domain.item;

import com.tradecloud.domain.base.utils.MeasurementUtils;
import com.tradecloud.domain.common.IntegratedStaticDataEntityBase;

import javax.persistence.Access;
import javax.persistence.AccessType;
import javax.persistence.Entity;
import javax.persistence.Table;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import java.math.BigDecimal;

/**
 * Weight Unit Of Measure.
 */
@Entity
@Table(name = "weightunitofmeasure")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "WeightUnitOfMeasure")
public class WeightUnitOfMeasure extends IntegratedStaticDataEntityBase implements UnitOfMeasure {

    private static final long serialVersionUID = 1L;
    private BigDecimal ratioToKg;

    public WeightUnitOfMeasure() {
    }

    public WeightUnitOfMeasure(String code) {
        super(code);
    }

    public WeightUnitOfMeasure(String code, BigDecimal ratioToKg) {
        super(code);
        this.ratioToKg = ratioToKg;
    }

    public BigDecimal getRatioToKg() {
        return ratioToKg;
    }

    public void setRatioToKg(BigDecimal ratioToKg) {
        this.ratioToKg = ratioToKg;
    }

    @Override
    public BigDecimal getRatio() {
        return getRatioToKg();
    }

    @Override
    public boolean convertToUnitType() {
        return UnitType.KG.name().equalsIgnoreCase(this.getCode());
    }

    @Override
    public BigDecimal convert(BigDecimal numberToConvert) {
        return MeasurementUtils.convertToKg(numberToConvert, this);
    }
}