Class ExtendedDataFloat<U extends org.djunits.unit.Unit<U>,T extends org.djunits.value.vfloat.scalar.base.FloatScalar<U,T>,O extends org.djunits.value.vfloat.vector.base.FloatVector<U,T,O>,G extends GtuData>

java.lang.Object
org.opentrafficsim.kpi.sampling.DataType<T,G>
org.opentrafficsim.kpi.sampling.data.ExtendedDataType<T,O,float[],G>
org.opentrafficsim.kpi.sampling.data.ExtendedDataFloat<U,T,O,G>
Type Parameters:
U - unit
T - type in vector
O - vector type
G - gtu data type
All Implemented Interfaces:
org.djutils.base.Identifiable
Direct Known Subclasses:
ExtendedDataDuration, ExtendedDataLength, ExtendedDataSpeed

public abstract class ExtendedDataFloat<U extends org.djunits.unit.Unit<U>,T extends org.djunits.value.vfloat.scalar.base.FloatScalar<U,T>,O extends org.djunits.value.vfloat.vector.base.FloatVector<U,T,O>,G extends GtuData> extends ExtendedDataType<T,O,float[],G>
Class to facilitate JUNITS types in extended data.

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

Author:
Alexander Verbraeck, Peter Knoppers, Wouter Schakel
  • Constructor Details

    • ExtendedDataFloat

      public ExtendedDataFloat(String id, String description, Class<T> type)
      Constructor setting the id.
      Parameters:
      id - String; id
      description - String; description
      type - Class<T>; type class
  • Method Details

    • setValue

      public final float[] setValue(float[] storage, int i, T value)
      Returns an updated list/array/vector of the storage type, including a new value at given index.
      Specified by:
      setValue in class ExtendedDataType<T extends org.djunits.value.vfloat.scalar.base.FloatScalar<U,T>,O extends org.djunits.value.vfloat.vector.base.FloatVector<U,T,O>,float[],G extends GtuData>
      Parameters:
      storage - S; storage
      i - int; index to store next value
      value - T; value to add
      Returns:
      updated list/array/vector of the storage type, including a new value at given index
    • initializeStorage

      public final float[] initializeStorage()
      Returns an initial storage object.
      Specified by:
      initializeStorage in class ExtendedDataType<T extends org.djunits.value.vfloat.scalar.base.FloatScalar<U,T>,O extends org.djunits.value.vfloat.vector.base.FloatVector<U,T,O>,float[],G extends GtuData>
      Returns:
      initial storage object.
    • getOutputValue

      public final T getOutputValue(O output, int i) throws SamplingException
      Returns a specific output value. This is used to store extended data types as generic file, i.e. text file.
      Specified by:
      getOutputValue in class ExtendedDataType<T extends org.djunits.value.vfloat.scalar.base.FloatScalar<U,T>,O extends org.djunits.value.vfloat.vector.base.FloatVector<U,T,O>,float[],G extends GtuData>
      Parameters:
      output - O; output
      i - int; index of value to return
      Returns:
      the i'th output value
      Throws:
      SamplingException - when i is out of bounds.
    • getStorageValue

      public T getStorageValue(float[] storage, int i) throws SamplingException
      Returns a specific storage value. This is used to bypass conversion to the output type when trajectories are cut.
      Specified by:
      getStorageValue in class ExtendedDataType<T extends org.djunits.value.vfloat.scalar.base.FloatScalar<U,T>,O extends org.djunits.value.vfloat.vector.base.FloatVector<U,T,O>,float[],G extends GtuData>
      Parameters:
      storage - S; storage
      i - int; index of value to return
      Returns:
      the i'th output value
      Throws:
      SamplingException - when i is out of bounds.
    • convertValue

      protected abstract T convertValue(float value)
      Convert float to typed value.
      Parameters:
      value - float; float value
      Returns:
      typed value
    • convert

      public O convert(float[] storage, int size)
      Convert storage type to output type.
      Specified by:
      convert in class ExtendedDataType<T extends org.djunits.value.vfloat.scalar.base.FloatScalar<U,T>,O extends org.djunits.value.vfloat.vector.base.FloatVector<U,T,O>,float[],G extends GtuData>
      Parameters:
      storage - S; stored data
      size - int; size of trajectory
      Returns:
      converted output
    • convert

      protected abstract O convert(float[] storage) throws org.djunits.value.ValueRuntimeException
      Convert float array to typed array.
      Parameters:
      storage - float[]; float array storage
      Returns:
      typed array
      Throws:
      org.djunits.value.ValueRuntimeException - when float array cannot be converted