KickJava   Java API By Example, From Geeks To Geeks.

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


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

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

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

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