KickJava   Java API By Example, From Geeks To Geeks.

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


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
27 package org.objectweb.openccm.descriptor.componentassembly.ccm.deployer.binder;
28
29
30 // import all required packages
31
/**
32  * The connect event deployer is in charge to build an asynchronous connection
33  * defined by the element connectevent.
34  *
35  * @author <a HREF="mailto:briclet@lifl.fr">Briclet Frédéric</a>
36  *
37  * @version 0.1
38  */

39
40
41 public class ConnecteventDeployer
42        extends ConnecteventDeployerContext
43     {
44     // ==================================================================
45
//
46
// Internal state.
47
//
48
// ==================================================================
49
/* Internal exception used to manage the connection*/
50     private class CannotResolveReferenceException extends Exception JavaDoc{};
51
52     // ==================================================================
53
//
54
// Constructor.
55
//
56
// ==================================================================
57

58
59     // ==================================================================
60
//
61
// Internal methods.
62
//
63
// ==================================================================
64

65     // ==================================================================
66
//
67
// Public methods.
68
//
69
// ==================================================================
70

71     
72     /**
73      * Establishe the connection between the provided interface and the
74      * required interface
75      *
76      * @param ConnectEventEstablishmentFailureException is thrown if
77      * a problem occured during establisment
78      */

79     public void
80     deploy()
81     throws ConnectEventEstablishmentFailureException
82     {
83         try{
84             // Get the consumes object
85
org.omg.Components.EventConsumerBase consumedObject=null ;
86             
87             if(getConsumesportDeployer()!=null)
88                 consumedObject=getConsumesportDeployer().getConsumer();
89             else consumedObject=getExistinginterfaceDeployer().getEventConsumerBase();
90             
91             if(getEmitsportDeployer()!=null)
92                 getEmitsportDeployer().connectEmiterToConsumer(consumedObject);
93             else getPublishesportDeployer().connectPublisherToConsumer(consumedObject);
94         }
95         catch(Exception JavaDoc e){
96             throw new ConnectEventEstablishmentFailureException(this,e);
97         }
98         getLifeCycleManager().stepEndedSuccessFully();
99     }
100
101
102
103
104     /**
105      *Tear down connection : unsubscrive the publisher
106      *
107      * @param deployTable the internal table use to store information.
108      * @param cei the connectevent to tear_down
109      * @return Return the corba object found
110      */

111     public void
112     tearDown()
113     throws ConnectEventBreakingFailureException
114     {
115         try{
116             if(getEmitsportDeployer()!=null)
117                 getEmitsportDeployer().disconnectConsumer();
118             else getPublishesportDeployer().disconnectConsumer();
119         }
120         catch(Exception JavaDoc e)
121             {
122                 throw new ConnectEventBreakingFailureException(this,e);
123             }
124
125         getLifeCycleManager().stepEndedSuccessFully();
126     }
127
128 }
129
Popular Tags