Class 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 show 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
    • Method Detail

      • type

        public Class<Ttype()
        Return the operation type this rewriter is working on.
        Returns:
        the operation type this rewriter is working on
      • ofType

        public static <T> ConstRewriter<T> ofType​(Class<? extends T> type)
        Create a new rewriter for constant operation sub-trees (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 sub-trees (expressions)
        Throws:
        NullPointerException - if the given type is null