KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > caucho > ejb > hessian > HessianHomeHandle


1 /*
2  * Copyright (c) 1998-2006 Caucho Technology -- all rights reserved
3  *
4  * This file is part of Resin(R) Open Source
5  *
6  * Each copy or derived work must preserve the copyright notice and this
7  * notice unmodified.
8  *
9  * Resin Open Source is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * Resin Open Source is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, or any warranty
17  * of NON-INFRINGEMENT. See the GNU General Public License for more
18  * details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with Resin Open Source; if not, write to the
22  * Free SoftwareFoundation, Inc.
23  * 59 Temple Place, Suite 330
24  * Boston, MA 02111-1307 USA
25  *
26  * @author Scott Ferguson
27  */

28
29 package com.caucho.ejb.hessian;
30
31 import com.caucho.ejb.RemoteExceptionWrapper;
32 import com.caucho.ejb.protocol.AbstractHomeHandle;
33 import com.caucho.ejb.protocol.ClientContainer;
34
35 import javax.ejb.EJBHome JavaDoc;
36 import java.rmi.RemoteException JavaDoc;
37
38 /**
39  * Implementation for a home handle.
40  */

41 public class HessianHomeHandle extends AbstractHomeHandle {
42   private transient ClientContainer client;
43   private transient EJBHome JavaDoc home;
44
45   private String JavaDoc url;
46
47   /**
48    * Null arg constructor for serialization.
49    */

50   public HessianHomeHandle() {}
51
52   /**
53    * Creates a new HomeHandle.
54    *
55    * @param url the url for the bean
56    */

57   public HessianHomeHandle(String JavaDoc url)
58   {
59     this.url = url;
60   }
61
62   /**
63    * Creates a new HomeHandle.
64    *
65    * @param url the url for the bean
66    */

67   public HessianHomeHandle(EJBHome JavaDoc home, String JavaDoc url)
68   {
69     this.url = url;
70
71     this.home = home;
72   }
73   
74   /**
75    * Returns the EJBHome object associated with the handle.
76    */

77   public EJBHome JavaDoc getEJBHome()
78     throws RemoteException JavaDoc
79   {
80     if (home == null) {
81       try {
82         home = HessianClientContainer.find(url).getHomeStub();
83       } catch (Exception JavaDoc e) {
84         throw RemoteExceptionWrapper.create(e);
85       }
86     }
87     
88     return home;
89   }
90
91   /**
92    * Returns the handle's server id.
93    */

94   public String JavaDoc getServerId()
95   {
96     return url;
97   }
98
99   /**
100    * Returns the full URL
101    */

102   public String JavaDoc getURL(String JavaDoc protocol)
103   {
104     return url;
105   }
106
107   /**
108    * The printed representation of the handle is the url.
109    */

110   public String JavaDoc toString()
111   {
112     return url;
113   }
114 }
115
Popular Tags