Class ParameterDefinitionImpl

java.lang.Object
ghidra.program.model.data.ParameterDefinitionImpl
All Implemented Interfaces:
ParameterDefinition, Comparable<ParameterDefinition>

public class ParameterDefinitionImpl extends Object implements ParameterDefinition
  • Constructor Details

    • ParameterDefinitionImpl

      public ParameterDefinitionImpl(String name, DataType dataType, String comment)
      Constructs a new ParameterImp with an unassigned ordinal. The ordinal will be established by the function definition.
      Parameters:
      name - the name of the parameter.
      dataType - the fixed-length datatype of the parameter
      comment - the comment to store about this parameter.
      Throws:
      IllegalArgumentException - if invalid parameter datatype specified
    • ParameterDefinitionImpl

      protected ParameterDefinitionImpl(String name, DataType dataType, String comment, int ordinal)
      Constructs a new ParameterImp
      Parameters:
      name - the name of the parameter.
      dataType - the fixed-length datatype of the parameter
      comment - the comment to store about this parameter.
      ordinal - the index of this parameter within the function signature.
      Throws:
      IllegalArgumentException - if invalid parameter datatype specified
  • Method Details

    • validateDataType

      public static DataType validateDataType(DataType dataType, DataTypeManager dtMgr, boolean voidOK) throws IllegalArgumentException
      Check the specified datatype for use as a return, parameter or variable type. It may not be suitable for other uses. The following datatypes will be mutated into a default pointer datatype:
      • Function definition datatype
      • An unsized/zero-element array
      Parameters:
      dataType - datatype to be checked. If null specified the DEFAULT datatype will be returned.
      dtMgr - target datatype manager (null permitted which will adopt default data organization)
      voidOK - true if checking return datatype and void is allow, else false.
      Returns:
      cloned/mutated datatype suitable for function parameters and variables (including function return data type).
      Throws:
      IllegalArgumentException - if an unacceptable datatype was specified
    • compareTo

      public final int compareTo(ParameterDefinition p)
      Specified by:
      compareTo in interface Comparable<ParameterDefinition>
    • getOrdinal

      public int getOrdinal()
      Description copied from interface: ParameterDefinition
      Get the parameter ordinal
      Specified by:
      getOrdinal in interface ParameterDefinition
      Returns:
      the ordinal (index) of this parameter within the function signature.
    • getComment

      public String getComment()
      Description copied from interface: ParameterDefinition
      Get the Comment for this variable
      Specified by:
      getComment in interface ParameterDefinition
      Returns:
      the comment
    • getDataType

      public DataType getDataType()
      Description copied from interface: ParameterDefinition
      Get the Data Type of this variable
      Specified by:
      getDataType in interface ParameterDefinition
      Returns:
      the data type of the variable
    • getLength

      public int getLength()
      Description copied from interface: ParameterDefinition
      Get the length of this variable
      Specified by:
      getLength in interface ParameterDefinition
      Returns:
      the length of the variable
    • getName

      public String getName()
      Description copied from interface: ParameterDefinition
      Get the Name of this variable.
      Specified by:
      getName in interface ParameterDefinition
      Returns:
      the name of the variable or null if no name has been specified.
    • setComment

      public void setComment(String comment)
      Description copied from interface: ParameterDefinition
      Set the comment for this variable
      Specified by:
      setComment in interface ParameterDefinition
      Parameters:
      comment - the comment
    • setDataType

      public void setDataType(DataType type)
      Description copied from interface: ParameterDefinition
      Set the Data Type of this variable.
      Specified by:
      setDataType in interface ParameterDefinition
      Parameters:
      type - dataType the fixed-length datatype of the parameter
    • setName

      public void setName(String name)
      Description copied from interface: ParameterDefinition
      Set the name of this variable.
      Specified by:
      setName in interface ParameterDefinition
      Parameters:
      name - the name
    • isEquivalent

      public boolean isEquivalent(Variable variable)
      Description copied from interface: ParameterDefinition
      Determine if a variable corresponds to a parameter which is equivalent to this parameter definition by both ordinal and datatype. Name is not considered relevant.
      Specified by:
      isEquivalent in interface ParameterDefinition
      Parameters:
      variable - variable to be compared with this parameter definition.
      Returns:
      true if the specified variable represents the same parameter by ordinal and dataType. False will always be returned if specified variable is not a Parameter.
    • isEquivalent

      public boolean isEquivalent(ParameterDefinition parm)
      Description copied from interface: ParameterDefinition
      Determine if parm is equivalent to this parameter definition by both ordinal and datatype. Name is not considered relevant.
      Specified by:
      isEquivalent in interface ParameterDefinition
      Parameters:
      parm - parameter definition to be compared with this parameter definition.
      Returns:
      true if the specified parameter definition represents the same parameter by ordinal and dataType.
    • toString

      public String toString()
      Overrides:
      toString in class Object