[ 
https://issues.apache.org/jira/browse/CAMEL-23412?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Guillaume Nodet updated CAMEL-23412:
------------------------------------
    Fix Version/s: 4.21.0

> Add getChildren() to NamedNode for uniform model tree traversal
> ---------------------------------------------------------------
>
>                 Key: CAMEL-23412
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23412
>             Project: Camel
>          Issue Type: Improvement
>            Reporter: Guillaume Nodet
>            Assignee: Guillaume Nodet
>            Priority: Major
>             Fix For: 4.21.0
>
>
> h2. Problem
> ChoiceDefinition's when/otherwise children are invisible to generic model 
> tree walkers because getOutputs() returns List<ProcessorDefinition<?>> and 
> neither WhenDefinition nor OtherwiseDefinition extends ProcessorDefinition. 
> This forces every tree walker to special-case ChoiceDefinition — and several 
> don't, creating gaps (e.g., gatherAllNodeIds() misses when/otherwise node 
> IDs, forceAssignIds() skips them).
> CAMEL-23402 switched the structure dumper from JMX-based to model-walking and 
> added the missing OtherwiseDefinition to doFindType()'s special case. 
> However, it did not address the fundamental design issue: every new tree 
> walker must know to add the ChoiceDefinition special case, and the existing 
> ones that don't have it silently miss when/otherwise nodes.
> h2. Solution
> Add a getChildren() default method on NamedNode that returns List<NamedNode>, 
> providing a uniform API for tree traversal regardless of whether children are 
> ProcessorDefinition subclasses or not.
> This eliminates the ChoiceDefinition and TryDefinition special cases from 
> ProcessorDefinitionHelper.doFindType() (reducing ~110 lines to ~15 lines) and 
> fixes the gaps in gatherAllNodeIds(), resetAllAutoAssignedNodeIds(), and 
> forceAssignIds().



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to