# Class: com.pnfsoftware.jeb.core.units.code.java.AbstractJElementOptimizer

Base optimizer that visits and may replace sub\-elements of a method AST.

## Protected Constructor: AbstractJElementOptimizer

Description: Create a standard optimizer.

## Protected Constructor: AbstractJElementOptimizer
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.java.JOptimizerType`

Description: Create an optimizer.
parameter: type: optimizer type, or null to use [JOptimizerType#NORMAL](JOptimizerType#NORMAL)

## Protected Constructor: AbstractJElementOptimizer
- parameter: `type`, type: `com.pnfsoftware.jeb.core.units.code.java.JOptimizerType`
- parameter: `name`, type: `java.lang.String`

Description: Create an optimizer.
parameter: type: optimizer type, or null to use [JOptimizerType#NORMAL](JOptimizerType#NORMAL)
parameter: name: optimizer name, or null to derive one from the implementation class

## Protected Method: optimizeElement
- parameter: `e`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaElement`
- parameter: `parent`, type: `com.pnfsoftware.jeb.core.units.code.java.IJavaElement`
- return type: `com.pnfsoftware.jeb.core.units.code.java.IJavaElement`

Description: Optimize an AST element.
parameter: e: element to optimize
parameter: parent: parent element
return: replacement element, or null to leave the element unchanged

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


