Package ghidra.program.model.data

# Interface ArrayStringable

All Superinterfaces:
  `DataType`

All Known Implementing Classes:
  `AbstractIntegerDataType`, `AbstractSignedIntegerDataType`, `AbstractUnsignedIntegerDataType`, `BooleanDataType`, `ByteDataType`, `CharDataType`, `DWordDataType`, `Integer16DataType`, `Integer3DataType`, `Integer5DataType`, `Integer6DataType`, `Integer7DataType`, `IntegerDataType`, `LongDataType`, `LongLongDataType`, `QWordDataType`, `ShortDataType`, `SignedByteDataType`, `SignedCharDataType`, `SignedDWordDataType`, `SignedQWordDataType`, `SignedWordDataType`, `UnsignedCharDataType`, `UnsignedInteger16DataType`, `UnsignedInteger3DataType`, `UnsignedInteger5DataType`, `UnsignedInteger6DataType`, `UnsignedInteger7DataType`, `UnsignedIntegerDataType`, `UnsignedLongDataType`, `UnsignedLongLongDataType`, `UnsignedShortDataType`, `WideChar16DataType`, `WideChar32DataType`, `WideCharDataType`, `WordDataType`

public interface ArrayStringable extends DataType
`ArrayStringable` identifies those data types which when formed into an array can be interpreted as a string (e.g., character array). The `Array` implementations will leverage this interface as both a marker and to generate appropriate representations and values for data instances.

- ## Field Summary

  ### Fields inherited from interface ghidra.program.model.data.DataType

  `CONFLICT_SUFFIX, DEFAULT, NO_LAST_CHANGE_TIME, NO_SOURCE_SYNC_TIME, TYPEDEF_ATTRIBUTE_PREFIX, TYPEDEF_ATTRIBUTE_SUFFIX, VOID`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getArrayDefaultLabelPrefix(MemBuffer buf, Settings settings, int len, DataTypeDisplayOptions options)`
  For cases where an array of this type exists, get the appropriate string to use as the default label prefix for the array.
  `String`
  `getArrayDefaultOffcutLabelPrefix(MemBuffer buf, Settings settings, int len, DataTypeDisplayOptions options, int offcutLength)`
  For cases where an array of this type exists, get the appropriate string to use as the default label prefix, taking into account the fact that there exists a reference to the data that references `offcutLength` bytes into this type
  `default String`
  `getArrayString(MemBuffer buf, Settings settings, int length)`
  For cases where an array of this type exists, get the array value as a String.
  `static ArrayStringable`
  `getArrayStringable(DataType dt)`
  Get the ArrayStringable for a specified data type.
  `boolean`
  `hasStringValue(Settings settings)`
  For cases where an array of this type exists, determines if a String value will be returned.

  ### Methods inherited from interface ghidra.program.model.data.DataType

  `addParent, clone, copy, dataTypeAlignmentChanged, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, dependsOn, encodeRepresentation, encodeValue, getAlignedLength, getAlignment, getCategoryPath, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDefaultSettings, getDescription, getDisplayName, getDocs, getLastChangeTime, getLastChangeTimeInSourceArchive, getLength, getMnemonic, getName, getParents, getPathName, getRepresentation, getSettingsDefinitions, getSourceArchive, getTypeDefSettingsDefinitions, getUniversalID, getValue, getValueClass, hasLanguageDependantLength, isDeleted, isEncodable, isEquivalent, isNotYetDefined, isZeroLength, removeParent, replaceWith, setCategoryPath, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setName, setNameAndCategory, setSourceArchive`

- ## Method Details

  - ### hasStringValue

    boolean hasStringValue(Settings settings)
    For cases where an array of this type exists, determines if a String value will be returned.

    Parameters:
      `settings` -
    Returns:
      true if array of this type with the specified settings will return a String value.

  - ### getArrayString

    default String getArrayString(MemBuffer buf, Settings settings, int length)
    For cases where an array of this type exists, get the array value as a String. When data corresponds to character data it should generally be expressed as a string. A null value is returned if not supported or memory is uninitialized.
    Parameters:
      `buf` - data buffer
      `settings` - data settings
      `length` - length of array
    Returns:
      array value expressed as a string or null if data is not character data

  - ### getArrayDefaultLabelPrefix

    String getArrayDefaultLabelPrefix(MemBuffer buf, Settings settings, int len, DataTypeDisplayOptions options)
    For cases where an array of this type exists, get the appropriate string to use as the default label prefix for the array.
    Parameters:
      `buf` - memory buffer containing the bytes.
      `settings` - the Settings object
      `len` - the length of the data.
      `options` - options for how to format the default label prefix.
    Returns:
      the default label prefix or null if none specified.

  - ### getArrayDefaultOffcutLabelPrefix

    String getArrayDefaultOffcutLabelPrefix(MemBuffer buf, Settings settings, int len, DataTypeDisplayOptions options, int offcutLength)
    For cases where an array of this type exists, get the appropriate string to use as the default label prefix, taking into account the fact that there exists a reference to the data that references `offcutLength` bytes into this type
    Parameters:
      `buf` - memory buffer containing the bytes.
      `settings` - the Settings object.
      `len` - the length of the data.
      `options` - options for how to format the default label prefix.
      `offcutLength` - the length of the offcut label prefix.
    Returns:
      the default label prefix or null if none specified.

  - ### getArrayStringable

    static ArrayStringable getArrayStringable(DataType dt)
    Get the ArrayStringable for a specified data type. Not used on an Array DataType, but on Array's element's type.

    Parameters:
      `dt` - data type
    Returns:
      ArrayStringable object, or null.