KickJava   Java API By Example, From Geeks To Geeks.

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


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.ComponentinstantiationrefBeanImpl;
29 import org.objectweb.openccm.descriptor.componentassembly.beans.EmitsportBeanImpl;
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.ComponentinstantiationDeployer;
33 import org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.util.FindbyDeployer;
34
35 /**
36  * This handler is used to produce emitsport deployer from an
37  * emitsport bean .
38  *
39  * @author <a HREF="mailto:briclet@lifl.fr">Briclet Frédéric</a>
40  *
41  * @version 0.1
42  */

43 public class EmitsportDeployerHandler
44        extends HandlerBase
45     {
46    
47     // ==================================================================
48
//
49
// Internal state.
50
//
51
// ==================================================================
52
private EmitsportDeployer _deploy;
53     
54     // ==================================================================
55
//
56
// Constructors.
57
//
58
// ==================================================================
59
// ==================================================================
60
//
61
// Internal methods.
62
//
63
// ==================================================================
64
// ==================================================================
65
//
66
// Public methods.
67
//
68
// ==================================================================
69

70     /**
71      * Produce the emitsport deployer binded
72      * to the givean @param cons.
73      *
74      * @param cons The emitsport 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(EmitsportBeanImpl cons)
80       throws InitializationError
81       {
82           if(_deploy==null){
83               _deploy=new EmitsportDeployer();
84               _deploy.connectEmitsport(cons);
85               applyCommonConfig(_deploy);
86               if(cons.getFindby()!=null){
87                   _deploy.connectFindbyDeployer((FindbyDeployer)getDeployer(cons.getFindby()));
88               }
89               if(cons.getComponentinstantiationref()!=null&&
90                   cons.getComponentinstantiationref().getIdref()!=null)
91                {
92                    try{
93                    
94                         if(((ComponentinstantiationrefBeanImpl)cons.getComponentinstantiationref())
95                              .pullIdref()==null)
96                         throw new InitializationError(_deploy,"Bad componentinstantiationref idref was specified "+
97                                                       cons.getComponentinstantiationref().getIdref()+
98                                                       " check your CAD file "+_deploy.getStringifiedDeployerDescription());
99                                                       
100                    _deploy.connectComponentinstantiationDeployer(
101                                       (ComponentinstantiationDeployer)
102                                       getDeployer(
103                                       ((ComponentinstantiationrefBeanImpl)cons.getComponentinstantiationref())
104                                       .pullIdref()));
105                    }
106                    catch(java.lang.ClassCastException JavaDoc e){
107                      String JavaDoc classFound=((ComponentinstantiationrefBeanImpl)cons.getComponentinstantiationref())
108                                                    .pullIdref().getClass().getName();
109                      throw new InitializationError(_deploy,"Similar identifiants was detected, it was expected that \""+
110                                                     cons.getComponentinstantiationref().getIdref()+"\" id of <emitsport> element"+
111                                                   " denote a <componentinstantiation> element:\n"
112                                                    +getStringifiedDescription(cons)
113                                                    +"\n but a <"
114                                                    +classFound.substring(classFound.lastIndexOf('.')+1,classFound.lastIndexOf("BeanImpl"))
115                                                    +"> element was found:\n "
116                                                    +getStringifiedDescription(((ComponentinstantiationrefBeanImpl)cons.getComponentinstantiationref()).pullIdref())
117                                                    +"check your CAD file a identifiant is used for two different elements."+
118                                                    " To achieve successfully the deployment use different names for this two identifiants");
119     
120                    }
121                }
122               _deploy.initialize();
123           }
124           return (_deploy);
125       }
126
127   }
128
Popular Tags