java.lang.Object
software.amazon.smithy.rulesengine.logic.cfg.CfgBuilder

public final class CfgBuilder extends Object
Builder for constructing Control Flow Graphs with node deduplication.

This builder performs hash-consing during construction to share identical subtrees and prevent exponential growth.

  • Constructor Details

  • Method Details

    • build

      public Cfg build(CfgNode root)
      Build the CFG with the given root node.
      Parameters:
      root - Root node to use for the built CFG.
      Returns:
      the built CFG.
    • createCondition

      public CfgNode createCondition(Condition condition, CfgNode trueBranch, CfgNode falseBranch)
      Creates a condition node, reusing existing nodes when possible.
    • createCondition

      public CfgNode createCondition(ConditionReference condRef, CfgNode trueBranch, CfgNode falseBranch)
      Creates a condition node, reusing existing nodes when possible.
    • createResult

      public CfgNode createResult(Rule rule)
      Creates a result node representing a terminal rule evaluation.
    • createConditionReference

      public ConditionReference createConditionReference(Condition condition)
      Creates a canonical condition reference, handling negation and deduplication.