public final class Transformer
extends java.lang.Object
Transformer
class contains static methods for common expression transformations.Modifier and Type | Method and Description |
---|---|
static Node |
standardize(Node expression)
Replace operations in expression with standard counterparts.
|
static Node |
substitute(Node expression,
java.lang.String name,
Node term)
Substitute given term for variables with specified name in expression.
|
static Node |
substitute(Node expression,
VariableProvider variableProvider) |
static Node |
substituteAllBindings(Node expression)
Substitute all bindings in given expression.
|
static Node |
substituteBinding(NodeBinding binding)
Apply given binding substitutions to underlying expression.
|
static Node |
transform(Node tree,
java.lang.Enum<?> indicator,
TransformerRule rule)
Transforms an expression using the given rule.
|
static Node |
transform(Node tree,
NodeTransformer transformer)
Transforms an expression using the given transformer.
|
static java.util.List<Node> |
transformAll(java.util.Collection<? extends Node> forest,
java.lang.Enum<?> indicator,
TransformerRule rule)
Transforms a collection of expressions using the given rule.
|
static java.util.List<Node> |
transformAll(java.util.Collection<? extends Node> forest,
NodeTransformer transformer)
Transforms a collection of expressions using the given rule.
|
public static Node substitute(Node expression, java.lang.String name, Node term)
Provided term instance is referenced in resulting expression w/o copying.
expression
- Expression in which substitution takes place.name
- Name of variables to be substituted.term
- Term to replace variables.java.lang.IllegalArgumentException
- if any of the parameters is null
.public static Node substitute(Node expression, VariableProvider variableProvider)
public static Node substituteBinding(NodeBinding binding)
binding
- Binding node to be substituted.java.lang.IllegalArgumentException
- if any of the parameters is null
.public static Node substituteAllBindings(Node expression)
Substitution applies non-recursively, i.e. any bindings found in bound values are not substituted.
expression
- Expression to be substituted.java.lang.IllegalArgumentException
- if any of the parameters is null
.public static Node standardize(Node expression)
Transformation considers only standard predicates.
expression
- Expression to be transformed.java.lang.IllegalArgumentException
- if any of the parameters is null
.public static Node transform(Node tree, java.lang.Enum<?> indicator, TransformerRule rule)
tree
- Expression to be transformed.indicator
- Node kind or operation id of nodes rule is to be applied to.rule
- Transformation rule.java.lang.IllegalArgumentException
- if any of the parameters is null
.public static Node transform(Node tree, NodeTransformer transformer)
tree
- Expression to be transformed.transformer
- Transformer for be used.java.lang.IllegalArgumentException
- if any of the parameters is null
.public static java.util.List<Node> transformAll(java.util.Collection<? extends Node> forest, java.lang.Enum<?> indicator, TransformerRule rule)
forest
- Collection of expressions to be transformed.indicator
- Node kind or operation id of nodes rule is to be applied to.rule
- Transformation rule.java.lang.IllegalArgumentException
- if any of the parameters is null
.public static java.util.List<Node> transformAll(java.util.Collection<? extends Node> forest, NodeTransformer transformer)
forest
- Collection of expressions to be transformed.transformer
- Transformer for be used.java.lang.IllegalArgumentException
- if any of the parameters is null
.