Advertisement
Guest User

Tanken

a guest
May 4th, 2008
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.42 KB | None | 0 0
  1. package net.lshift.java;
  2.  
  3. import net.lshift.java.dispatch.DynamicDispatch;
  4.  
  5. public class DynamicDispatchTest
  6. {
  7.  
  8.     /* the event hierarchy:
  9.      * Event
  10.      *  \
  11.      *   SystemEvent
  12.      *    \
  13.      *     AdditionEvent
  14.      */
  15.  
  16.     // define event listener interface
  17.     public interface EventListener
  18.     {
  19.         public boolean handleEvent(Event e);
  20.     }
  21.      
  22.     // implement it for some argument types
  23.     public class SuperEventListener implements EventListener
  24.     {
  25.         public boolean handleEvent(Event e) {
  26.             System.out.println("handleEvent(Event) in SuperEL called");
  27.             return true;
  28.         }
  29.     }
  30.      
  31.     public class MySystemEventListener
  32.         extends DynamicDispatchTest.SuperEventListener
  33.     {
  34.         public boolean handleEvent(SystemEvent e) {
  35.             System.out.println("handleEvent(SystemEvent) in SE called");
  36.             return true;
  37.         }
  38.     }  
  39.  
  40.     public void basicDispatchTest()
  41.     {
  42.         // create a dynamic dispatcher proxy
  43.         DynamicDispatchTest.EventListener aListener =
  44.             (DynamicDispatchTest.EventListener) DynamicDispatch.proxy(
  45.                 DynamicDispatchTest.EventListener.class,
  46.                 new MySystemEventListener());
  47.  
  48.         // this works fine
  49.         aListener.handleEvent(new AdditionEvent());
  50.         // this causes a NoSuchMethodError
  51.         aListener.handleEvent(new Event());
  52.     }
  53.  
  54. }
  55.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement