KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > corba > se > impl > oa > poa > POAPolicyMediatorImpl_NR_USM


1 /*
2  * @(#)POAPolicyMediatorImpl_NR_USM.java 1.25 03/12/19
3  *
4  * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
5  * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
6  */

7
8 package com.sun.corba.se.impl.oa.poa ;
9
10 import java.util.Enumeration JavaDoc ;
11
12 import org.omg.PortableServer.POA JavaDoc ;
13 import org.omg.PortableServer.Servant JavaDoc ;
14 import org.omg.PortableServer.ServantManager JavaDoc ;
15 import org.omg.PortableServer.ServantLocator JavaDoc ;
16 import org.omg.PortableServer.ForwardRequest JavaDoc ;
17 import org.omg.PortableServer.POAPackage.NoServant JavaDoc ;
18 import org.omg.PortableServer.POAPackage.WrongPolicy JavaDoc ;
19 import org.omg.PortableServer.POAPackage.ObjectNotActive JavaDoc ;
20 import org.omg.PortableServer.POAPackage.ServantNotActive JavaDoc ;
21 import org.omg.PortableServer.POAPackage.ObjectAlreadyActive JavaDoc ;
22 import org.omg.PortableServer.POAPackage.ServantAlreadyActive JavaDoc ;
23 import org.omg.PortableServer.ServantLocatorPackage.CookieHolder JavaDoc ;
24
25 import com.sun.corba.se.impl.orbutil.concurrent.SyncUtil ;
26 import com.sun.corba.se.impl.orbutil.ORBUtility ;
27 import com.sun.corba.se.impl.orbutil.ORBConstants ;
28
29 import com.sun.corba.se.spi.oa.OAInvocationInfo ;
30 import com.sun.corba.se.impl.oa.NullServantImpl ;
31
32 /** Implementation of POARequesHandler that provides policy specific
33  * operations on the POA.
34  */

35 public class POAPolicyMediatorImpl_NR_USM extends POAPolicyMediatorBase {
36     private ServantLocator JavaDoc locator ;
37
38     POAPolicyMediatorImpl_NR_USM( Policies policies, POAImpl poa )
39     {
40     super( policies, poa ) ;
41
42     // assert !policies.retainServants() && policies.useServantManager()
43
if (policies.retainServants())
44         throw poa.invocationWrapper().policyMediatorBadPolicyInFactory() ;
45
46     if (!policies.useServantManager())
47         throw poa.invocationWrapper().policyMediatorBadPolicyInFactory() ;
48
49     locator = null ;
50     }
51     
52     protected java.lang.Object JavaDoc internalGetServant( byte[] id,
53     String JavaDoc operation ) throws ForwardRequest JavaDoc
54     {
55     if (locator == null)
56         throw poa.invocationWrapper().poaNoServantManager() ;
57     
58     CookieHolder JavaDoc cookieHolder = orb.peekInvocationInfo().getCookieHolder() ;
59
60     // Try - finally is J2EE requirement.
61
java.lang.Object JavaDoc servant;
62     try{
63         poa.unlock() ;
64
65         servant = locator.preinvoke(id, poa, operation, cookieHolder);
66         if (servant == null)
67         servant = new NullServantImpl( poa.omgInvocationWrapper().nullServantReturned() ) ;
68         else
69         setDelegate( (Servant JavaDoc)servant, id);
70     } finally {
71         poa.lock() ;
72     }
73
74     return servant;
75     }
76
77     public void returnServant()
78     {
79     OAInvocationInfo info = orb.peekInvocationInfo();
80     if (locator == null)
81         return;
82
83     try {
84         poa.unlock() ;
85         locator.postinvoke(info.id(), (POA JavaDoc)(info.oa()),
86         info.getOperation(), info.getCookieHolder().value,
87         (Servant JavaDoc)(info.getServantContainer()) );
88     } finally {
89         poa.lock() ;
90     }
91     }
92
93     public void etherealizeAll()
94     {
95     // NO-OP
96
}
97
98     public void clearAOM()
99     {
100     // NO-OP
101
}
102
103     public ServantManager JavaDoc getServantManager() throws WrongPolicy JavaDoc
104     {
105     return locator ;
106     }
107
108     public void setServantManager( ServantManager JavaDoc servantManager ) throws WrongPolicy JavaDoc
109     {
110     if (locator != null)
111         throw poa.invocationWrapper().servantManagerAlreadySet() ;
112
113     if (servantManager instanceof ServantLocator JavaDoc)
114         locator = (ServantLocator JavaDoc)servantManager;
115     else
116         throw poa.invocationWrapper().servantManagerBadType() ;
117     }
118
119     public Servant JavaDoc getDefaultServant() throws NoServant JavaDoc, WrongPolicy JavaDoc
120     {
121     throw new WrongPolicy JavaDoc();
122     }
123
124     public void setDefaultServant( Servant JavaDoc servant ) throws WrongPolicy JavaDoc
125     {
126     throw new WrongPolicy JavaDoc();
127     }
128
129     public final void activateObject(byte[] id, Servant JavaDoc servant)
130     throws WrongPolicy JavaDoc, ServantAlreadyActive JavaDoc, ObjectAlreadyActive JavaDoc
131     {
132     throw new WrongPolicy JavaDoc();
133     }
134
135     public Servant JavaDoc deactivateObject( byte[] id ) throws ObjectNotActive JavaDoc, WrongPolicy JavaDoc
136     {
137     throw new WrongPolicy JavaDoc();
138     }
139
140     public byte[] servantToId( Servant JavaDoc servant ) throws ServantNotActive JavaDoc, WrongPolicy JavaDoc
141     {
142     throw new WrongPolicy JavaDoc();
143     }
144
145     public Servant JavaDoc idToServant( byte[] id )
146     throws WrongPolicy JavaDoc, ObjectNotActive JavaDoc
147     {
148     throw new WrongPolicy JavaDoc();
149     }
150 }
151
Popular Tags