VolumeUnitOfMeasure.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;

/**
 * Volume Unit of Measure.
 */
@Entity
@Table(name = "volumeunitofmeasure")
@Access(AccessType.FIELD)
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "VolumeUnitOfMeasure")
public class VolumeUnitOfMeasure extends IntegratedStaticDataEntityBase implements UnitOfMeasure {

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

    public VolumeUnitOfMeasure() {
    }

    public VolumeUnitOfMeasure(String code, BigDecimal ratioTom3) {
        super(code);
        this.ratioTom3 = ratioTom3;
    }

    public BigDecimal getRatioTom3() {
        return ratioTom3;
    }

    public void setRatioTom3(BigDecimal ratioTom3) {
        this.ratioTom3 = ratioTom3;
    }

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

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

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

}