Registry{ private void displayTypes() via TypeList to DefinedType { before TypeList (@ System.out.println("Types:------------------------------"); @) before DefinedType(@ host.display(); @) } private void displayEntities() via EntityList to Entity { before EntityList (@ System.out.println("Entities:---------------------------"); @) before Entity(@ host.display(); @) } private void displayCategories() via CategoryList to {GeneratedCodeCategory,NonGeneratedCodeCategory} { before CategoryList (@ System.out.println("Categories:-------------------------"); @) before CodeCategory (@ host.display(); @) } public void display() (@ displayCategories(); displayTypes(); displayEntities(); @) } DefinedType { public void display() (@ PrintWriter pw = new PrintWriter(System.out); universal_trv0(new DisplayVisitor(pw)); pw.flush(); System.out.println(); @) } AccessKeyList { traversal display(DisplayVisitor) {to AccessKey;} public void display() (@ PrintWriter pw = new PrintWriter(System.out); display(new DisplayVisitor(pw)); pw.flush(); System.out.println(); @) } Entity { traversal displayEntity(DisplayVisitor) { bypassing {Entity,DefinedType} to *; } public void display() (@ PrintWriter pw = new PrintWriter(System.out); displayEntity(new DisplayVisitor(pw)); pw.flush(); System.out.println(); @) } CodeCategory { public void display() (@ PrintWriter pw = new PrintWriter(System.out); universal_trv0(new DisplayVisitor(pw)); pw.flush(); System.out.println(); @) }