KickJava   Java API By Example, From Geeks To Geeks.

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


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

43 public class PublishesportDeployerHandler
44        extends HandlerBase
45     {
46     // ==================================================================
47
//
48
// Internal state.
49
//
50
// ==================================================================
51
private PublishesportDeployer _deploy;
52     // ==================================================================
53
//
54
// Constructors.
55
//
56
// ==================================================================
57
// ==================================================================
58
//
59
// Internal methods.
60
//
61
// ==================================================================
62
// ==================================================================
63
//
64
// Public methods.
65
//
66
// ==================================================================
67
/**
68      * Produce the publishesport deployer binded
69      * to the givean @param cons.
70      *
71      * @param cons The publishesport bean
72      * @return the deployer produced in initialize state
73      * @throws InitializationError thrown if a problem is detected
74      */

75      public Object JavaDoc
76      getInstance(PublishesportBeanImpl cons)
77      throws InitializationError
78      {
79          if(_deploy==null){
80              _deploy=new PublishesportDeployer();
81              _deploy.connectPublishesport(cons);
82              applyCommonConfig(_deploy);
83              if(cons.getFindby()!=null){
84                  _deploy.connectFindbyDeployer((FindbyDeployer)getDeployer(cons.getFindby()));
85              }
86              if(cons.getComponentinstantiationref()!=null&&
87                  cons.getComponentinstantiationref().getIdref()!=null)
88               {
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 <publishesport> 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              _deploy.initialize();
120          }
121          return (_deploy);
122      }
123     
124 }
125
Popular Tags