Class AbstractJStatementOptimizer

All Implemented Interfaces:
IPlugin, IJOptimizer

public abstract class AbstractJStatementOptimizer extends AbstractJOptimizer
A specialized skeleton implementation for a method AST optimizer meant to run on every statement of AST code of the method, recursively. This optimizer may be used to optimize AST methods only, not AST classes.

Refer to the javadoc of the parent types for more information.

  • Constructor Details

    • AbstractJStatementOptimizer

      public AbstractJStatementOptimizer()
      Create a standard optimizer.
    • AbstractJStatementOptimizer

      public AbstractJStatementOptimizer(JOptimizerType type)
      Create an optimizer.
      Parameters:
      type -
    • AbstractJStatementOptimizer

      public AbstractJStatementOptimizer(JOptimizerType type, String name)
      Create an optimizer.
      Parameters:
      type -
      name -
  • Method Details

    • perform

      public int perform()
      The default implementation calls performInternal(IJavaBlock) on the input AST method, if the element to be optimized is a method.

      It may be overridden, although it is not recommended.

      Specified by:
      perform in class AbstractJOptimizer
      Returns:
      the number of optimizations performed, 0 if none
    • performInternal

      protected int performInternal(IJavaBlock b)
      The default implementation calls optimizeStatement(IJavaStatement) on all statements of the AST method to be optimized. The method tree is visited in depth, statements are optimized pre-visit.

      It may be overridden, although it is not recommended.

      Parameters:
      b -
      Returns:
      number of optimizations performed
    • optimizeStatement

      public abstract int optimizeStatement(IJavaStatement stm)
      Optimize an AST statement. Optimizers must implement this method.
      Parameters:
      stm - statement to be optimized
      Returns:
      number of optimizations performed