Class CountedDynamicDataType

  • All Implemented Interfaces:
    BuiltInDataType, DataType, Dynamic, ExtensionPoint

    public abstract class CountedDynamicDataType
    extends DynamicDataType
    A dynamic data type that changes the number of elements it contains based on a count found in header data type. The data type has a header data type which will contain the number of base data types following the header data type. NOTE: This is a special Dynamic data-type which can only appear as a component created by a Dynamic data-type
    • Constructor Detail

      • CountedDynamicDataType

        public CountedDynamicDataType​(java.lang.String name,
                                      java.lang.String description,
                                      DataType header,
                                      DataType baseStruct,
                                      long counterOffset,
                                      int counterSize,
                                      long mask)
        Constructor for this dynamic data type builder.
        Parameters:
        name - name of this dynamic data type
        description - description of the data type
        header - header data type that will contain the number of following elements
        baseStruct - base data type for each of the following elements
        counterOffset - offset of the number of following elements from the start of the header
        counterSize - size of the count in bytes
        mask - mask to apply to the count value to get the actual number of following elements.
    • Method Detail

      • clone

        public DataType clone​(DataTypeManager dtm)
        Description copied from interface: DataType
        Returns an instance of this DataType with its universalID and SourceArchive identity retained.

        The current instanceof will be returned if this datatype's DataTypeManager matches the specified dtm. The recursion depth of a clone will stop on any datatype whose DataTypeManager matches the specified dtm and simply use the existing datatype instance.

        Parameters:
        dtm - the data-type manager instance whose data-organization should apply.
        Returns:
        cloned instance which may be the same as this instance
      • getAllComponents

        protected DataTypeComponent[] getAllComponents​(MemBuffer buf)
        Description copied from class: DynamicDataType
        Get all dynamic components associated with the specified MemBuffer
        Specified by:
        getAllComponents in class DynamicDataType
        Parameters:
        buf - memory buffer positioned at start of data type instance
        Returns:
        all components or null if memory data is not valid for this data type.
      • getDescription

        public java.lang.String getDescription()
        Description copied from interface: DataType
        Get a String briefly describing this DataType.
        Returns:
        a one-liner describing this DataType.
      • getValue

        public java.lang.Object getValue​(MemBuffer buf,
                                         Settings settings,
                                         int length)
        Description copied from interface: DataType
        Get the data in the form of the appropriate Object for this DataType.

        For instance if the datatype is an AddressDT, return an Address object. a Byte, return a Scalar* (maybe this should be a Byte) a Float, return a Float

        Parameters:
        buf - the data buffer.
        settings - the settings to use.
        length - the number of bytes to get the value from.
        Returns:
        the data Object.
      • getRepresentation

        public java.lang.String getRepresentation​(MemBuffer buf,
                                                  Settings settings,
                                                  int length)
        Description copied from interface: DataType
        Get bytes from memory in a printable format for this type.
        Parameters:
        buf - the data.
        settings - the settings to use for the representation.
        length - the number of bytes to represent.
        Returns:
        the representation of the data in this format, never null.
      • getMnemonic

        public java.lang.String getMnemonic​(Settings settings)
        Description copied from interface: DataType
        Get the mnemonic for this DataType.
        Specified by:
        getMnemonic in interface DataType
        Overrides:
        getMnemonic in class AbstractDataType
        Parameters:
        settings - settings which may influence the result or null
        Returns:
        the mnemonic for this DataType.