KickJava   Java API By Example, From Geeks To Geeks.

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


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.ProvidesportBeanImpl;
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 providesportdeployer from an
37  * providesport bean .
38  *
39  * @author <a HREF="mailto:briclet@lifl.fr">Briclet Frédéric</a>
40  *
41  * @version 0.1
42  */

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

68     /**
69      * Produce the providesport deployer binded
70      * to the givean @param cons.
71      *
72      * @param cons The providesport bean
73      * @return the deployer produced in initialize state
74      * @throws InitializationError thrown if a problem is detected
75      */

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