1 19 package org.sample.registry.model; 20 21 import org.sample.registry.model.v09.Registry09; 22 import org.sample.registry.model.v09.Service09; 23 24 public interface RegistryVisitor { 25 26 void visit(Registry component); 27 void visit(Entries component); 28 void visit(KnownTypes component); 29 void visit(Service component); 30 void visit(ServiceProvider component); 31 void visit(ServiceType component); 32 void visit(Registry09 component); 33 void visit(Service09 component); 34 35 38 public static class Default implements RegistryVisitor { 39 public void visit(Registry component) { 40 visitChild(); 41 } 42 public void visit(Registry09 component) { 43 visitChild(); 44 } 45 public void visit(Entries component) { 46 visitChild(); 47 } 48 public void visit(KnownTypes component) { 49 visitChild(); 50 } 51 public void visit(Service component) { 52 visitChild(); 53 } 54 public void visit(Service09 component) { 55 visitChild(); 56 } 57 public void visit(ServiceProvider component) { 58 visitChild(); 59 } 60 public void visit(ServiceType component) { 61 visitChild(); 62 } 63 protected void visitChild() { 64 } 65 } 66 67 70 public static class Deep extends Default { 71 protected void visitChild(RegistryComponent component) { 72 for (RegistryComponent child : component.getChildren()) { 73 child.accept(this); 74 } 75 } 76 } 77 } 78 | Popular Tags |