# Interface: com.pnfsoftware.jeb.core.units.code.asm.items.INativeClassItem

Definition of a native class item, having a class type, methods, fields, and so on.

## Method: collectVirtualMethodOverrides
- parameter: `method`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`
- parameter: `overUp`, type: `java.util.Collection<com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem>`
- parameter: `overDown`, type: `java.util.Collection<com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem>`
- return type: `boolean`

Description: Collect methods overriding or overridden by a virtual method.
parameter: method: virtual method
parameter: overUp: output collection for overridden ancestors
parameter: overDown: output collection for overriding descendants
return: true if collection completed

## Method: getClassType
- return type: `com.pnfsoftware.jeb.core.units.code.asm.type.IClassType`


## Method: getConstructors
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem>`

Description: Retrieve constructors.
return: constructors

## Method: getCoordinatesOfVirtualMethod
- parameter: `method`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`
- return type: `com.pnfsoftware.jeb.util.base.Couple<java.lang.Integer,java.lang.Integer>`

Description: Retrieve virtual method coordinates.
parameter: method: virtual method
return: table and method indexes, or null

## Method: getDestructors
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem>`

Description: Retrieve destructors.
return: destructors

## Method: getFields
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.INativeFieldItem>`


## Method: getImplementedInterfaces
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.type.IClassType>`


## Method: getInstanceFields
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.INativeFieldItem>`

Description: Retrieve instance fields.
return: instance fields

## Method: getInstanceMethods
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem>`

Description: Get the instance methods defined in this class. \(Virtual methods defined in parent classes are not included.\) Not all instance methods may be virtual.
return: instance methods

## Method: getMethods
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem>`


## Method: getNonVirtualMethods
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem>`

Description: Get the non\-virtual, non\-static methods of this class.
return: non\-virtual methods

## Method: getStaticFields
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.INativeFieldItem>`

Description: Retrieve static fields.
return: static fields

## Method: getStaticMethods
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem>`

Description: Get the static methods of this class.
return: static methods

## Method: getSubtypes
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.type.INativeType>`

Description: Retrieve direct native subtypes.
return: native subtypes

## Method: getSupertypes
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.type.IClassType>`


## Method: getVirtualMethodFromCoordinates
- parameter: `tableIndex`, type: `int`
- parameter: `methodIndex`, type: `int`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`

Description: Retrieve a virtual method by coordinates.
parameter: tableIndex: virtual table index
parameter: methodIndex: method index within the virtual table
return: virtual method, or null

## Method: getVirtualMethods
- parameter: `onlyDefinedInThisClass`, type: `boolean`
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem>`

Description: Get the virtual methods of this class, including or not the virtual methods defined in parent classes that were not overridden \(and therefore, indirectly belonging to this class as well\).
parameter: onlyDefinedInThisClass: true to return only virtual methods defined in this class
return: virtual methods

## Method: getVirtualTables
- return type: `java.util.List<? extends com.pnfsoftware.jeb.core.units.code.asm.items.IMethodTable>`

Description: Retrieve virtual method tables.
return: virtual tables

## Method: renameVirtualMethod
- parameter: `method`, type: `com.pnfsoftware.jeb.core.units.code.asm.items.INativeMethodItem`
- parameter: `name`, type: `java.lang.String`
- return type: `boolean`

Description: Rename a virtual method.
parameter: method: virtual method
parameter: name: new name
return: true if the method was renamed

