# Interface: com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICDecompilableElement

Top\-level C AST interface representing a decompilable element under an [ICSource](ICSource).

## Static Field: STATUS_ERROR
Type: `int`

Constant value: `2`

## Static Field: STATUS_LIMITED
Type: `int`

Constant value: `3`

## Static Field: STATUS_NORMAL
Type: `int`

Constant value: `0`

## Static Field: STATUS_STALE
Type: `int`

Constant value: `4`

## Static Field: STATUS_UNINITIALIZED
Type: `int`

Constant value: `1`

## Method: addDecompilationNote
- parameter: `note`, type: `java.lang.String`
- return type: `boolean`

Description: 
parameter: note: 
return: 

## Method: duplicate
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICDecompilableElement`


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


## Method: getClassFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICClassFactory`

Description: Convenience method.
return: 

## Method: getConstantFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICConstantFactory`

Description: Convenience method.
return: 

## Method: getDecompilationNotes
- return type: `java.util.List<java.lang.String>`

Description: 
return: 

## Method: getElementFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICElementFactory`

Description: Convenience method.
return: 

## Method: getFieldFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICFieldFactory`

Description: Convenience method.
return: 

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


## Method: getGlobalContext
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICGlobalContext`


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


## Method: getMethodFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICMethodFactory`

Description: Convenience method.
return: 

## Method: getOperatorFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICOperatorFactory`

Description: Convenience method.
return: 

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

Description: Retrieve the status code of this decompilation output, one of `STATUS_xxx`.
return: 

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


## Method: getTypeFactory
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICTypeFactory`

Description: Convenience method.
return: 

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


## Method: reset


## 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: 

## Method: setStatusCode
- parameter: `status`, type: `int`

Description: Update the status code for this AST.
parameter: status: any of `STATUS_xxx`

