Class ConstRewriter<T>

java.lang.Object
io.jenetics.prog.op.ConstRewriter<T>
Type Parameters:
T - the operation type the rewriter is working on
All Implemented Interfaces:
TreeRewriter<Op<T>>

public final class ConstRewriter<T> extends Object implements TreeRewriter<Op<T>>
This class rewrites constant expressions to its single value.

The following example shows how to use the rewriter for a double operation tree:

final TreeNode<Op<Double>> tree = MathExpr.parseTree("1 + 2 + 3 + 4");
ConstRewriter.ofType(Double.class).rewrite(tree);
assert tree.getValue().equals(Const.of(10.0));
Since:
5.2
Version:
5.2
  • Field Details

  • Method Details

    • type

      public Class<T> type()
      Return the operation type this rewriter is working on.
      Returns:
      the operation type this rewriter is working on
    • rewrite

      public int rewrite(TreeNode<Op<T>> node, int limit)
      Description copied from interface: TreeRewriter
      Applies the rewriting to the given (mutable) tree. The tree rewrite is done in place. Via the limit parameter, the termination of the tree-rewrite process can be guaranteed.
      Specified by:
      rewrite in interface TreeRewriter<T>
      Parameters:
      node - the tree to be rewritten
      limit - the maximal number this rewrite rule is applied to the given tree. This guarantees the termination of the rewrite method.
      Returns:
      the number of rewrites applied to the input tree
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • ofType

      public static <T> ConstRewriter<T> ofType(Class<? extends T> type)
      Create a new rewriter for constant operation subtrees (expressions).
      Type Parameters:
      T - the type of the operation tree
      Parameters:
      type - the type of the operation tree
      Returns:
      a new rewriter for constant operation subtrees (expressions)
      Throws:
      NullPointerException - if the given type is null