KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectweb > openccm > descriptor > componentassembly > ccm > deployer > binder > HomeinterfaceDeployerHandler


1 /*====================================================================
2
3 OpenCCM: The Open CORBA Component Model Platform
4 Copyright (C) 2000-2004 INRIA - USTL - LIFL - GOAL
5 Contact: openccm@objectweb.org
6
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or any later version.
11
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
16
17 You should have received a copy of the GNU Lesser General Public
18 License along with this library; if not, write to the Free Software
19 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
20 USA
21
22 Initial developer(s): Briclet Frédéric.
23 Contributor(s): ______________________________________.
24
25 ====================================================================*/

26 package org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.binder;
27
28 import org.objectweb.openccm.descriptor.componentassembly.beans.HomeinterfaceBeanImpl;
29 import org.objectweb.openccm.descriptor.componentassembly.beans.HomeplacementrefBeanImpl;
30 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.base.HandlerBase;
31 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.base.InitializationError;
32 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.installer.HomeplacementDeployer;
33 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.util.FindbyDeployer;
34
35 /**
36  * This handler is used to produce homeinterfacedeployer from an
37  * homeinterface bean .
38  *
39  * @author <a HREF="mailto:briclet@lifl.fr">Briclet Frédéric</a>
40  *
41  * @version 0.1
42  */

43 public class HomeinterfaceDeployerHandler
44        extends HandlerBase
45     {
46     // ==================================================================
47
//
48
// Internal state.
49
//
50
// ==================================================================
51
private HomeinterfaceDeployer _deploy;
52     // ==================================================================
53
//
54
// Constructors.
55
//
56
// ==================================================================
57
// ==================================================================
58
//
59
// Internal methods.
60
//
61
// ==================================================================
62
// ==================================================================
63
//
64
// Public methods.
65
//
66
// ==================================================================
67
/**
68      * Produce the homeinterface deployer binded
69      * to the givean @param cons.
70      *
71      * @param cons The homeinterface bean
72      * @return the deployer produced in initialize state
73      * @throws InitializationError thrown if a problem is detected
74      */

75     public Object JavaDoc
76     getInstance(HomeinterfaceBeanImpl cons)
77     throws InitializationError
78     {
79         if (_deploy == null) {
80             _deploy = new HomeinterfaceDeployer();
81             _deploy.connectHomeinterface(cons);
82             applyCommonConfig(_deploy);
83             if (cons.getFindby() != null) {
84                 _deploy.connectFindbyDeployer(
85                     (FindbyDeployer) getDeployer(cons.getFindby()));
86             }
87             if (cons.getHomeplacementref() != null
88                 && cons.getHomeplacementref().getIdref() != null)
89                 try {
90                     if(((HomeplacementrefBeanImpl)cons.getHomeplacementref())
91                              .pullIdref()==null)
92                         throw new InitializationError(_deploy,"Bad homeplacementref idref was specified "+
93                                                       cons.getHomeplacementref().getIdref()+
94                                                       " check your CAD file "+_deploy.getStringifiedDeployerDescription());
95                                                       
96                     _deploy.connectHomeplacementDeployer(
97                         (HomeplacementDeployer) getDeployer(
98                             ((HomeplacementrefBeanImpl) cons
99                             .getHomeplacementref())
100                             .pullIdref()));
101                 } catch (java.lang.ClassCastException JavaDoc e) {
102                      String JavaDoc classFound=((HomeplacementrefBeanImpl)cons.getHomeplacementref())
103                                                    .pullIdref().getClass().getName();
104                      throw new InitializationError(_deploy,"Similar identifiants was detected, it was expected that \""+
105                                                     cons.getHomeplacementref().getIdref()+"\" id of <homeinterface> element"+
106                                                   " denote a <homeplacement> element:\n"
107                                                    +getStringifiedDescription(cons)
108                                                    +"\n but a <"
109                                                    +classFound.substring(classFound.lastIndexOf('.')+1,classFound.lastIndexOf("BeanImpl"))
110                                                    +"> element was found:\n "
111                                                    +getStringifiedDescription(((HomeplacementrefBeanImpl)cons.getHomeplacementref()).pullIdref())
112                                                    +"check your CAD file a identifiant is used for two different elements."+
113                                                    " To achieve successfully the deployment use different names for those two identifiants");
114
115                 }
116             _deploy.initialize();
117         }
118           
119           return (_deploy);
120       }
121
122 }
123
Popular Tags