KickJava   Java API By Example, From Geeks To Geeks.

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


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.UsesportBeanImpl;
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  * CLASS_DESCRIPTION.
37  * This handler is used to produce usesportdeployer from an
38  * usesport bean.
39  *
40  * @author <a HREF="mailto:briclet@lifl.fr">Briclet Frédéric</a>
41  *
42  * @version 0.1
43  */

44 public class UsesportDeployerHandler
45        extends HandlerBase
46     {
47     // ==================================================================
48
//
49
// Internal state.
50
//
51
// ==================================================================
52
private UsesportDeployer _deploy;
53     // ==================================================================
54
//
55
// Constructors.
56
//
57
// ==================================================================
58
// ==================================================================
59
//
60
// Internal methods.
61
//
62
// ==================================================================
63
// ==================================================================
64
//
65
// Public methods.
66
//
67
// ==================================================================
68
/**
69      * Produce the usesport deployer binded
70      * to the givean @param cons.
71      *
72      * @param cons The usesport 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(UsesportBeanImpl cons)
78      throws InitializationError
79      {
80          if(_deploy==null){
81              _deploy=new UsesportDeployer();
82              _deploy.connectUsesport(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                 if(((ComponentinstantiationrefBeanImpl)cons.getComponentinstantiationref())
91                              .pullIdref()==null)
92                         throw new InitializationError(_deploy,"Bad componentinstantiationref idref was specified "+
93                                                       cons.getComponentinstantiationref().getIdref()+
94                                                       " check your CAD file "+_deploy.getStringifiedDeployerDescription());
95               try{
96                      _deploy.connectComponentinstantiationDeployer(
97                             (ComponentinstantiationDeployer)
98                             getDeployer(
99                             ((ComponentinstantiationrefBeanImpl)cons.getComponentinstantiationref())
100                             .pullIdref()));
101                  }
102                 catch(java.lang.ClassCastException JavaDoc e){
103                     String JavaDoc classFound=((ComponentinstantiationrefBeanImpl)cons.getComponentinstantiationref())
104                                                    .pullIdref().getClass().getName();
105                     throw new InitializationError(_deploy,"Similar identifiants was detected, it was expected that \""+
106                                                   cons.getComponentinstantiationref().getIdref()+"\" id of <useport> element"+
107                                                   " denote a <componentinstantiation> element:\n"
108                                                    +getStringifiedDescription(cons)
109                                                    +"\n but a <"
110                                                    +classFound.substring(classFound.lastIndexOf('.')+1,classFound.lastIndexOf("BeanImpl"))
111                                                    +"> element was found:\n "
112                                                    +getStringifiedDescription(((ComponentinstantiationrefBeanImpl)cons.getComponentinstantiationref()).pullIdref())
113                                                    +"check your CAD file a identifiant is used for two different elements."+
114                                                    " To achieve successfully the deployment use different names for those two identifiants");
115                 }
116              }
117            _deploy.initialize();
118          }
119          return (_deploy);
120      }
121
122 }
123
Popular Tags