Package ghidra.program.model.data

# Class GenericDataType

java.lang.Object
ghidra.program.model.data.AbstractDataType
ghidra.program.model.data.DataTypeImpl
ghidra.program.model.data.GenericDataType

All Implemented Interfaces:
  `DataType`

Direct Known Subclasses:
  `CompositeDataTypeImpl`, `EnumDataType`, `FunctionDefinitionDataType`, `PointerTypedef`, `TypedefDataType`

public abstract class GenericDataType extends DataTypeImpl
Base implementation for a generic data type.

- ## Field Summary

  ### Fields inherited from class ghidra.program.model.data.DataTypeImpl

  `defaultSettings`

  ### Fields inherited from class ghidra.program.model.data.AbstractDataType

  `categoryPath, dataMgr, name`

  ### 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`

- ## Constructor Summary

  Constructors
  Modifier
  Constructor
  Description
  `protected`
  `GenericDataType(CategoryPath path, String name, DataTypeManager dataMgr)`
  `protected`
  `GenericDataType(CategoryPath path, String name, UniversalID universalID, SourceArchive sourceArchive, long lastChangeTime, long lastChangeTimeInSourceArchive, DataTypeManager dataMgr)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `setCategoryPath(CategoryPath path)`
  Set the categoryPath associated with this datatype
  `void`
  `setName(String name)`
  Sets the name of the datatype
  `void`
  `setNameAndCategory(CategoryPath path, String name)`
  Sets the name and category of a datatype at the same time.

  ### Methods inherited from class ghidra.program.model.data.DataTypeImpl

  `addParent, equals, getAlignedLength, getAlignment, getDefaultSettings, getLastChangeTime, getLastChangeTimeInSourceArchive, getParents, getPathName, getSettingsDefinitions, getSourceArchive, getUniversalID, getValueClass, hashCode, notifyAlignmentChanged, notifyDeleted, notifyNameChanged, notifyParents, notifyReplaced, notifySizeChanged, removeParent, replaceWith, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setSourceArchive`

  ### Methods inherited from class ghidra.program.model.data.AbstractDataType

  `dataTypeAlignmentChanged, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, dependsOn, encodeRepresentation, encodeValue, getCategoryPath, getDataOrganization, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDisplayName, getDocs, getMnemonic, getName, getTypeDefSettingsDefinitions, hasLanguageDependantLength, isDeleted, isEncodable, isNotYetDefined, isZeroLength, toString`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

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

  `clone, copy, getDescription, getLength, getRepresentation, getValue, isEquivalent`

- ## Constructor Details

  - ### GenericDataType

    protected GenericDataType(CategoryPath path, String name, DataTypeManager dataMgr)

  - ### GenericDataType

    protected GenericDataType(CategoryPath path, String name, UniversalID universalID, SourceArchive sourceArchive, long lastChangeTime, long lastChangeTimeInSourceArchive, DataTypeManager dataMgr)

- ## Method Details

  - ### setNameAndCategory

    public void setNameAndCategory(CategoryPath path, String name) throws InvalidNameException, DuplicateNameException
    Description copied from interface: `DataType`
    Sets the name and category of a datatype at the same time.
    Specified by:
      `setNameAndCategory` in interface `DataType`
    Overrides:
      `setNameAndCategory` in class `AbstractDataType`
    Parameters:
      `path` - the new category path.
      `name` - the new name
    Throws:
      `InvalidNameException` - if the name is invalid
      `DuplicateNameException` - if name change on stored `DataType` is a duplicate of another datatype within the same category (only applies to DB stored `DataType`).

  - ### setName

    public void setName(String name) throws InvalidNameException
    Description copied from interface: `DataType`
    Sets the name of the datatype
    Specified by:
      `setName` in interface `DataType`
    Overrides:
      `setName` in class `AbstractDataType`
    Parameters:
      `name` - the new name for this datatype.
    Throws:
      `InvalidNameException` - if the given name does not form a valid name.

  - ### setCategoryPath

    public void setCategoryPath(CategoryPath path)
    Description copied from interface: `DataType`
    Set the categoryPath associated with this datatype
    Specified by:
      `setCategoryPath` in interface `DataType`
    Overrides:
      `setCategoryPath` in class `AbstractDataType`
    Parameters:
      `path` - the new path