Package ghidra.program.model.data
Class StructuredDynamicDataType
- java.lang.Object
- 
- ghidra.program.model.data.AbstractDataType
- 
- ghidra.program.model.data.DataTypeImpl
- 
- ghidra.program.model.data.BuiltIn
- 
- ghidra.program.model.data.DynamicDataType
- 
- ghidra.program.model.data.StructuredDynamicDataType
 
 
 
 
 
- 
- All Implemented Interfaces:
- BuiltInDataType,- DataType,- Dynamic,- ExtensionPoint,- java.util.EventListener,- javax.swing.event.ChangeListener
 
 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
- 
- 
Nested Class Summary- 
Nested classes/interfaces inherited from interface ghidra.util.classfinder.ExtensionPointExtensionPoint.Exclude, ExtensionPoint.Util
 
- 
 - 
Field SummaryFields Modifier and Type Field Description protected java.util.List<java.lang.String>componentDescsprotected java.util.List<java.lang.String>componentNamesprotected java.util.List<DataType>componentsprotected java.lang.Stringdescription- 
Fields inherited from class ghidra.program.model.data.DataTypeImpldefaultSettings
 - 
Fields inherited from class ghidra.program.model.data.AbstractDataTypecategoryPath, dataMgr, name
 - 
Fields inherited from interface ghidra.program.model.data.DataTypeCONFLICT_SUFFIX, DEFAULT, NO_LAST_CHANGE_TIME, NO_SOURCE_SYNC_TIME, VOID
 
- 
 - 
Constructor SummaryConstructors Constructor Description StructuredDynamicDataType(java.lang.String name, java.lang.String description, DataTypeManager dtm)Construct an empty dynamic structure
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(DataType data, java.lang.String componentName, java.lang.String componentDescription)Add a component data type onto the end of the dynamic structureprotected DataTypeComponent[]getAllComponents(MemBuffer buf)java.lang.StringgetDescription()Get a String briefly describing this DataType.java.lang.StringgetMnemonic(Settings settings)Get the mnemonic for this DataType.java.lang.StringgetRepresentation(MemBuffer buf, Settings settings, int length)Get bytes from memory in a printable format for this type.java.lang.ObjectgetValue(MemBuffer buf, Settings settings, int length)Get the data in the form of the appropriate Object for this DataType.voidsetComponents(java.util.List<DataType> components, java.util.List<java.lang.String> componentNames, java.util.List<java.lang.String> componentDescs)Set the components of the dynamic structure all at once.- 
Methods inherited from class ghidra.program.model.data.DynamicDataTypecanSpecifyLength, getComponent, getComponentAt, getComponents, getLength, getLength, getNumComponents, getReplacementBaseType, invalidateCache, isDynamicallySized
 - 
Methods inherited from class ghidra.program.model.data.BuiltInaddParent, copy, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, dependsOn, getBuiltInSettingsDefinitions, getCTypeDeclaration, getCTypeDeclaration, getCTypeDeclaration, getCTypeDeclaration, getDecompilerDisplayName, getLastChangeTime, getSettingsDefinitions, getUniversalID, isEquivalent, removeParent, setCategoryPath, setName, setNameAndCategory
 - 
Methods inherited from class ghidra.program.model.data.DataTypeImplequals, getAlignment, getDefaultSettings, getLastChangeTimeInSourceArchive, getParents, getPathName, getSourceArchive, getValueClass, hashCode, notifyDeleted, notifyNameChanged, notifyReplaced, notifySizeChanged, replaceWith, setDefaultSettings, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setSourceArchive, stateChanged
 - 
Methods inherited from class ghidra.program.model.data.AbstractDataTypegetCategoryPath, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDisplayName, getDocs, getName, isDeleted, isNotYetDefined, toString
 - 
Methods inherited from class java.lang.Objectclone, finalize, getClass, notify, notifyAll, wait, wait, wait
 - 
Methods inherited from interface ghidra.program.model.data.BuiltInDataTypegetCTypeDeclaration
 - 
Methods inherited from interface ghidra.program.model.data.DataTypeaddParent, clone, copy, dataTypeDeleted, dataTypeNameChanged, dataTypeReplaced, dataTypeSizeChanged, dependsOn, getAlignment, getCategoryPath, getDataOrganization, getDataTypeManager, getDataTypePath, getDefaultAbbreviatedLabelPrefix, getDefaultLabelPrefix, getDefaultLabelPrefix, getDefaultOffcutLabelPrefix, getDefaultSettings, getDisplayName, getDocs, getLastChangeTime, getLastChangeTimeInSourceArchive, getName, getParents, getPathName, getSettingsDefinitions, getSourceArchive, getUniversalID, getValueClass, isDeleted, isEquivalent, isNotYetDefined, removeParent, replaceWith, setCategoryPath, setDefaultSettings, setDescription, setLastChangeTime, setLastChangeTimeInSourceArchive, setName, setNameAndCategory, setSourceArchive
 
- 
 
- 
- 
- 
Field Detail- 
descriptionprotected java.lang.String description 
 - 
componentsprotected java.util.List<DataType> components 
 - 
componentNamesprotected java.util.List<java.lang.String> componentNames 
 - 
componentDescsprotected java.util.List<java.lang.String> componentDescs 
 
- 
 - 
Constructor Detail- 
StructuredDynamicDataTypepublic StructuredDynamicDataType(java.lang.String name, java.lang.String description, DataTypeManager dtm)Construct an empty dynamic structure- Parameters:
- name- name of the dynamic structure
- description- description of the dynamic structure
 
 
- 
 - 
Method Detail- 
addpublic void add(DataType data, java.lang.String componentName, java.lang.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
 
 - 
setComponentspublic void setComponents(java.util.List<DataType> components, java.util.List<java.lang.String> componentNames, java.util.List<java.lang.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
 
 - 
getAllComponentsprotected DataTypeComponent[] getAllComponents(MemBuffer buf) - Specified by:
- getAllComponentsin class- DynamicDataType
 
 - 
getDescriptionpublic java.lang.String getDescription() Description copied from interface:DataTypeGet a String briefly describing this DataType.- Returns:
- a one-liner describing this DataType.
 
 - 
getValuepublic java.lang.Object getValue(MemBuffer buf, Settings settings, int length) Description copied from interface:DataTypeGet the data in the form of the appropriate Object for this DataType. For instance if the data type 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.
 
 - 
getRepresentationpublic java.lang.String getRepresentation(MemBuffer buf, Settings settings, int length) Description copied from interface:DataTypeGet 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.
 
 - 
getMnemonicpublic java.lang.String getMnemonic(Settings settings) Description copied from interface:DataTypeGet the mnemonic for this DataType.- Specified by:
- getMnemonicin interface- DataType
- Overrides:
- getMnemonicin class- AbstractDataType
- Returns:
- the mnemonic for this DataType.
 
 
- 
 
-