FileDocCategorySizeDatePackage
ServiceLocalProxy.javaAPI DocJBoss 4.2.13498Fri Jul 13 20:53:50 BST 2007org.jboss.ejb3.service

ServiceLocalProxy

public class ServiceLocalProxy extends org.jboss.ejb3.LocalProxy
author
Kabir Khan
version
$Revision: 60233 $

Fields Summary
private static final long
serialVersionUID
org.jboss.aspects.asynch.AsynchProvider
provider
Constructors Summary
public ServiceLocalProxy()


    
   
   
public ServiceLocalProxy(org.jboss.ejb3.Container container)

      super(container);
   
public ServiceLocalProxy(org.jboss.aspects.asynch.AsynchProvider provider, org.jboss.ejb3.Container container)

      super(container);
      this.provider = provider;
   
Methods Summary
public java.lang.ObjectgetAsynchronousProxy(java.lang.Object proxy)

      Class[] infs = proxy.getClass().getInterfaces();
      if (!ProxyUtils.isAsynchronous(infs))
      {
         Class[] interfaces = ProxyUtils.addAsynchProviderInterface(infs);
         AsynchMixin mixin = new AsynchMixin();
         ServiceLocalProxy handler = new ServiceLocalProxy(mixin, container);
         return Proxy.newProxyInstance(Thread.currentThread().getContextClassLoader(), interfaces, handler);
      }

      //I was already asynchronous
      return proxy;
   
public java.lang.Objectinvoke(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args)

      if (method.getDeclaringClass() == AsynchProvider.class)
      {
         return provider.getFuture();
      }

      Object ret = ProxyUtils.handleCallLocally((JBossProxy) proxy, this, method, args);
      if (ret != null)
      {
         return ret;
      }

      ServiceContainer sc = (ServiceContainer) container;
      return sc.localInvoke(method, args, (FutureHolder) provider);
   
public voidreadExternal(java.io.ObjectInput in)

      super.readExternal(in);
      provider = (AsynchProvider)in.readObject();
   
public java.lang.StringtoString()

      return container.getEjbName().toString();
   
public voidwriteExternal(java.io.ObjectOutput out)

      super.writeExternal(out);
      out.writeObject(provider);