CommandTree

CommandTree is more complex then CommandChain.

CommandTree support navigation between internal unit, for example, you can navigate from one step to another. The support is done by definition in the transition map XML file.

Here is an example of transition map XML file:

<map Injection="transitions">
  <entry key="step1.false" value="continue"/>
  <entry key="step2.true" value="step3"/>
</map>
Current® implementation only supports two keywords:
  • continue. It means that go to next step
  • return. It means that terminate this command navigations

All internal units must be Action

To support the transitions, all internal executable units must be Action. Action has two parameter:

You must define entry and exit Actions. Otherwise the CommandTree will go into a loop.

And the return transition has the same effect as exit.

<tree id="testNormalTree">
  <list Injection="commands">
   <com.ibm.btt.ut.COMM1 id="step1" type="entry"/>
   <com.ibm.btt.ut.COMM2 id="step2"/>
   <com.ibm.btt.ut.COMM1 id="step3" type="exit"/>
  </list>
  <map Injection="transitions">
   <entry key="step1.false" value="continue"/>
   <entry key="step2.true" value="return"/>
  </map>
</tree>