public interface

IJOptimizer

implements IPlugin
com.pnfsoftware.jeb.core.units.code.java.IJOptimizer
Known Indirect Subclasses

Class Overview

Plugin interface for dexdec (DEX decompiler) AST optimizer plugins. They are used to optimize a class or method AST.

Implementors should not implement this interface directly: instead, extend AbstractJOptimizer, AbstractJBlockOptimizer, or AbstractJStatementOptimizer.

Summary

Public Methods
abstract String getName()
Retrieve the plugin name.
abstract double getPriority()
Get the optimizer priority.
abstract JOptimizerType getType()
Get the optimizer type.
abstract boolean isEnabled()
Determine whether the optimizer is enabled or not.
abstract int perform(IJavaDecompilableElement elt)
Run the optimizer on the provided target element (method or class).
[Expand]
Inherited Methods
From interface com.pnfsoftware.jeb.core.IPlugin

Public Methods

public abstract String getName ()

Retrieve the plugin name. Should be consistent with the value returned by getPluginInformation().getName().

public abstract double getPriority ()

Get the optimizer priority. A higher value means a higher priority. Priorities are used by optimizer orchestrators to determine in which order optimizers should be executed.

Returns
  • the default priority

public abstract JOptimizerType getType ()

Get the optimizer type. Types are used by optimizer orchestrators to determine whether an optimizer should run.

public abstract boolean isEnabled ()

Determine whether the optimizer is enabled or not. This method is used by optimizer orchestrators to determine whether an optimizer can be scheduled for execution.

Returns
  • true if this optimizer is enabled

public abstract int perform (IJavaDecompilableElement elt)

Run the optimizer on the provided target element (method or class).

Parameters
elt an AST element, such as an IJavaMethod or IJavaClass
Returns
  • number of optimizations performed