# Interface: com.pnfsoftware.jeb.core.units.code.asm.type.IPrototypeItem
- Super interfaces: `com.pnfsoftware.jeb.core.units.code.asm.type.INativeType`, `com.pnfsoftware.jeb.core.units.code.ICodePrototype`

A native prototype.  

  A prototype item contains return\- and parameter types, calling convention, as well as other  calling convention attributes.  

  Note: a reference\-item to a prototype\-item is a function\-pointer type.

## Abstract Method: getCallingConvention
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.ICallingConvention`

Description: Retrieve the optional calling convention associated with the prototype.
return: calling convention, or null

## Abstract Method: getCountOfParameters
- return type: `int`

Description: Get the number of parameters.
return: parameter count

## Abstract Method: getCountOfReturns
- return type: `int`

Description: Get the number of return values.
return: return value count

## Abstract Method: getParameterNames
- return type: `java.util.List<java.lang.String>`

Description: Get optional parameter names.
return: optional parameter names, if they were provided with the prototype

## Abstract Method: getParameterTypes
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.type.INativeType>`

Description: Get parameter types.
return: parameter types

## Abstract Method: getPrototypeAttributes
- return type: `java.util.Collection<com.pnfsoftware.jeb.core.units.code.asm.type.PrototypeAttribute>`

Description: Retrieve the prototype attributes.
return: prototype attributes, never null

## Abstract Method: getReturnType
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.INativeType`

Description: Get the primary return type.
return: return type, or null

## Abstract Method: getReturnTypes
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.type.INativeType>`

Description: Get all return types.
return: return types

## Abstract Method: getRoutineName
- return type: `java.lang.String`

Description: Get the optional routine name.
return: optional routine name, if it was provided with the prototype

## Abstract Method: isNoReturn
- return type: `boolean`

Description: Convenience method.
return: true if the prototype is non\-returning

