Implement Traversals for Code Generation Start by asking 'What information does template expansion need?' The answer to this will determine the traversals the must be done in this cycle. Template expansion needs: o Macro Table o List of qualified methods o List of classes that can be forward declared in header o List of types that need defining header #included in header How do we collect this information? Traversal: visitEntities from Repository bypassing ParentEntity to Entity. Visitor: o Tests each Enitity to see if it qualifies (Need an AccessKeyList of a GeneratedCodeCategory) o If an Entity qualifies, use the traversal, collectContext, to collect the necessary context information. Then