/** * */ package org.goko.core.common.measure.quantity; import java.math.BigDecimal; import org.goko.core.common.exception.GkException; import org.goko.core.common.measure.units.Unit; /** * @author PsyKo * @date 2 f�vr. 2016 */ public class Speed extends AbstractQuantity<Speed> { public static final Speed ZERO = new Speed(BigDecimal.ZERO, SpeedUnit.METRE_PER_SECOND); /** * @param value * @param unit */ protected Speed(BigDecimal value, Unit<Speed> unit) { super(value, unit); } /** (inheritDoc) * @see org.goko.core.common.measure.quantity.AbstractQuantity#createQuantity(java.math.BigDecimal, org.goko.core.common.measure.units.Unit) */ @Override protected Speed createQuantity(BigDecimal value, Unit<Speed> unit) { return new Speed(value, unit); } public static Speed valueOf(BigDecimal value, Unit<Speed> unit) { return new Speed(value, unit); } public static Speed valueOf(String value, Unit<Speed> unit) { return new Speed(new BigDecimal(value), unit); } public static Speed valueOf(int value, Unit<Speed> unit) { return new Speed(new BigDecimal(value), unit); } public static Speed parse(String value) throws GkException { return Speed.ZERO.parse(value, SpeedUnit.getAll()); } public Length multiply(Time time){ return Length.valueOf(value(SpeedUnit.METRE_PER_SECOND).multiply(time.value(TimeUnit.SECOND)), LengthUnit.METRE); } }