# Interface: com.pnfsoftware.jeb.core.units.code.ICodeItem

Definition of a generic code object.

## Static Field: FLAG_ABSTRACT
Type: `int`

Constant value: `1024`
Description: Abstract item flag.

## Static Field: FLAG_ANNOTATION
Type: `int`

Constant value: `8192`
Description: Annotation item flag.

## Static Field: FLAG_ANONYMOUS
Type: `int`

Constant value: `2097152`
Description: Anonymous item flag.

## Static Field: FLAG_ARTIFICIAL
Type: `int`

Constant value: `1073741824`
Description: Artificial item flag.

## Static Field: FLAG_BRIDGE
Type: `int`

Constant value: `64`
Description: Bridge item flag.

## Static Field: FLAG_CONSTRUCTOR
Type: `int`

Constant value: `65536`
Description: Constructor item flag.

## Static Field: FLAG_DECLARED_SYNCHRONIZED
Type: `int`

Constant value: `131072`
Description: Declared\-synchronized item flag.

## Static Field: FLAG_DESTRUCTOR
Type: `int`

Constant value: `536870912`
Description: Destructor item flag.

## Static Field: FLAG_ENUM
Type: `int`

Constant value: `16384`
Description: Enumeration item flag.

## Static Field: FLAG_FINAL
Type: `int`

Constant value: `16`
Description: Final item flag.

## Static Field: FLAG_INNER
Type: `int`

Constant value: `1048576`
Description: Inner item flag.

## Static Field: FLAG_INTERFACE
Type: `int`

Constant value: `512`
Description: Interface item flag.

## Static Field: FLAG_INTERNAL
Type: `int`

Constant value: `-2147483648`
Description: Internal item flag.

## Static Field: FLAG_NATIVE
Type: `int`

Constant value: `256`
Description: Native item flag.

## Static Field: FLAG_PRIVATE
Type: `int`

Constant value: `2`
Description: Private visibility flag.

## Static Field: FLAG_PROTECTED
Type: `int`

Constant value: `4`
Description: Protected visibility flag.

## Static Field: FLAG_PUBLIC
Type: `int`

Constant value: `1`
Description: Public visibility flag.

## Static Field: FLAG_STATIC
Type: `int`

Constant value: `8`
Description: Static item flag.

## Static Field: FLAG_STRICT
Type: `int`

Constant value: `2048`
Description: Strict item flag.

## Static Field: FLAG_SYNCHRONIZED
Type: `int`

Constant value: `32`
Description: Synchronized item flag.

## Static Field: FLAG_SYNTHETIC
Type: `int`

Constant value: `4096`
Description: Synthetic item flag.

## Static Field: FLAG_TRANSIENT
Type: `int`

Constant value: `128`
Description: Transient item flag.

## Static Field: FLAG_VARARGS
Type: `int`

Constant value: `128`
Description: Varargs item flag.

## Static Field: FLAG_VIRTUAL
Type: `int`

Constant value: `268435456`
Description: Virtual item flag.

## Static Field: FLAG_VOLATILE
Type: `int`

Constant value: `64`
Description: Volatile item flag.

## Method: getAddress
- parameter: `effective`, type: `boolean`
- return type: `java.lang.String`

Description: Get the item address.
parameter: effective: true to get the effective address
return: the item address

## Method: getAddress
- return type: `java.lang.String`

Description: Get the item address.
return: the item address

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

Description: Get the canonicalized generic flags for that code item. Examples include access flags or structural flags.
return: bit mask of `ICodeItem.FLAG_*` values

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

Description: Get the item index. The meaning of the index is specific to the code unit produced the item.
return: the item index

## Method: getItemId
- return type: `long`

Description: Get the item identifier.
return: the item identifier

## Method: getName
- parameter: `effective`, type: `boolean`
- return type: `java.lang.String`

Description: Get the item simple name. 

 If the item is qualified, the non\-qualified name should be returned.
parameter: effective: true to get the actual name, false to return the original name \(if the unit            allows the modification of items\)
return: the name

## Method: getName
- return type: `java.lang.String`

Description: Get the item name. The effective name is returned. 

 If the item is qualified, the non\-qualified name should be returned.
return: the effective name

## Method: getSignature
- parameter: `effective`, type: `boolean`
- return type: `java.lang.String`

Description: Get the item signature.
parameter: effective: true to get the actual signature, false to return the original signature \(if            the unit allows the modification of items\)
return: the signature

## Method: getSignature
- parameter: `effective`, type: `boolean`
- parameter: `internal`, type: `boolean`
- return type: `java.lang.String`

Description: Get the item signature.
parameter: effective: true to get the actual signature, false to return the original signature \(if            the unit allows the modification of items\)
parameter: internal: true to generate internal names \(default\); false to generate user\-friendly            signatures \(may be the same as the internal signatures\)
return: the signature

## Method: getSignature
- return type: `java.lang.String`

Description: Get the item signature. The effective name is returned.
return: the effective signature

## Method: isArtificial
- return type: `boolean`

Description: Determine if the item was part of the original code unit, or was added after processing complete \(eg, by a third\-party client\). 

 This is a convenience method that checks whether [#FLAG_ARTIFICIAL](#FLAG_ARTIFICIAL) is set.
return: true if the item is artificial

## Method: isInternal
- return type: `boolean`

Description: Determine if the item is internal or external. An internal item is defined within its unit, whereas an external item may just be a reference to an item defined in a separate unit. 

 This is a convenience method that checks whether [#FLAG_INTERNAL](#FLAG_INTERNAL) is set.
return: true if the item is internal

