Class VelocityUnit<D extends Unit>

Type Parameters:
D - the unit of the changing quantity, such as VoltageUnit or TemperatureUnit

public final class VelocityUnit<D extends Unit> extends PerUnit<D,TimeUnit>
Unit of velocity dimension that is a combination of a distance unit (numerator) and a time unit (denominator).

This is a generic velocity type for units that do not have discrete velocity units (eg DistanceUnit has LinearVelocityUnit, and so would not use this class).

  • Method Details

    • combine

      public static <D extends Unit> VelocityUnit<D> combine(D unit, TimeUnit period)
      Combines a dimension unit and a unit of the period of change to create a unit of velocity.
      Type Parameters:
      D - the unit of the changing dimension
      Parameters:
      unit - the unit of the changing dimension
      period - the unit of the period of change in the velocity
      Returns:
      the combined velocity unit
    • getBaseUnit

      Description copied from class: Unit
      Gets the base unit of measurement that this unit is derived from. If the unit is the base unit, the unit will be returned.

      NOTE: Subclasses must override this method to provide the correct return type. Failing to do say will make unit combinations that use it break at runtime!

      
         Unit baseUnit = new Unit(null, ...);
         baseUnit.getBaseUnit(); // returns baseUnit
      
         Unit derivedUnit = new Unit(baseUnit, ...);
         derivedUnit.getBaseUnit(); // returns baseUnit
       
      Overrides:
      getBaseUnit in class PerUnit<D extends Unit,TimeUnit>
      Returns:
      the base unit
    • getUnit

      public D getUnit()
      Gets the major unit being measured (eg Meters for Meters per Second).
      Returns:
      the major unit
    • getPeriod

      public TimeUnit getPeriod()
      Gets the period unit of the velocity, eg Seconds or Milliseconds.
      Returns:
      the period unit
    • of

      public Velocity<D> of(double magnitude)
      Description copied from class: PerUnit
      Creates a new immutable measurement of the given magnitude in terms of this unit. Implementations are strongly recommended to sharpen the return type to a unit-specific measurement implementation.

      Note: When called on an object of type PerUnit (and not a subclass!), this method will always return a Per instance. If you want to avoid casting, use PerUnit.ofNative(double) that returns a Per instance directly.

      Overrides:
      of in class PerUnit<D extends Unit,TimeUnit>
      Parameters:
      magnitude - the magnitude of the measure
      Returns:
      the ratio measure
    • ofBaseUnits

      public Velocity<D> ofBaseUnits(double baseUnitMagnitude)
      Description copied from class: PerUnit
      Creates a new immutable measurement of the given magnitude in terms of this unit's base unit. Implementations are strongly recommended to sharpen the return type to a unit-specific measurement implementation.

      Note: When called on an object of type PerUnit (and not a subclass!), this method will always return a Per instance. If you want to avoid casting, use PerUnit.ofNativeBaseUnits(double) that returns a Per instance directly.

      Overrides:
      ofBaseUnits in class PerUnit<D extends Unit,TimeUnit>
      Parameters:
      baseUnitMagnitude - the magnitude of the measure in terms of its base units.
      Returns:
      the ratio measure
    • zero

      public Measure<? extends VelocityUnit<D>> zero()
      Description copied from class: Unit
      Gets a measure of zero magnitude in terms of this unit. The returned object is guaranteed to be of the same type returned by Unit.of(double). Subclasses are encouraged to override this method to sharpen the return type.
      Overrides:
      zero in class PerUnit<D extends Unit,TimeUnit>
      Returns:
      a zero-magnitude measure of this unit
    • one

      public Measure<? extends VelocityUnit<D>> one()
      Description copied from class: Unit
      Gets a measure with a magnitude of 1.0 in terms of this unit. The returned object is guaranteed to be of the same type returned by Unit.of(double). Subclasses are encouraged to override this method to sharpen the return type.
      Overrides:
      one in class PerUnit<D extends Unit,TimeUnit>
      Returns:
      a measure of magnitude 1.0 in terms of this unit
    • mutable

      public MutableMeasure<VelocityUnit<D>,?,?> mutable(double initialMagnitude)
      Description copied from class: PerUnit
      Creates a new mutable measurement that is initialized to the given magnitude in terms of this unit. Implementations are strongly recommended to sharpen the return type to a unit-specific measurement implementation.

      Note: When called on an object of type PerUnit (and not a subclass!), this method will always return a MutPer instance.

      Overrides:
      mutable in class PerUnit<D extends Unit,TimeUnit>
      Parameters:
      initialMagnitude - the starting magnitude of the measure
      Returns:
      the ratio measure
    • per

      public AccelerationUnit<D> per(TimeUnit period)
      Combines this velocity unit with a unit of a period of change to create an acceleration unit.
      Overrides:
      per in class PerUnit<D extends Unit,TimeUnit>
      Parameters:
      period - the unit of the period of change
      Returns:
      the acceleration unit
    • per

      public <U extends Unit> PerUnit<VelocityUnit<D>,U> per(U other)
      Creates a ratio unit between this unit and an arbitrary other unit.
      Type Parameters:
      U - the type of the other unit
      Parameters:
      other - the other unit
      Returns:
      the ratio unit
    • convertFrom

      public double convertFrom(double magnitude, VelocityUnit<? extends D> otherUnit)
      Converts a measurement value in terms of another velocity unit to this unit.
      Parameters:
      magnitude - the magnitude of the measurement in terms of the other velocity unit
      otherUnit - the other velocity unit
      Returns:
      the value of the measurement in terms of this unit