1
2 package org.onemind.commons.java.pattern;
3
4 import junit.framework.TestCase;
5 /***
6 * @author TiongHiang Lee (tlee@i2rd.com)
7 * @version $Id: DynamicVisitorTest.java,v 1.1 2004/10/31 16:03:44 thlee Exp $ $Name: $
8 */
9 public class DynamicVisitorTest extends TestCase
10 {
11
12 private class TestBaseClass
13 {
14 }
15
16 public class TestClass extends TestBaseClass
17 {
18 }
19
20 public class TestSubClass extends TestClass
21 {
22 }
23
24 public class TestVisitor extends DynamicVisitor
25 {
26
27 /***
28 * {@inheritDoc}
29 */
30 protected void initNodeHandlers()
31 {
32 addMethodNodeHandler(TestBaseClass.class, "visit");
33 addMethodNodeHandler(TestClass.class, "visit");
34 addMethodNodeHandler(TestSubClass.class, "visit");
35 }
36
37 public Object visit(TestBaseClass obj, Object[] data)
38 {
39 assertTrue(obj.getClass()==TestBaseClass.class);
40 return null;
41 }
42
43 public Object visit(TestClass obj, Object[] data)
44 {
45 assertTrue(obj.getClass()==TestClass.class);
46 return null;
47 }
48
49 public Object visit(TestSubClass obj, Object[] data)
50 {
51 assertTrue(obj.getClass()==TestSubClass.class);
52 return null;
53 }
54 };
55
56 public void testVisitor()
57 {
58 TestVisitor visitor = new TestVisitor();
59 }
60 }