public abstract class

AbstractOptimizer

extends AbstractPlugin
implements IOptimizer<T>
java.lang.Object
   ↳ com.pnfsoftware.jeb.core.AbstractPlugin
     ↳ com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.AbstractOptimizer<T>
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Skeleton for a generic artifact optimizer.

Summary

[Expand]
Inherited Constants
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.IOptimizer
Fields
protected static final ILogger logger
Public Constructors
AbstractOptimizer()
AbstractOptimizer(T target)
Public Methods
OptimizerClassId getClassId()
Retrieve the class id of this optimizer.
double getDefaultPriority()
Return a default priority: 0.
String getName()
EditablePluginInformation getPluginInformation()
Retrieve basic information about the plugin, such as name, version, author, and organization.
int getPostProcessingAction()
Get the action that should be executed after the optimizer was executed successfully and optimized code.
int getPreferredExecutionStage()
This method is used for on-demand optimizers only.
int getRequiredModeThreshold()
Specify the maximum master-optimizer threshold.
T getTarget()
Get the optimizer's target.
OptimizerType getType()
Retrieve the type of this optimizer.
void setPostProcessingActionFlags(int postProcActionFlags)
T setTarget(T target)
Set the optimizer's target.
Protected Methods
void setClassId(OptimizerClassId classId)
void setName(String name)
void setPreferredExecutionStage(int preferredExecStage)
Use only for type ON_DEMAND.
void setPreferredStage(int preferredExecStage)
void setRequiredModeThreshold(int threshold)
Set the threshold.
void setType(OptimizerType type)
Set the type of optimizer.
[Expand]
Inherited Methods
From class com.pnfsoftware.jeb.core.AbstractPlugin
From class java.lang.Object
From interface com.pnfsoftware.jeb.core.IPlugin
From interface com.pnfsoftware.jeb.core.units.code.asm.decompiler.opt.IOptimizer

Fields

protected static final ILogger logger

Public Constructors

public AbstractOptimizer ()

public AbstractOptimizer (T target)

Public Methods

public OptimizerClassId getClassId ()

Retrieve the class id of this optimizer.

public double getDefaultPriority ()

Return a default priority: 0.

Returns
  • the default priority

public String getName ()

public EditablePluginInformation getPluginInformation ()

Retrieve basic information about the plugin, such as name, version, author, and organization.

Returns
  • the plugin information

public int getPostProcessingAction ()

Get the action that should be executed after the optimizer was executed successfully and optimized code. Post-processing actions may involve re-optimizing; if so, re-optimizations are not performed recursively, ie, post-processing actions will not trigger additional post-processing actions.

Returns
  • one of PPA_* constants; 0 means none

public int getPreferredExecutionStage ()

This method is used for on-demand optimizers only.

public int getRequiredModeThreshold ()

Specify the maximum master-optimizer threshold. Refer to AbstractMasterOptimizer for existing thresholds.

public T getTarget ()

Get the optimizer's target.

public OptimizerType getType ()

Retrieve the type of this optimizer.

public void setPostProcessingActionFlags (int postProcActionFlags)

public T setTarget (T target)

Set the optimizer's target.

Protected Methods

protected void setClassId (OptimizerClassId classId)

protected void setName (String name)

protected void setPreferredExecutionStage (int preferredExecStage)

Use only for type ON_DEMAND. Disregarded for other types. Leave to 0 for pure on-demand.

Parameters
preferredExecStage id such that abs(id) is in [1, 99] ; use positive value for post-stage execution, negative value for pre-stage execution

protected void setPreferredStage (int preferredExecStage)

Use setPreferredExecutionStage(int). Left out for backward compatibility with existing plugins

protected void setRequiredModeThreshold (int threshold)

Set the threshold. The default value MODE_NORMAL.

protected void setType (OptimizerType type)

Set the type of optimizer. The default is STANDARD. Optimizers with a type ON_DEMAND must also set their preferred execution stage (else they will never run).