Class StructuredDynamicDataType

All Implemented Interfaces:
BuiltInDataType, DataType, Dynamic, ExtensionPoint

public abstract class StructuredDynamicDataType extends DynamicDataType
Structured Dynamic Data type. Dynamic Structure that is built by adding data types to it. NOTE: This is a special Dynamic data-type which can only appear as a component created by a Dynamic data-type
  • Field Details

    • description

      protected String description
    • components

      protected List<DataType> components
    • componentNames

      protected List<String> componentNames
    • componentDescs

      protected List<String> componentDescs
  • Constructor Details

    • StructuredDynamicDataType

      public StructuredDynamicDataType(String name, String description, DataTypeManager dtm)
      Construct an empty dynamic structure
      Parameters:
      name - name of the dynamic structure
      description - description of the dynamic structure
  • Method Details

    • add

      public void add(DataType data, String componentName, String componentDescription)
      Add a component data type onto the end of the dynamic structure
      Parameters:
      data - data type to add
      componentName - name of the field in the dynamic structure
      componentDescription - description of the field
    • setComponents

      public void setComponents(List<DataType> components, List<String> componentNames, List<String> componentDescs)
      Set the components of the dynamic structure all at once. This does not add the components in, it replaces any existing ones.
      Parameters:
      components - list of components to add
      componentNames - list of field names of each component
      componentDescs - list of descriptions of each component
    • 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 String getDescription()
      Description copied from interface: DataType
      Get a String briefly describing this DataType.
      Returns:
      a one-liner describing this DataType.
    • getValue

      public Object getValue(MemBuffer buf, Settings settings, int length)
      Description copied from interface: DataType
      Returns the interpreted data value as an instance of the advertised value class.

      For instance, Pointer data types should return an Address object (or null), or integer data types should return a Scalar object.

      Parameters:
      buf - the data buffer
      settings - the settings to use.
      length - indicates the maximum number of bytes that may be consumed by a Dynamic datatype, otherwise this value is ignored. A value of -1 may be specified to allow a Dynamic datatype to determine the length based upon the actual data bytes
      Returns:
      the data object, or null if data is invalid
    • getRepresentation

      public 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 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.