# Class: com.pnfsoftware.jeb.core.units.code.asm.AbstractNativeDecompilerPlugin

Base implementation of an [INativeDecompilerPlugin](INativeDecompilerPlugin). Decompiler plugins should extend this class.

## Constructor: AbstractNativeDecompilerPlugin
- parameter: `type`, type: `java.lang.String`
- parameter: `priority`, type: `double`

Description: Create a native decompiler plugin.
parameter: type: plugin type identifier
parameter: priority: plugin priority

## Static Field: propnameASTOptimizerMaxRunCount
Type: `java.lang.String`

Constant value: `ASTOptimizerMaxRunCount`
Description: Property name for the AST optimizer maximum run count.

## Static Field: propnameDecryptorSupport
Type: `java.lang.String`

Constant value: `DecryptorSupport`
Description: Property name for decryptor support.

## Static Field: propnameEnableDeobfuscators
Type: `java.lang.String`

Constant value: `EnableDeobfuscators`
Description: Property name for enabling deobfuscators.

## Static Field: propnameEnableExternalPlugins
Type: `java.lang.String`

Constant value: `EnableExternalPlugins`
Description: Property name for enabling external plugins.

## Static Field: propnameEnableUnsafeOptimizers
Type: `java.lang.String`

Constant value: `EnableUnsafeOptimizers`
Description: Property name for enabling unsafe optimizers.

## Static Field: propnameIROptimizerMaxRunCount
Type: `java.lang.String`

Constant value: `IROptimizerMaxRunCount`
Description: Property name for the IR optimizer maximum run count.

## Static Field: propnameListOfDisabledExternalPlugins
Type: `java.lang.String`

Constant value: `ListOfDisabledExternalPlugins`
Description: Property name for the list of disabled external plugins.

## Static Field: propnameMemoryResolutionPolicy
Type: `java.lang.String`

Constant value: `MemoryResolutionPolicy`
Description: Property name for the memory resolution policy.

## Static Field: propnameMethodDecompilationTimeout
Type: `java.lang.String`

Constant value: `MethodDecompilationTimeout`
Description: Property name for the per\-method decompilation timeout.

## Static Field: propnameNextDecompKeepIR
Type: `java.lang.String`

Constant value: `NextDecompKeepIR`
Description: Property name for keeping the next decompilation IR.

## Static Field: propnameReconversionMaxCount
Type: `java.lang.String`

Constant value: `ReconversionMaxCount`
Description: Property name for the maximum reconversion count.

## Static Field: propnameStructurerUseVersion
Type: `java.lang.String`

Constant value: `StructurerUseVersion`
Description: Property name for selecting the structurer implementation version.

## Static Field: propnameUseFriendlyVariableNames
Type: `java.lang.String`

Constant value: `UseFriendlyVariableNames`
Description: Property name for using friendly variable names.

## Static Field: propnameUseWellKnownLiterals
Type: `java.lang.String`

Constant value: `UseWellKnownLiterals`
Description: Property name for using well\-known literal names.

## Method: getGlobalAnalyzer
- parameter: `decompiler`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.INativeDecompilerUnit<InsnType>`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.IGlobalAnalyzer`

Description: The default implementation returns null. By default, a decompiler plugin does not provide a global analyzer.

## Method: getPrimaryExtension
- parameter: `decompiler`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.INativeDecompilerUnit<InsnType>`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.INativeDecompilerExtension`

Description: The default implementation returns null. By default, a decompiler plugin does not provide a primary extension.

## Method: getSourceCustomizer
- parameter: `decompiler`, type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.INativeDecompilerUnit<InsnType>`
- return type: `com.pnfsoftware.jeb.core.units.code.asm.decompiler.ISourceCustomizer`

Description: The default implementation returns null. By default, a decompiler plugin does not provide a source customizer.

