# Interface: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICDecompilableElement
- Super interfaces: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICSourceElement`

Top\-level C AST interface representing a decompilable element under an [ICSource](com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICSource.md).

## Static Final Field: STATUS_ERROR
Type: `int`

Constant value: `2`

## Static Final Field: STATUS_LIMITED
Type: `int`

Constant value: `3`

## Static Final Field: STATUS_NORMAL
Type: `int`

Constant value: `0`

## Static Final Field: STATUS_STALE
Type: `int`

Constant value: `4`

## Static Final Field: STATUS_UNINITIALIZED
Type: `int`

Constant value: `1`

## Abstract Method: addDecompilationNote
- parameter: `note`, type: `java.lang.String`
- return type: `boolean`

Description: 
parameter: note: 
return: 

## Abstract Method: duplicate
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICDecompilableElement`


## Abstract Method: getAddress
- return type: `java.lang.String`


## Default Method: getClassFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICClassFactory`

Description: Convenience method.
return: 

## Default Method: getConstantFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICConstantFactory`

Description: Convenience method.
return: 

## Abstract Method: getDecompilationNotes
- return type: `java.util.List<java.lang.String>`

Description: 
return: 

## Default Method: getElementFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICElementFactory`

Description: Convenience method.
return: 

## Default Method: getFieldFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICFieldFactory`

Description: Convenience method.
return: 

## Abstract Method: getFlags
- return type: `int`


## Abstract Method: getGlobalContext
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICGlobalContext`


## Abstract Method: getIndex
- return type: `int`


## Default Method: getMethodFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICMethodFactory`

Description: Convenience method.
return: 

## Default Method: getOperatorFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICOperatorFactory`

Description: Convenience method.
return: 

## Abstract Method: getStatusCode
- return type: `int`

Description: Retrieve the status code of this decompilation output, one of `STATUS_xxx`.
return: 

## Abstract Method: getStatusMessage
- return type: `java.lang.String`


## Default Method: getTypeFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICTypeFactory`

Description: Convenience method.
return: 

## Abstract Method: isExternal
- return type: `boolean`


## Abstract Method: reset


## Abstract Method: setStatus
- parameter: `status`, type: `int`
- parameter: `message`, type: `java.lang.String`

Description: Set the AST object decompilation status.  

  This method is used by the decompiler engine to indicate whether the decompilation succeeded.  In practice, this means: was the decompiler able to decompile and fill the method body  appropriately? Typically, a hard failure results in an empty body. A dependency update  results in a stale body \(the output is kept as\-if, even though it is no longer accurate\). The  AST renderer uses this flag to add and customize the decompiled output \(for instance, add  comments to let the user know that the method could not be decompiled\)
parameter: status: 
parameter: message: 

## Abstract Method: setStatusCode
- parameter: `status`, type: `int`

Description: Update the status code for this AST.
parameter: status: any of `STATUS_xxx`

