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
      Get the interpretted data value in the form of the appropriate Object for this DataType. This method must return a value consistent with DataType.getValueClass(Settings).

      For instance, if this datatype is a Pointer an Address object or null should be returned. A Byte, returns a Scalar object.

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