java.lang.Object
com.darkcollective.relix.ast.internal.OperandWalker

public final class OperandWalker extends Object
A single, reusable structural walk over Operand expression trees (and the Predicate trees that contain them).

Several analyses each used to carry a near-identical switch that recursed the compound operands and differed only in their terminal action — the semantic validator's constant-argument / projected-operand / column-existence checks, and the processor's COVER factor-dependency collector. Centralising the recursion here gives every Operand/Predicate subtype a single registration point: when a new operand kind is added, only this walker needs the extra arm, and no caller can silently drop references inside it.

The walk recurses into every compound operand (BinaryArithmeticExpression, UnaryOperand, SetLiteralOperand, StructConstruction, ArrayConstruction, and a FunctionCall's arguments) and invokes:

Plain literals reference no columns and trigger no callback.

This module carries no dependencies beyond the JDK, so the walker is safe to reuse from any module that depends on the AST.

  • Method Details