Class DataType


  • public abstract class DataType
    extends java.lang.Object
    Enumerates the data types supported by the CDF format.
    Since:
    20 Jun 2013
    • Method Detail

      • getName

        public java.lang.String getName()
        Returns the name for this data type.
        Returns:
        data type name
      • getByteCount

        public int getByteCount()
        Returns the number of bytes used in a CDF to store a single item of this type.
        Returns:
        size in bytes
      • getArrayElementClass

        public java.lang.Class<?> getArrayElementClass()
        Returns the element class of an array that this data type can be read into. In most cases this is a primitive type or String.
        Returns:
        array raw value element class
      • getScalarClass

        public java.lang.Class<?> getScalarClass()
        Returns the type of objects obtained by the getScalar method.
        Returns:
        scalar type associated with this data type
      • getGroupSize

        public int getGroupSize()
        Number of elements of type arrayElementClass that are read into valueArray for a single item read. This is usually 1, but not, for instance, for EPOCH16.
        Returns:
        number of array elements per item
      • getArrayIndex

        public int getArrayIndex​(int itemIndex)
        Returns the index into a value array which corresponds to the item'th element.
        Returns:
        itemIndex * groupSize
      • hasMultipleElementsPerItem

        public boolean hasMultipleElementsPerItem()
        True if this type may turn a variable number of elements from the value array into a single read item. This is usually false, but true for character types, which turn into strings.
        Returns:
        true iff type may have multiple elements per read item
      • getDefaultPadValueArray

        public java.lang.Object getDefaultPadValueArray()
        Returns an array of array-class values containing a single item with the default pad value for this type.
        Returns:
        default raw pad value array
        See Also:
        "Section 2.3.20 of CDF User's Guide"
      • readValues

        public abstract void readValues​(Buf buf,
                                        long offset,
                                        int nelPerItem,
                                        java.lang.Object valueArray,
                                        int count)
                                 throws java.io.IOException
        Reads data of this data type from a buffer into an appropriately typed value array.
        Parameters:
        buf - data buffer
        offset - byte offset into buffer at which data starts
        nelPerItem - number of elements per item; usually 1, but may not be for strings
        valueArray - array to receive result data
        count - number of items to read
        Throws:
        java.io.IOException
      • getScalar

        public abstract java.lang.Object getScalar​(java.lang.Object valueArray,
                                                   int arrayIndex)
        Reads a single item from an array which has previously been populated by readValues. The class of the returned value is that returned by getScalarClass().

        The arrayIndex argument is the index into the array object, not necessarily the item index - see the getArrayIndex method.

        Parameters:
        valueArray - array filled with data for this data type
        arrayIndex - index into array at which the item to read is found
        Returns:
        scalar representation of object at position index in valueArray
      • formatScalarValue

        public java.lang.String formatScalarValue​(java.lang.Object value)
        Provides a string view of a scalar value obtained for this data type.
        Parameters:
        value - value returned by getScalar
        Returns:
        string representation
      • formatArrayValue

        public java.lang.String formatArrayValue​(java.lang.Object array,
                                                 int arrayIndex)
        Provides a string view of an item obtained from an array value of this data type.

        The arrayIndex argument is the index into the array object, not necessarily the item index - see the getArrayIndex method.

        Parameters:
        array - array value populated by readValues
        arrayIndex - index into array
        Returns:
        string representation
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getDataType

        public static DataType getDataType​(int dataType,
                                           CdfInfo cdfInfo)
                                    throws CdfFormatException
        Returns a DataType corresponding to a CDF data type code, possibly customised for a particular CDF file.

        Currently, this returns the same as getDataType(int), except for TIME_TT2000 columns, in which case the last known leap second may be taken into account.

        Parameters:
        dataType - dataType field of AEDR or VDR
        cdfInfo - specifics of CDF file
        Returns:
        data type object
        Throws:
        CdfFormatException
      • getDataType

        public static DataType getDataType​(int dataType)
                                    throws CdfFormatException
        Returns the DataType object corresponding to a CDF data type code.
        Parameters:
        dataType - dataType field of AEDR or VDR
        Returns:
        data type object
        Throws:
        CdfFormatException