home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / beans / ProxyPersistenceDelegate.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  1.2 KB  |  33 lines

  1. package java.beans;
  2.  
  3. import java.lang.reflect.InvocationHandler;
  4. import java.lang.reflect.Proxy;
  5. import java.util.Vector;
  6.  
  7. class ProxyPersistenceDelegate extends PersistenceDelegate {
  8.    protected Expression instantiate(Object var1, Encoder var2) {
  9.       Class var3 = var1.getClass();
  10.       Proxy var4 = (Proxy)var1;
  11.       InvocationHandler var5 = Proxy.getInvocationHandler(var4);
  12.       if (var5 instanceof EventHandler) {
  13.          EventHandler var6 = (EventHandler)var5;
  14.          Vector var7 = new Vector();
  15.          var7.add(var3.getInterfaces()[0]);
  16.          var7.add(var6.getTarget());
  17.          var7.add(var6.getAction());
  18.          if (var6.getEventPropertyName() != null) {
  19.             var7.add(var6.getEventPropertyName());
  20.          }
  21.  
  22.          if (var6.getListenerMethodName() != null) {
  23.             var7.setSize(4);
  24.             var7.add(var6.getListenerMethodName());
  25.          }
  26.  
  27.          return new Expression(var1, EventHandler.class, "create", var7.toArray());
  28.       } else {
  29.          return new Expression(var1, Proxy.class, "newProxyInstance", new Object[]{var3.getClassLoader(), var3.getInterfaces(), var5});
  30.       }
  31.    }
  32. }
  33.