Class PointerDataType

    • Field Detail

      • POINTER_LABEL_PREFIX

        public static final java.lang.String POINTER_LABEL_PREFIX
        See Also:
        Constant Field Values
      • POINTER_LOOP_LABEL_PREFIX

        public static final java.lang.String POINTER_LOOP_LABEL_PREFIX
        See Also:
        Constant Field Values
      • referencedDataType

        protected DataType referencedDataType
      • length

        protected int length
    • Constructor Detail

      • PointerDataType

        public PointerDataType()
        Creates a dynamically-sized default pointer data type. A dynamic pointer size of 4-bytes will be in used, but will adapt to a data type manager's data organization when resolved.
      • PointerDataType

        public PointerDataType​(DataTypeManager dtm)
        Creates a dynamically-sized default pointer data type. The pointer size is established dynamically based upon the data organization associated with the specified dtm but can adapt to another data type manager's data organization when resolved.
        Parameters:
        dtm - data-type manager whose data organization should be used
      • PointerDataType

        public PointerDataType​(DataType referencedDataType)
        Construct a dynamically-sized pointer to a referencedDataType A dynamic pointer size of 4-bytes will be in used, but will adapt to a data type manager's data organization when resolved.
        Parameters:
        referencedDataType - data type this pointer points to
      • PointerDataType

        public PointerDataType​(DataType referencedDataType,
                               int length)
        Construct a pointer of a specified length to a referencedDataType. Note: It is preferred to use default sized pointers when possible (i.e., length=-1, see PointerDataType(DataType)) instead of explicitly specifying the pointer length value.
        Parameters:
        referencedDataType - data type this pointer points to
        length - pointer length (values <= 0 will result in dynamically-sized pointer)
      • PointerDataType

        public PointerDataType​(DataType referencedDataType,
                               DataTypeManager dtm)
        Construct a dynamically-sized pointer to the given data type. The pointer size is established dynamically based upon the data organization associated with the specified dtm but can adapt to another data type manager's data organization when resolved.
        Parameters:
        dt - data type this pointer points to
        dtm - data-type manager whose data organization should be used
      • PointerDataType

        public PointerDataType​(DataType referencedDataType,
                               int length,
                               DataTypeManager dtm)
        Construct a pointer of a specified length to a referencedDataType. Note: It is preferred to use default sized pointers when possible (i.e., length=-1, see PointerDataType(DataType, DataTypeManager)) instead of explicitly specifying the pointer length value.
        Parameters:
        referencedDataType -
        length - pointer length (-1 will result in dynamically-sized pointer)
        dtm - associated data type manager whose data organization will be used
    • Method Detail

      • clone

        public final DataType clone​(DataTypeManager dtm)
        Description copied from interface: DataType
        Returns a new instance of this DataType with its universalID and SourceArchive identity retained. Note: for built-in DataType's, clone and copy should have the same affect.
        Specified by:
        clone in interface DataType
        Parameters:
        dtm - the data-type manager instance whose data-organization should apply.
      • getDataType

        public DataType getDataType()
        Description copied from interface: Pointer
        Returns the "pointed to" dataType
        Specified by:
        getDataType in interface Pointer
      • getLength

        public int getLength()
        Description copied from interface: DataType
        Get the length (number of 8-bit bytes) of this DataType.
        Specified by:
        getLength in interface DataType
        Returns:
        the length of this DataType
      • getDefaultLabelPrefix

        public java.lang.String getDefaultLabelPrefix()
        Description copied from interface: DataType
        Returns the appropriate string to use as the default label prefix in the absence of any data.
        Specified by:
        getDefaultLabelPrefix in interface DataType
        Overrides:
        getDefaultLabelPrefix in class AbstractDataType
        Returns:
        the default label prefix or null if none specified.
      • getDefaultLabelPrefix

        public java.lang.String getDefaultLabelPrefix​(MemBuffer buf,
                                                      Settings settings,
                                                      int len,
                                                      DataTypeDisplayOptions options)
        Description copied from interface: DataType
        Returns the appropriate string to use as the default label prefix.
        Specified by:
        getDefaultLabelPrefix in interface DataType
        Overrides:
        getDefaultLabelPrefix in class AbstractDataType
        Parameters:
        buf - memory buffer containing the bytes.
        settings - the Settings object
        options - options for how to format the default label prefix.
        Returns:
        the default label prefix or null if none specified.
      • getDisplayName

        public java.lang.String getDisplayName()
        Description copied from interface: DataType
        Gets the name for referring to this data type.
        Specified by:
        getDisplayName in interface DataType
        Overrides:
        getDisplayName in class AbstractDataType
        Returns:
        generic name for this Data Type (i.e.: Word)
      • getDescription

        public java.lang.String getDescription()
        Description copied from interface: DataType
        Get a String briefly describing this DataType.
        Specified by:
        getDescription in interface DataType
        Returns:
        a one-liner describing this DataType.
      • getValue

        public java.lang.Object getValue​(MemBuffer buf,
                                         Settings settings,
                                         int len)
        Description copied from interface: DataType
        Get 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
        Specified by:
        getValue in interface DataType
        Parameters:
        buf - the data buffer.
        settings - the settings to use.
        len - the number of bytes to get the value from.
        Returns:
        the data Object.
      • getValueClass

        public java.lang.Class<?> getValueClass​(Settings settings)
        Description copied from interface: DataType
        Get the Class of the value to be returned by this data type.
        Specified by:
        getValueClass in interface DataType
        Overrides:
        getValueClass in class DataTypeImpl
        Parameters:
        settings - the relevant settings to use or null for default.
        Returns:
        Class of the value to be returned by this data type or null if it can vary or is unspecified. Types which correspond to a string or char array will return the String class.
      • getAddressValue

        public static Address getAddressValue​(MemBuffer buf,
                                              int size,
                                              AddressSpace targetSpace)
        Generate an address value based upon bytes stored at the specified buf location
        Parameters:
        buf - memory buffer and stored pointer location
        size - pointer size in bytes
        targetSpace - address space for returned pointer
        Returns:
        pointer value or null if unusable buf or data
      • getRepresentation

        public java.lang.String getRepresentation​(MemBuffer buf,
                                                  Settings settings,
                                                  int len)
        Description copied from interface: DataType
        Get bytes from memory in a printable format for this type.
        Specified by:
        getRepresentation in interface DataType
        Parameters:
        buf - the data.
        settings - the settings to use for the representation.
        len - the number of bytes to represent.
        Returns:
        the representation of the data in this format, never null.
      • isEquivalent

        public boolean isEquivalent​(DataType dt)
        Description copied from interface: DataType
        Returns true if the given dataType is equivalent to this dataType. The precise meaning of "equivalent" is dataType dependent.
        Specified by:
        isEquivalent in interface DataType
        Overrides:
        isEquivalent in class BuiltIn
        Parameters:
        dt - the dataType being tested for equivalence.
        Returns:
        true if the if the given dataType is equivalent to this dataType.
      • dataTypeDeleted

        public void dataTypeDeleted​(DataType dt)
        Description copied from interface: DataType
        Informs this dataType that the given dataType has been deleted.
        TODO: This method is reserved for internal DB use and should be removed from the public DataType interface!!
        Specified by:
        dataTypeDeleted in interface DataType
        Overrides:
        dataTypeDeleted in class BuiltIn
        Parameters:
        dt - the dataType that has been deleted.
      • isDeleted

        public boolean isDeleted()
        Description copied from interface: DataType
        Returns true if this data type has been deleted and is no longer valid
        Specified by:
        isDeleted in interface DataType
        Overrides:
        isDeleted in class AbstractDataType
        Returns:
        true if this data type has been deleted and is no longer valid.
      • dataTypeReplaced

        public void dataTypeReplaced​(DataType oldDt,
                                     DataType newDt)
        Description copied from interface: DataType
        Informs this data type that the given oldDT has been replaced with newDT
        TODO: This method is reserved for internal DB use and should be removed from the public DataType interface!!
        Specified by:
        dataTypeReplaced in interface DataType
        Overrides:
        dataTypeReplaced in class BuiltIn
        Parameters:
        oldDt - old data type
        newDt - new data type
      • dataTypeNameChanged

        public void dataTypeNameChanged​(DataType dt,
                                        java.lang.String oldName)
        Description copied from interface: DataType
        Informs this data type that its name has changed from the indicated old name.
        TODO: This method is reserved for internal DB use and should be removed from the public DataType interface!!
        Specified by:
        dataTypeNameChanged in interface DataType
        Overrides:
        dataTypeNameChanged in class BuiltIn
        Parameters:
        dt - the data type whose name changed
        oldName - the data type's old name
      • dependsOn

        public boolean dependsOn​(DataType dt)
        Description copied from interface: DataType
        Returns true if this dataType depends on the existence of the given dataType. For example byte[] depends on byte. If byte were deleted, then byte[] would also be deleted.
        Specified by:
        dependsOn in interface DataType
        Overrides:
        dependsOn in class BuiltIn
        Parameters:
        dt - the dataType to test that this dataType depends on.
      • getPointer

        public static Pointer getPointer​(DataType dt,
                                         DataTypeManager dtm)
        Get a pointer data-type instance with a default size
        Parameters:
        dt - data-type referenced by pointer
        dtm - program data-type manager (required) a generic data-type will be returned if possible.
        Returns:
        signed integer data type
      • getPointer

        public static Pointer getPointer​(DataType dt,
                                         int pointerSize)
        Get a pointer data-type instance of the requested size. NOTE: The returned data-type will not be associated with any particular data-type-manager and may therefore not utilize dynamically-sized-pointers when a valid pointerSize is specified. If an invalid pointerSize is specified, a dynamically-size pointer will be returned whose length is based upon the default-data-organization.
        Parameters:
        dt - data-type referenced by pointer
        pointerSize - pointer size
        Returns:
        signed integer data type
      • newPointer

        public Pointer newPointer​(DataType dt)
        Description copied from interface: Pointer
        Creates a pointer to the indicated data type.
        Specified by:
        newPointer in interface Pointer
        Parameters:
        dt - the data type to point to.
        Returns:
        the newly created pointer.