Class DoubleScalarRelWithAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends DoubleScalarAbs<AU,A,RU,R>,RU extends Unit<RU>,R extends DoubleScalarRelWithAbs<AU,A,RU,R>>

Type Parameters:
AU - the absolute unit
A - the Absolute class for reference purposes
RU - the relative unit
R - the Relative class for reference purposes
All Implemented Interfaces:
Serializable, Cloneable, Comparable<R>, Relative<RU,R>, RelWithAbs<AU,A,RU,R>, Value<RU,R>
Direct Known Subclasses:
Angle, Duration, Length, Temperature

public abstract class DoubleScalarRelWithAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends DoubleScalarAbs<AU,A,RU,R>,RU extends Unit<RU>,R extends DoubleScalarRelWithAbs<AU,A,RU,R>> extends DoubleScalarRel<RU,R> implements RelWithAbs<AU,A,RU,R>
The typed, abstract DoubleScalarRelWithAbs class that forms the basis of the relative DoubleScalars suck as Duration that have an absolute equivalent such as Time.

Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See DJUNITS License.

Author:
Alexander Verbraeck, Peter Knoppers
See Also:
  • Constructor Details

    • DoubleScalarRelWithAbs

      public DoubleScalarRelWithAbs(double value, RU unit)
      Construct a new Relative Immutable DoubleScalar.
      Parameters:
      value - double; the value of the new Relative Immutable DoubleScalar
      unit - RU; the unit of the new Relative Immutable DoubleScalar
    • DoubleScalarRelWithAbs

      public DoubleScalarRelWithAbs(R value)
      Construct a new Relative Immutable DoubleScalar from an existing Relative Immutable DoubleScalar.
      Parameters:
      value - R, a relative typed DoubleScalar; the reference
  • Method Details

    • instantiateAbs

      public abstract A instantiateAbs(double value, AU unit)
      Construct a new Absolute Immutable DoubleScalar of the right type. Each extending class must implement this method.
      Parameters:
      value - double; the double value
      unit - AU; the absolute unit
      Returns:
      A a new absolute instance of the DoubleScalar of the right type
    • plus

      public A plus(A increment)
      Add an Absolute value to this relative value. A new value is returned due to immutability. The unit of the result is the unit of the absolute operand.
      Specified by:
      plus in interface RelWithAbs<AU extends AbsoluteLinearUnit<AU,RU>,A extends DoubleScalarAbs<AU,A,RU,R>,RU extends Unit<RU>,R extends DoubleScalarRelWithAbs<AU,A,RU,R>>
      Parameters:
      increment - A; A the right operand
      Returns:
      A; the sum of this value and the operand