Package ghidra.program.model.data
Class ParameterDefinitionImpl
- java.lang.Object
-
- ghidra.program.model.data.ParameterDefinitionImpl
-
- All Implemented Interfaces:
ParameterDefinition
,java.lang.Comparable<ParameterDefinition>
public class ParameterDefinitionImpl extends java.lang.Object implements ParameterDefinition
-
-
Constructor Summary
Constructors Modifier Constructor Description ParameterDefinitionImpl(java.lang.String name, DataType dataType, java.lang.String comment)
Constructs a new ParameterImp with an unassigned ordinal.protected
ParameterDefinitionImpl(java.lang.String name, DataType dataType, java.lang.String comment, int ordinal)
Constructs a new ParameterImp
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(ParameterDefinition p)
java.lang.String
getComment()
Get the Comment for this variableDataType
getDataType()
Get the Data Type of this variableint
getLength()
Get the length of this variablejava.lang.String
getName()
Get the Name of this variable.int
getOrdinal()
Get the parameter ordinalboolean
isEquivalent(ParameterDefinition parm)
Determine if parm is equivalent to this parameter definition by both ordinal and datatype.boolean
isEquivalent(Variable variable)
Determine if a variable corresponds to a parameter which is equivalent to this parameter definition by both ordinal and datatype.void
setComment(java.lang.String comment)
Set the comment for this variablevoid
setDataType(DataType type)
Set the Data Type of this variable.void
setName(java.lang.String name)
Set the name of this variable.java.lang.String
toString()
static DataType
validateDataType(DataType dataType, DataTypeManager dtMgr, boolean voidOK)
Check the specified datatype for use as a return, parameter or variable type.
-
-
-
Constructor Detail
-
ParameterDefinitionImpl
public ParameterDefinitionImpl(java.lang.String name, DataType dataType, java.lang.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 parametercomment
- the comment to store about this parameter.- Throws:
java.lang.IllegalArgumentException
- if invalid parameter datatype specified
-
ParameterDefinitionImpl
protected ParameterDefinitionImpl(java.lang.String name, DataType dataType, java.lang.String comment, int ordinal)
Constructs a new ParameterImp- Parameters:
name
- the name of the parameter.dataType
- the fixed-length datatype of the parametercomment
- the comment to store about this parameter.ordinal
- the index of this parameter within the function signature.- Throws:
java.lang.IllegalArgumentException
- if invalid parameter datatype specified
-
-
Method Detail
-
validateDataType
public static DataType validateDataType(DataType dataType, DataTypeManager dtMgr, boolean voidOK) throws java.lang.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:
java.lang.IllegalArgumentException
- if an unacceptable datatype was specified
-
compareTo
public final int compareTo(ParameterDefinition p)
- Specified by:
compareTo
in interfacejava.lang.Comparable<ParameterDefinition>
-
getOrdinal
public int getOrdinal()
Description copied from interface:ParameterDefinition
Get the parameter ordinal- Specified by:
getOrdinal
in interfaceParameterDefinition
- Returns:
- the ordinal (index) of this parameter within the function signature.
-
getComment
public java.lang.String getComment()
Description copied from interface:ParameterDefinition
Get the Comment for this variable- Specified by:
getComment
in interfaceParameterDefinition
- Returns:
- the comment
-
getDataType
public DataType getDataType()
Description copied from interface:ParameterDefinition
Get the Data Type of this variable- Specified by:
getDataType
in interfaceParameterDefinition
- 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 interfaceParameterDefinition
- Returns:
- the length of the variable
-
getName
public java.lang.String getName()
Description copied from interface:ParameterDefinition
Get the Name of this variable.- Specified by:
getName
in interfaceParameterDefinition
- Returns:
- the name of the variable or null if no name has been specified.
-
setComment
public void setComment(java.lang.String comment)
Description copied from interface:ParameterDefinition
Set the comment for this variable- Specified by:
setComment
in interfaceParameterDefinition
- 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 interfaceParameterDefinition
- Parameters:
type
- dataType the fixed-length datatype of the parameter
-
setName
public void setName(java.lang.String name)
Description copied from interface:ParameterDefinition
Set the name of this variable.- Specified by:
setName
in interfaceParameterDefinition
- 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 interfaceParameterDefinition
- 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 interfaceParameterDefinition
- 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 java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-