Package ghidra.app.util.demangler

# Class DemangledDataType

java.lang.Object
ghidra.app.util.demangler.DemangledType
ghidra.app.util.demangler.DemangledDataType

All Implemented Interfaces:
  `Demangled`

Direct Known Subclasses:
  `AbstractDemangledFunctionDefinitionDataType`

public class DemangledDataType extends DemangledType
A class to represent a demangled data type.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `ARR_NOTATION`
  `static final String`
  `BOOL`
  `static final String`
  `CHAR`
  `static final String`
  `CLASS`
  `static final String`
  `COCLASS`
  `static final String`
  `COINTERFACE`
  `static final String`
  `COMPLEX`
  `static final String`
  `CONST`
  `protected static final CategoryPath`
  `DEMANGLER_ANONYMOUS_FUNCTION_CATEGORY_PATH`
  `protected static final CategoryPath`
  `DEMANGLER_ROOT_CATEGORY_PATH`
  `static final String`
  `DOUBLE`
  `static final String`
  `ENUM`
  `static final String`
  `FLOAT`
  `static final String`
  `FLOAT128`
  `static final String`
  `INT`
  `static final String`
  `INT0_T`
  `static final String`
  `INT128`
  `static final String`
  `INT16`
  `static final String`
  `INT32`
  `static final String`
  `INT64`
  `static final String`
  `INT8`
  `static final String`
  `LONG`
  `static final String`
  `LONG_DOUBLE`
  `static final String`
  `LONG_LONG`
  `static final String[]`
  `PRIMITIVES`
  `static final String`
  `PTR_NOTATION`
  `static final String`
  `PTR64`
  `static final String`
  `REF_NOTATION`
  `static final String`
  `RESTRICT`
  `static final String`
  `RIGHT_REF_NOTATION`
  `static final String`
  `SHORT`
  `static final String`
  `SIGNED`
  `static final char`
  `SPACE`
  `static final String`
  `STRING`
  `static final String`
  `STRUCT`
  `static final String`
  `UNALIGNED`
  `static final String`
  `UNDEFINED`
  `static final String`
  `UNION`
  `static final String`
  `UNSIGNED`
  `static final String`
  `VARARGS`
  `static final String`
  `VOID`
  `static final String`
  `VOLATILE`
  `static final String`
  `WCHAR_T`
  `static final String`
  `WCHAR16`
  `static final String`
  `WCHAR32`

  ### Fields inherited from class ghidra.app.util.demangler.DemangledType

  `mangled, namespace, template`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `DemangledDataType(String mangled, String originaDemangled, String name)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `getArrayDimensions()`
  `String`
  `getBasedName()`
  `DataType`
  `getDataType(DataTypeManager dataTypeManager)`
  Converts this demangled datatype into the corresponding Ghidra datatype
  `protected static CategoryPath`
  `getDemanglerCategoryPath(Demangled namespace)`
  `String`
  `getMemberScope()`
  `int`
  `getPointerLevels()`
  `String`
  `getSignature()`
  Generates a complete representation of this object to include all know attributes of this object
  `void`
  `incrementPointerLevels()`
  `boolean`
  `isArray()`
  `boolean`
  `isClass()`
  `boolean`
  `isCoclass()`
  `boolean`
  `isCointerface()`
  `boolean`
  `isComplex()`
  `boolean`
  `isEnum()`
  `boolean`
  `isLValueReference()`
  `boolean`
  `isPointer()`
  `boolean`
  `isPointer64()`
  `boolean`
  `isPrimitive()`
  `boolean`
  `isReference()`
  `boolean`
  `isRestrict()`
  `boolean`
  `isRValueReference()`
  `boolean`
  `isSigned()`
  `boolean`
  `isStruct()`
  `boolean`
  `isTemplate()`
  `boolean`
  `isUnaligned()`
  `boolean`
  `isUnion()`
  `boolean`
  `isUnsigned()`
  `boolean`
  `isVarArgs()`
  `boolean`
  `isVoid()`
  `void`
  `setArray(int dimensions)`
  `void`
  `setBasedName(String basedName)`
  `void`
  `setClass()`
  `void`
  `setCoclass()`
  `void`
  `setCointerface()`
  `void`
  `setComplex()`
  `void`
  `setEnum()`
  `String`
  `setEnumType()`
  `void`
  `setEnumType(String enumType)`
  `void`
  `setLValueReference()`
  `void`
  `setMemberScope(String memberScope)`
  `void`
  `setPointer64()`
  `void`
  `setReference()`
  `void`
  `setRestrict()`
  `void`
  `setRValueReference()`
  rvalue reference; C++11
  `void`
  `setSigned()`
  `void`
  `setStruct()`
  `void`
  `setTemplate()`
  `void`
  `setUnaligned()`
  `void`
  `setUnion()`
  `void`
  `setUnsigned()`
  `void`
  `setVarArgs()`
  `String`
  `toString()`

  ### Methods inherited from class ghidra.app.util.demangler.DemangledType

  `getDemangledName, getMangledString, getName, getNamespace, getNamespaceName, getNamespaceString, getOriginalDemangled, getTemplate, isConst, isVolatile, setConst, setName, setNamespace, setTemplate, setVolatile`

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

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

- ## Field Details

  - ### DEMANGLER_ROOT_CATEGORY_PATH

    protected static final CategoryPath DEMANGLER_ROOT_CATEGORY_PATH

  - ### DEMANGLER_ANONYMOUS_FUNCTION_CATEGORY_PATH

    protected static final CategoryPath DEMANGLER_ANONYMOUS_FUNCTION_CATEGORY_PATH

  - ### SPACE

    public static final char SPACE
    See Also:
      - Constant Field Values

  - ### UNSIGNED

    public static final String UNSIGNED
    See Also:
      - Constant Field Values

  - ### SIGNED

    public static final String SIGNED
    See Also:
      - Constant Field Values

  - ### ARR_NOTATION

    public static final String ARR_NOTATION
    See Also:
      - Constant Field Values

  - ### REF_NOTATION

    public static final String REF_NOTATION
    See Also:
      - Constant Field Values

  - ### RIGHT_REF_NOTATION

    public static final String RIGHT_REF_NOTATION
    See Also:
      - Constant Field Values

  - ### PTR_NOTATION

    public static final String PTR_NOTATION
    See Also:
      - Constant Field Values

  - ### VOLATILE

    public static final String VOLATILE
    See Also:
      - Constant Field Values

  - ### COMPLEX

    public static final String COMPLEX
    See Also:
      - Constant Field Values

  - ### CLASS

    public static final String CLASS
    See Also:
      - Constant Field Values

  - ### ENUM

    public static final String ENUM
    See Also:
      - Constant Field Values

  - ### STRUCT

    public static final String STRUCT
    See Also:
      - Constant Field Values

  - ### UNION

    public static final String UNION
    See Also:
      - Constant Field Values

  - ### CONST

    public static final String CONST
    See Also:
      - Constant Field Values

  - ### COCLASS

    public static final String COCLASS
    See Also:
      - Constant Field Values

  - ### COINTERFACE

    public static final String COINTERFACE
    See Also:
      - Constant Field Values

  - ### VARARGS

    public static final String VARARGS
    See Also:
      - Constant Field Values

  - ### VOID

    public static final String VOID
    See Also:
      - Constant Field Values

  - ### BOOL

    public static final String BOOL
    See Also:
      - Constant Field Values

  - ### CHAR

    public static final String CHAR
    See Also:
      - Constant Field Values

  - ### WCHAR_T

    public static final String WCHAR_T
    See Also:
      - Constant Field Values

  - ### WCHAR16

    public static final String WCHAR16
    See Also:
      - Constant Field Values

  - ### WCHAR32

    public static final String WCHAR32
    See Also:
      - Constant Field Values

  - ### SHORT

    public static final String SHORT
    See Also:
      - Constant Field Values

  - ### INT

    public static final String INT
    See Also:
      - Constant Field Values

  - ### INT0_T

    public static final String INT0_T
    See Also:
      - Constant Field Values

  - ### LONG

    public static final String LONG
    See Also:
      - Constant Field Values

  - ### LONG_LONG

    public static final String LONG_LONG
    See Also:
      - Constant Field Values

  - ### FLOAT

    public static final String FLOAT
    See Also:
      - Constant Field Values

  - ### DOUBLE

    public static final String DOUBLE
    See Also:
      - Constant Field Values

  - ### INT8

    public static final String INT8
    See Also:
      - Constant Field Values

  - ### INT16

    public static final String INT16
    See Also:
      - Constant Field Values

  - ### INT32

    public static final String INT32
    See Also:
      - Constant Field Values

  - ### INT64

    public static final String INT64
    See Also:
      - Constant Field Values

  - ### INT128

    public static final String INT128
    See Also:
      - Constant Field Values

  - ### FLOAT128

    public static final String FLOAT128
    See Also:
      - Constant Field Values

  - ### LONG_DOUBLE

    public static final String LONG_DOUBLE
    See Also:
      - Constant Field Values

  - ### PTR64

    public static final String PTR64
    See Also:
      - Constant Field Values

  - ### STRING

    public static final String STRING
    See Also:
      - Constant Field Values

  - ### UNDEFINED

    public static final String UNDEFINED
    See Also:
      - Constant Field Values

  - ### UNALIGNED

    public static final String UNALIGNED
    See Also:
      - Constant Field Values

  - ### RESTRICT

    public static final String RESTRICT
    See Also:
      - Constant Field Values

  - ### PRIMITIVES

    public static final String[] PRIMITIVES

- ## Constructor Details

  - ### DemangledDataType

    public DemangledDataType(String mangled, String originaDemangled, String name)

- ## Method Details

  - ### getDataType

    public DataType getDataType(DataTypeManager dataTypeManager)
    Converts this demangled datatype into the corresponding Ghidra datatype
    Parameters:
      `dataTypeManager` - the manager to search and whose data organization should be used
    Returns:
      the Ghidra datatype corresponding to the demangled datatype

  - ### getDemanglerCategoryPath

    protected static CategoryPath getDemanglerCategoryPath(Demangled namespace)

  - ### getPointerLevels

    public int getPointerLevels()

  - ### incrementPointerLevels

    public void incrementPointerLevels()

  - ### setArray

    public void setArray(int dimensions)

  - ### getArrayDimensions

    public int getArrayDimensions()

  - ### setClass

    public void setClass()

  - ### setComplex

    public void setComplex()

  - ### setEnum

    public void setEnum()

  - ### setPointer64

    public void setPointer64()

  - ### setReference

    public void setReference()

  - ### setLValueReference

    public void setLValueReference()

  - ### setRValueReference

    public void setRValueReference()
    rvalue reference; C++11

  - ### setSigned

    public void setSigned()

  - ### setStruct

    public void setStruct()

  - ### setTemplate

    public void setTemplate()

  - ### setUnion

    public void setUnion()

  - ### setCoclass

    public void setCoclass()

  - ### setCointerface

    public void setCointerface()

  - ### setUnsigned

    public void setUnsigned()

  - ### setUnaligned

    public void setUnaligned()

  - ### isUnaligned

    public boolean isUnaligned()

  - ### setVarArgs

    public void setVarArgs()

  - ### setEnumType

    public void setEnumType(String enumType)

  - ### setRestrict

    public void setRestrict()

  - ### isRestrict

    public boolean isRestrict()

  - ### isArray

    public boolean isArray()

  - ### isClass

    public boolean isClass()

  - ### isComplex

    public boolean isComplex()

  - ### isEnum

    public boolean isEnum()

  - ### isPointer

    public boolean isPointer()

  - ### isPointer64

    public boolean isPointer64()

  - ### isReference

    public boolean isReference()

  - ### isLValueReference

    public boolean isLValueReference()

  - ### isRValueReference

    public boolean isRValueReference()

  - ### isSigned

    public boolean isSigned()

  - ### isStruct

    public boolean isStruct()

  - ### isTemplate

    public boolean isTemplate()

  - ### isUnion

    public boolean isUnion()

  - ### isCoclass

    public boolean isCoclass()

  - ### isCointerface

    public boolean isCointerface()

  - ### isUnsigned

    public boolean isUnsigned()

  - ### isVarArgs

    public boolean isVarArgs()

  - ### isVoid

    public boolean isVoid()

  - ### setEnumType

    public String setEnumType()

  - ### getBasedName

    public String getBasedName()

  - ### setBasedName

    public void setBasedName(String basedName)

  - ### getMemberScope

    public String getMemberScope()

  - ### setMemberScope

    public void setMemberScope(String memberScope)

  - ### isPrimitive

    public boolean isPrimitive()

  - ### getSignature

    public String getSignature()
    Description copied from interface: `Demangled`
    Generates a complete representation of this object to include all know attributes of this object
    Specified by:
      `getSignature` in interface `Demangled`
    Overrides:
      `getSignature` in class `DemangledType`
    Returns:
      the signature

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `DemangledType`