KickJava   Java API By Example, From Geeks To Geeks.

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


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
27 package org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.binder;
28
29 import org.objectweb.openccm.descriptor.componentassembly.beans.ComponentinstantiationrefBeanImpl;
30 import org.objectweb.openccm.descriptor.componentassembly.beans.ComponentsupportedinterfaceBeanImpl;
31 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.base.HandlerBase;
32 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.base.InitializationError;
33 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.installer.ComponentinstantiationDeployer;
34 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.util.FindbyDeployer;
35
36 /**
37  * This handler is used to produce componentsupportedinterface deployer from an
38  * componentsupportedinterface bean.
39  *
40  * @author <a HREF="mailto:briclet@lifl.fr">Briclet Frédéric</a>
41  *
42  * @version 0.1
43  */

44 public class ComponentsupportedinterfaceDeployerHandler
45        extends HandlerBase
46     {
47     // ==================================================================
48
//
49
// Internal state.
50
//
51
// ==================================================================
52

53     //The current deployer
54
private ComponentsupportedinterfaceDeployer _deploy;
55      // ==================================================================
56
//
57
// Constructors.
58
//
59
// ==================================================================
60
// ==================================================================
61
//
62
// Internal methods.
63
//
64
// ==================================================================
65
// ==================================================================
66
//
67
// Public methods.
68
//
69
// ==================================================================
70
/**
71      * Produce the componentsupportedinterface deployer binded
72      * to the givean @param cons.
73      *
74      * @param cons The componentsupportedinterface bean
75      * @return the deployer produced in initialize state
76      * @throws InitializationError thrown if a problem is detected
77      */

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