Class AgendaInquiryController.AgendaItemChildAccessor

java.lang.Object
org.kuali.rice.krms.impl.ui.AgendaInquiryController.AgendaItemChildAccessor
Enclosing class:
AgendaInquiryController

protected static class AgendaInquiryController.AgendaItemChildAccessor extends Object

This class abstracts getting and setting a child of an AgendaItemBo, making some recursive operations require less boiler plate.

The word 'child' in AgendaItemChildAccessor means child in the strict data structures sense, in that the instance passed in holds a reference to some other node (or null). However, when discussing the agenda tree and algorithms for manipulating it, the meaning of 'child' is somewhat different, and there are notions of 'sibling' and 'cousin' that are tossed about too. It's probably worth explaining that somewhat here:

General principals of relationships when talking about the agenda tree:

  • Generation boundaries (parent to child) are across 'When TRUE' and 'When FALSE' references.
  • "Age" among siblings invalid input: '&' cousins goes from top (oldest) to bottom (youngest).
  • siblings are related by 'Always' references.

This diagram of an agenda tree and the following examples seek to illustrate these principals: Example Agenda Items

Examples:

  • A is the parent of B, C, invalid input: '&' D
  • E is the younger sibling of A
  • B is the older cousin of C
  • C is the older sibling of D
  • F is the younger cousin of D