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

Interface for decompiler\-C source customizers provided by decompiler plugins. 

 Those objects are provided by [INativeDecompilerPlugin#getSourceCustomizer(INativeDecompilerUnit)](INativeDecompilerPlugin#getSourceCustomizer(INativeDecompilerUnit)).

## Method: customizeRenderedConstant
- parameter: `cst`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICConstant<?>`
- parameter: `renderedText`, type: `java.lang.String`
- return type: `java.lang.String`

Description: Customize the rendered text for a constant.
parameter: cst: constant being rendered
parameter: renderedText: default rendered text
return: replacement rendered text, or null to keep the default text

## Method: generateClassDeclarationLine
- parameter: `elt`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICClass`
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`
- return type: `boolean`

Description: Generate a class declaration line.
parameter: elt: class element being rendered
parameter: out: output sink
return: true if the customizer generated the line

## Method: generateFieldDeclarationLine
- parameter: `elt`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICField`
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`
- return type: `boolean`

Description: Generate a field declaration line.
parameter: elt: field element being rendered
parameter: out: output sink
return: true if the customizer generated the line

## Method: generateMethodDeclarationLine
- parameter: `elt`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICMethod`
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`
- return type: `boolean`

Description: Generate a method declaration line.
parameter: elt: method element being rendered
parameter: out: output sink
return: true if the customizer generated the line

## Method: generateNativeStatement
- parameter: `elt`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICCustomStatement`
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`
- return type: `boolean`

Description: Generate a custom native statement.
parameter: elt: custom statement being rendered
parameter: out: output sink
return: true if the customizer generated the statement

## Method: generateOperation
- parameter: `elt`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICOperation`
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`
- return type: `boolean`

Description: Generate an operation.
parameter: elt: operation element being rendered
parameter: out: output sink
return: true if the customizer generated the operation

## Method: preFieldsGeneration
- parameter: `elt`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICClass`
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`
- return type: `boolean`

Description: Execute before class fields are generated.
parameter: elt: class element being rendered
parameter: out: output sink
return: true if the customizer emitted output

## Method: preMethodsGeneration
- parameter: `elt`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.ICClass`
- parameter: `out`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ast.COutputSink`
- return type: `boolean`

Description: Execute before class methods are generated.
parameter: elt: class element being rendered
parameter: out: output sink
return: true if the customizer emitted output

