Class ReadOnlyDataTypeComponent

  • All Implemented Interfaces:
    DataTypeComponent, java.io.Serializable

    public class ReadOnlyDataTypeComponent
    extends java.lang.Object
    implements DataTypeComponent, java.io.Serializable
    DataTypeComponents from dataTypes that can not be modified.
    See Also:
    Serialized Form
    • Constructor Detail

      • ReadOnlyDataTypeComponent

        public ReadOnlyDataTypeComponent​(DataType dataType,
                                         DynamicDataType parent,
                                         int length,
                                         int ordinal,
                                         int offset,
                                         java.lang.String fieldName,
                                         java.lang.String comment)
        Create a new DataTypeComponent
        Parameters:
        dataType - the dataType for this component
        parent - the dataType that this component belongs to
        length - the length of the dataType in this component.
        offset - the byte offset within the parent
        ordinal - the index of this component in the parent.
        fieldName - the name associated with this component
        comment - the comment associated with ths component
      • ReadOnlyDataTypeComponent

        public ReadOnlyDataTypeComponent​(DataType dataType,
                                         DynamicDataType parent,
                                         int length,
                                         int ordinal,
                                         int offset)
        Create a new DataTypeComponent
        Parameters:
        dataType - the dataType for this component
        parent - the dataType that this component belongs to
        length - the length of the dataType in this component.
        ordinal - the index of this component in the parent.
        offset - the byte offset within the parent
    • Method Detail

      • isBitFieldComponent

        public boolean isBitFieldComponent()
        Description copied from interface: DataTypeComponent
        Determine if the specified component corresponds to a bit-field.
        Specified by:
        isBitFieldComponent in interface DataTypeComponent
        Returns:
        true if bit-field else false
      • isZeroBitFieldComponent

        public boolean isZeroBitFieldComponent()
        Description copied from interface: DataTypeComponent
        Determine if the specified component corresponds to a zero-length bit-field.
        Specified by:
        isZeroBitFieldComponent in interface DataTypeComponent
        Returns:
        true if zero-length bit-field else false
      • getOffset

        public int getOffset()
        Description copied from interface: DataTypeComponent
        Get the byte offset of where this component begins relative to the start of the parent data type.
        Specified by:
        getOffset in interface DataTypeComponent
        Returns:
        offset of start of component relative to the start of the parent data type.
      • getEndOffset

        public int getEndOffset()
        Description copied from interface: DataTypeComponent
        Get the byte offset of where this component ends relative to the start of the parent data type.
        Specified by:
        getEndOffset in interface DataTypeComponent
        Returns:
        offset of end of component relative to the start of the parent data type.
      • getComment

        public java.lang.String getComment()
        Description copied from interface: DataTypeComponent
        Get the comment for this dataTypeComponent.
        Specified by:
        getComment in interface DataTypeComponent
        Returns:
        component comment string or null if one has not been set
      • setComment

        public void setComment​(java.lang.String comment)
        Description copied from interface: DataTypeComponent
        Sets the comment for the component.
        Specified by:
        setComment in interface DataTypeComponent
        Parameters:
        comment - this components comment or null to clear comment.
      • getFieldName

        public java.lang.String getFieldName()
        Description copied from interface: DataTypeComponent
        Get the name of the field name as a component of a Data Type.
        Specified by:
        getFieldName in interface DataTypeComponent
        Returns:
        the name as a component of another Data Type.
      • getDefaultFieldName

        public java.lang.String getDefaultFieldName()
        Description copied from interface: DataTypeComponent
        Returns a default Field name. Used only if a field name is not set.
        Specified by:
        getDefaultFieldName in interface DataTypeComponent
        Returns:
        default field name
      • setFieldName

        public void setFieldName​(java.lang.String fieldName)
                          throws DuplicateNameException
        Description copied from interface: DataTypeComponent
        Sets the field name. If the field name is empty it will be set to null, which is the default field name. An exception is thrown if one of the parent's other components already has the specified field name.
        Specified by:
        setFieldName in interface DataTypeComponent
        Parameters:
        fieldName - the new field name for this component.
        Throws:
        DuplicateNameException - if another component of the parent has the specified field name.
      • getParent

        public DataType getParent()
        Description copied from interface: DataTypeComponent
        returns the dataType that contains this component.
        Specified by:
        getParent in interface DataTypeComponent
        Returns:
        the dataType that contains this component.
      • getLength

        public int getLength()
        Description copied from interface: DataTypeComponent
        Get the length of this component. Zero-length components will report a length of 0 and may overlap other components at the same offset. Similarly, multiple adjacent bit-field components may appear to overlap at the byte-level.
        Specified by:
        getLength in interface DataTypeComponent
        Returns:
        the length of this component
      • getOrdinal

        public int getOrdinal()
        Description copied from interface: DataTypeComponent
        Get the ordinal position within the parent dataType.
        Specified by:
        getOrdinal in interface DataTypeComponent
        Returns:
        ordinal of this component within the parent data type.
      • getDefaultSettings

        public Settings getDefaultSettings()
        Description copied from interface: DataTypeComponent
        Gets the default settings for this data type component.
        Specified by:
        getDefaultSettings in interface DataTypeComponent
        Returns:
        a Settings object that is the set of default values for this dataType component
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • isEquivalent

        public boolean isEquivalent​(DataTypeComponent dtc)
        Description copied from interface: DataTypeComponent
        Returns true if the given dataTypeComponent is equivalent to this dataTypeComponent. A dataTypeComponent is "equivalent" if the other component has a data type that is equivalent to this component's data type. The dataTypeComponents must also have the same offset, field name, and comment. The length is only checked for components which are dyanmic and whose size must be specified when creating a component.
        Specified by:
        isEquivalent in interface DataTypeComponent
        Parameters:
        dtc - the dataTypeComponent being tested for equivalence.
        Returns:
        true if the given dataTypeComponent is equivalent to this dataTypeComponent.