# Interface: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardTypeManager

A wildcard type manager manages wildcard types \(partially defined types\) used by JEB's native decompiler.

## Method: addListener
- parameter: `listener`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeItemListener`

Description: Register a listener relaying events generated by this type manager's type items.
parameter: listener: 

## Method: create
- parameter: `nativeTypeSignature`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`

Description: Create a wildcard type wrapping the provided native type signature. This is the easiest way to create a wildcard type that is an exact correspondence of a native type.
parameter: nativeTypeSignature: 
return: 

## Method: create
- parameter: `nativeType`, type: `com.pnfsoftware.jeb.core.units.code.asm.type.INativeType`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`

Description: Create a wildcard type wrapping the provided native type. This is the easiest way to create a wildcard type that is an exact correspondence of a native type.
parameter: nativeType: 
return: 

## Method: createPointer
- parameter: `pointedBitsize`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`

Description: Create a wildcard type pointer. Important note: the maximum size is set to be the size of one stack slot, ie, a stack slot is supposed to be able to contain a pointer.
parameter: pointedBitsize: 0 means unknown
return: a single\-slot wildcard type set to be a [pointer](Group#POINTER)

## Method: createPrototype
- parameter: `cc`, type: `com.pnfsoftware.jeb.core.units.code.asm.type.ICallingConvention`
- parameter: `retType`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`
- parameter: `paramTypes`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType>`
- parameter: `attributes`, type: `java.util.Collection<com.pnfsoftware.jeb.core.units.code.asm.type.PrototypeAttribute>`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardPrototype`

Description: Create a wildcard prototype.
parameter: cc: 
parameter: retType: 
parameter: paramTypes: 
parameter: attributes: 
return: 

## Method: createPrototype
- parameter: `cc`, type: `com.pnfsoftware.jeb.core.units.code.asm.type.ICallingConvention`
- parameter: `returnTypes`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType>`
- parameter: `paramTypes`, type: `java.util.List<com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType>`
- parameter: `attributes`, type: `java.util.Collection<com.pnfsoftware.jeb.core.units.code.asm.type.PrototypeAttribute>`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardPrototype`

Description: Create a wildcard prototype.
parameter: cc: 
parameter: returnTypes: 
parameter: paramTypes: 
parameter: attributes: 
return: 

## Method: createPrototype
- parameter: `nativePrototype`, type: `com.pnfsoftware.jeb.core.units.code.asm.type.IPrototypeItem`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardPrototype`

Description: Generate a wildcard prototype from the provided native prototype.
parameter: nativePrototype: a native prototype
return: the converted wildcard prototype

## Method: createWithBitsizes
- parameter: `maximumBitsize`, type: `int`
- parameter: `effectiveBitsize`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`

Description: Create a wildcard type having the provided maximum and effective bitsize.
parameter: maximumBitsize: maximum bitsize
parameter: effectiveBitsize: must be less than or equal to maximum bitsize
return: 

## Method: createWithEffectiveBitsize
- parameter: `effectiveBitsize`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`

Description: Create a wildcard type having the provided effective bitsize. The maximum bitsize will be the one of the smallest native integer primitive type that can accommodate the provided effective bitsize.
parameter: effectiveBitsize: 
return: 

## Method: createWithMaximumBitsize
- parameter: `maximumBitsize`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`

Description: Create a wildcard type having the provided maximum bitsize.
parameter: maximumBitsize: maximum bitsize
return: 

## Method: createWithSlotcount
- parameter: `slotcount`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`

Description: Create a wildcard type having a maximum bitsize matching the provided slot count \(eg, if a stack slot is 32\-bit, creating a wildcard type using this method with parameter 2 will generate a new wildcard type whose maximum bitsize is 64\). 

 A slot is typically the size of a standard general purpose register.
parameter: slotcount: 
return: 

## Method: getNativeTypeManager
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.ITypeManager`

Description: Retrieve the native type manager connected to this wildcard type manager.
return: 

## Method: getPointerBitsize
- return type: `int`

Description: 
return: 

## Method: getSlotBitsize
- return type: `int`

Description: 
return: 

## Method: parse
- parameter: `s`, type: `java.lang.String`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`

Description: Parse the string representation of a wildcard type. 

 Same as [parse\(s, 0\)](#parse(String, int))
parameter: s: type string
return: the type \(never null; the method throws on error\)

## Method: parse
- parameter: `s`, type: `java.lang.String`
- parameter: `physicalBitsizeHint`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ir.IWildcardType`

Description: Parse the string representation of a wildcard type.
parameter: s: type string
parameter: physicalBitsizeHint: optional, used only if the type string does not provide explicit            physical bitsize; 0 means use the type string physical bitsize or else, the            bitsize of a single slot
return: the type \(never null; the method throws on error\)

## Method: removeListener
- parameter: `listener`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeItemListener`

Description: Unregister a listener.
parameter: listener: 

