1. package org.omg.PortableInterceptor;
  2. /**
  3. * org/omg/PortableInterceptor/ServerRequestInfoOperations.java .
  4. * Generated by the IDL-to-Java compiler (portable), version "3.1"
  5. * from ../../../../src/share/classes/org/omg/PortableInterceptor/Interceptors.idl
  6. * Monday, February 23, 2004 7:03:06 AM GMT
  7. */
  8. /**
  9. * Request Information, accessible to server-side request interceptors.
  10. * <p>
  11. * Some attributes and operations on <code>ServerRequestInfo</code> are not
  12. * valid at all interception points. The following table shows the validity
  13. * of each attribute or operation. If it is not valid, attempting to access
  14. * it will result in a <code>BAD_INV_ORDER</code> being thrown with a
  15. * standard minor code of 14.
  16. * <p>
  17. *
  18. *
  19. * <table border=1 summary="Shows the validity of each attribute or operation">
  20. * <thead>
  21. * <tr>
  22. * <th> </th>
  23. * <th id="rec_req_ser_con" valign="bottom">receive_request_<br>service_contexts</th>
  24. * <th id="rec_req" valign="bottom">receive_request</th>
  25. * <th id="send_rep" valign="bottom">send_reply</th>
  26. * <th id="send_exc" valign="bottom">send_exception</th>
  27. * <th id="send_oth" valign="bottom">send_other</th>
  28. * </tr>
  29. * </thead>
  30. * <tbody>
  31. *
  32. *
  33. * <tr>
  34. * <td id="ri" colspan=6><i>Inherited from RequestInfo:</i></td>
  35. * </tr>
  36. *
  37. * <tr><th id="req_id"><p align="left">request_id</p></th>
  38. * <td headers="ri req_id rec_req_ser_con">yes</td>
  39. * <td headers="ri req_id rec_req">yes</td>
  40. * <td headers="ri req_id send_rep">yes</td>
  41. * <td headers="ri req_id send_exc">yes</td>
  42. * <td headers="ri req_id send_oth">yes</td></tr>
  43. *
  44. * <tr><th id="op"><p align="left">operation</p></th>
  45. * <td headers="ri op rec_req_ser_con">yes</td>
  46. * <td headers="ri op rec_req">yes</td>
  47. * <td headers="ri op send_rep">yes</td>
  48. * <td headers="ri op send_exc">yes</td>
  49. * <td headers="ri op send_oth">yes</td></tr>
  50. *
  51. * <tr><th id="args"><p align="left">arguments</p></th>
  52. * <td headers="ri args rec_req_ser_con">no </td>
  53. * <td headers="ri args rec_req">yes<sub>1</sub></td>
  54. * <td headers="ri args send_rep">yes</td>
  55. * <td headers="ri args send_exc">no<sub>2</sub></td>
  56. * <td headers="ri args send_oth">no<sub>2</sub>
  57. * </td></tr>
  58. *
  59. * <tr><th id="exps"><p align="left">exceptions</p></th>
  60. * <td headers="ri exps rec_req_ser_con">no </td>
  61. * <td headers="ri exps rec_req">yes</td>
  62. * <td headers="ri exps send_rep">yes</td>
  63. * <td headers="ri exps send_exc">yes</td>
  64. * <td headers="ri exps send_oth">yes</td></tr>
  65. *
  66. * <tr><th id="contexts"><p align="left">contexts</p></th>
  67. * <td headers="ri contexts rec_req_ser_con">no </td>
  68. * <td headers="ri contexts rec_req">yes</td>
  69. * <td headers="ri contexts send_rep">yes</td>
  70. * <td headers="ri contexts send_exc">yes</td>
  71. * <td headers="ri contexts send_oth">yes</td></tr>
  72. *
  73. * <tr><th id="op_con"><p align="left">operation_context</p></th>
  74. * <td headers="ri op_con rec_req_ser_con">no </td>
  75. * <td headers="ri op_con rec_req">yes</td>
  76. * <td headers="ri op_con send_rep">yes</td>
  77. * <td headers="ri op_con send_exc">no </td>
  78. * <td headers="ri op_con send_oth">no </td>
  79. * </tr>
  80. *
  81. * <tr><th id="result"><p align="left">result</p></th>
  82. * <td headers="ri result rec_req_ser_con">no </td>
  83. * <td headers="ri result rec_req">no </td>
  84. * <td headers="ri result send_rep">yes</td>
  85. * <td headers="ri result send_exc">no </td>
  86. * <td headers="ri result send_oth">no </td>
  87. * </tr>
  88. *
  89. * <tr><th id="res_ex"><p align="left">response_expected</p></th>
  90. * <td headers="ri res_ex rec_req_ser_con">yes</td>
  91. * <td headers="ri res_ex rec_req">yes</td>
  92. * <td headers="ri res_ex send_rep">yes</td>
  93. * <td headers="ri res_ex send_exc">yes</td>
  94. * <td headers="ri res_ex send_oth">yes</td></tr>
  95. *
  96. * <tr><th id="syn_scp"><p align="left">sync_scope</p></th>
  97. * <td headers="ri syn_scp rec_req_ser_con">yes</td>
  98. * <td headers="ri syn_scp rec_req">yes</td>
  99. * <td headers="ri syn_scp send_rep">yes</td>
  100. * <td headers="ri syn_scp send_exc">yes</td>
  101. * <td headers="ri syn_scp send_oth">yes</td></tr>
  102. *
  103. * <tr><th id="rep_stat"><p align="left">reply_status</p></th>
  104. * <td headers="ri rep_stat rec_req_ser_con">no </td>
  105. * <td headers="ri rep_stat rec_req">no </td>
  106. * <td headers="ri rep_stat send_rep">yes</td>
  107. * <td headers="ri rep_stat send_exc">yes</td>
  108. * <td headers="ri rep_stat send_oth">yes</td></tr>
  109. *
  110. * <tr><th id="for_ref"><p align="left">forward_reference</p></th>
  111. * <td headers="ri for_ref rec_req_ser_con">no </td>
  112. * <td headers="ri for_ref rec_req">no </td>
  113. * <td headers="ri for_ref send_rep">no </td>
  114. * <td headers="ri for_ref send_exc">no </td>
  115. * <td headers="ri for_ref send_oth">yes<sub>2</sub>
  116. * </td></tr>
  117. *
  118. * <tr><th id="get_slot"><p align="left">get_slot</p></th>
  119. * <td headers="ri get_slot rec_req_ser_con">yes</td>
  120. * <td headers="ri get_slot rec_req">yes</td>
  121. * <td headers="ri get_slot send_rep">yes</td>
  122. * <td headers="ri get_slot send_exc">yes</td>
  123. * <td headers="ri get_slot send_oth">yes</td></tr>
  124. *
  125. * <tr><th id="g_r_s_c"><p align="left">get_request_service_context</p></th>
  126. * <td headers="ri g_r_s_c rec_req_ser_con">yes</td>
  127. * <td headers="ri g_r_s_c rec_req">no </td>
  128. * <td headers="ri g_r_s_c send_rep">yes</td>
  129. * <td headers="ri g_r_s_c send_exc">yes</td>
  130. * <td headers="ri g_r_s_c send_oth">yes</td></tr>
  131. *
  132. * <tr><th id="g_rp_s_c"><p align="left">get_reply_service_context</p></th>
  133. * <td headers="ri g_rp_s_c rec_req_ser_con">no </td>
  134. * <td headers="ri g_rp_s_c rec_req">no </td>
  135. * <td headers="ri g_rp_s_c send_rep">yes</td>
  136. * <td headers="ri g_rp_s_c send_exc">yes</td>
  137. * <td headers="ri g_rp_s_c send_oth">yes</td></tr>
  138. *
  139. * <tr>
  140. * <td id="sri" colspan=6><i>ServerRequestInfo-specific:</i></td>
  141. * </tr>
  142. *
  143. * <tr><th id="send_ex"><p align="left">sending_exception</p></th>
  144. * <td headers="sri send_ex rec_req_ser_con">no </td>
  145. * <td headers="sri send_ex rec_req">no </td>
  146. * <td headers="sri send_ex send_rep">no </td>
  147. * <td headers="sri send_ex send_exc">yes</td>
  148. * <td headers="sri send_ex send_oth">no </td>
  149. * </tr>
  150. *
  151. * <tr><th id="oid"><p align="left">object_id</p></th>
  152. * <td headers="sri oid rec_req_ser_con">no </td>
  153. * <td headers="sri oid rec_req">yes</td>
  154. * <td headers="sri oid send_rep">yes</td>
  155. * <td headers="sri oid send_exc">yes<sub>3</sub></td>
  156. * <td headers="sri oid send_oth">yes<sub>3</sub>
  157. * </td></tr>
  158. *
  159. * <tr><th id="aid"><p align="left">adapter_id</p></th>
  160. * <td headers="sri aid rec_req_ser_con">no </td>
  161. * <td headers="sri aid rec_req">yes</td>
  162. * <td headers="sri aid send_rep">yes</td>
  163. * <td headers="sri aid send_exc">yes<sub>3</sub></td>
  164. * <td headers="sri aid send_oth">yes<sub>3</sub>
  165. * </td></tr>
  166. *
  167. * <tr><th id="tmdi"><p align="left">target_most_derived_interface</p></th>
  168. * <td headers="sri tmdi rec_req_ser_con">no </td>
  169. * <td headers="sri tmdi rec_req">yes</td>
  170. * <td headers="sri tmdi send_rep">no<sub>4</sub></td>
  171. * <td headers="sri tmdi send_exc">no<sub>4</sub>
  172. * <td headers="sri tmdi send_oth">no<sub>4</sub>
  173. * </td></tr>
  174. *
  175. * <tr><th id="gsp"><p align="left">get_server_policy</p></th>
  176. * <td headers="sri gsp rec_req_ser_con">yes</td>
  177. * <td headers="sri gsp rec_req">yes</td>
  178. * <td headers="sri gsp send_rep">yes</td>
  179. * <td headers="sri gsp send_exc">yes</td>
  180. * <td headers="sri gsp send_oth">yes</td></tr>
  181. *
  182. *
  183. *
  184. * <tr><th id="set_slot"><p align="left">set_slot</p></th>
  185. * <td headers="sri set_slot rec_req_ser_con">yes</td>
  186. * <td headers="sri set_slot rec_req">yes</td>
  187. * <td headers="sri set_slot send_rep">yes</td>
  188. * <td headers="sri set_slot send_exc">yes</td>
  189. * <td headers="sri set_slot send_oth">yes</td></tr>
  190. *
  191. * <tr><th id="target_is_a"><p align="left">target_is_a</p></th>
  192. * <td headers="sri target_is_a rec_req_ser_con">no </td>
  193. * <td headers="sri target_is_a rec_req">yes</td>
  194. * <td headers="sri target_is_a send_rep">no<sub>4</sub></td>
  195. * <td headers="sri target_is_a send_exc">no<sub>4</sub></td>
  196. * <td headers="sri target_is_a send_oth">no<sub>4</sub>
  197. * </td></tr>
  198. *
  199. * <tr><th id="arsc"><p align="left">add_reply_service_context</p></th>
  200. * <td headers="sri arsc rec_req_ser_con">yes</td>
  201. * <td headers="sri arsc rec_req">yes</td>
  202. * <td headers="sri arsc send_rep">yes</td>
  203. * <td headers="sri arsc send_exc">yes</td>
  204. * <td headers="sri arsc send_oth">yes</td></tr>
  205. * </tbody>
  206. * </table>
  207. *
  208. * <ol>
  209. * <li>When <code>ServerRequestInfo</code> is passed to
  210. * <code>receive_request</code>, there is an entry in the list for
  211. * every argument, whether in, inout, or out. But only the in and
  212. * inout arguments will be available.</li>
  213. * <li>If the <code>reply_status</code> attribute is not
  214. * <code>LOCATION_FORWARD</code>, accessing this attribute will throw
  215. * <code>BAD_INV_ORDER</code> with a standard minor code of 14.</li>
  216. * <li>If the servant locator caused a location forward, or thrown an
  217. * exception, this attribute/operation may not be available in this
  218. * interception point. <code>NO_RESOURCES</code> with a standard minor
  219. * code of 1 will be thrown if it is not available.</li>
  220. * <li>The operation is not available in this interception point because
  221. * the necessary information requires access to the target object's
  222. * servant, which may no longer be available to the ORB. For example,
  223. * if the object's adapter is a POA that uses a
  224. * <code>ServantLocator</code>, then the ORB invokes the interception
  225. * point after it calls <code>ServantLocator.postinvoke()</code></li>.
  226. * </ol>
  227. *
  228. * @see ServerRequestInterceptor
  229. */
  230. public interface ServerRequestInfoOperations extends org.omg.PortableInterceptor.RequestInfoOperations
  231. {
  232. /**
  233. * Returns an any which contains the exception to be returned to
  234. * the client.
  235. * <p>
  236. * If the exception is a user exception which cannot be inserted into
  237. * an any (e.g., it is unknown or the bindings don't provide the
  238. * <code>TypeCode</code>), then this attribute will be an any
  239. * containing the system exception <code>UNKNOWN</code> with a
  240. * standard minor code of 1.
  241. *
  242. * @see <a href="package-summary.html#unimpl">
  243. * <code>PortableInterceptor</code> package comments for
  244. * limitations / unimplemented features</a>
  245. */
  246. org.omg.CORBA.Any sending_exception ();
  247. /**
  248. * Returns the opaque <code>object_id</code> describing the target of
  249. * the operation invocation.
  250. */
  251. byte[] object_id ();
  252. /**
  253. * Returns the opaque identifier for the object adapter.
  254. */
  255. byte[] adapter_id ();
  256. /**
  257. * Returns the repository id for the most derived interface of the
  258. * servant.
  259. */
  260. String target_most_derived_interface ();
  261. /**
  262. * Returns the policy in effect for this operation for the given
  263. * policy type. The returned <code>CORBA.Policy</code> object shall
  264. * only be a policy whose type was registered via
  265. * <code>register_policy_factory</code>.
  266. *
  267. * @param type The <code>CORBA.PolicyType</code> which specifies the
  268. * policy to be returned.
  269. * @return The <code>CORBA.Policy</code> obtained with the given
  270. * policy type.
  271. * @exception INV_POLICY thrown, with a standard minor code of 2, if
  272. * a policy for the given type was not registered via
  273. * <code>register_policy_factory</code>.
  274. * @see ORBInitInfo#register_policy_factory
  275. */
  276. org.omg.CORBA.Policy get_server_policy (int type);
  277. /**
  278. * Allows an Interceptor to set a slot in the
  279. * <code>PortableInterceptor.Current</code> that is in the scope of
  280. * the request. If data already exists in that slot, it will be
  281. * overwritten.
  282. *
  283. * @param id The id of the slot.
  284. * @param data The data, in the form of an any, to store in that slot.
  285. * @exception InvalidSlot thrown if the ID does not define an allocated
  286. * slot.
  287. * @see Current
  288. */
  289. void set_slot (int id, org.omg.CORBA.Any data) throws org.omg.PortableInterceptor.InvalidSlot;
  290. /**
  291. * Returns true if the servant is the given repository id,
  292. * false if it is not.
  293. *
  294. * @param id The caller wants to know if the servant is this
  295. * repository id.
  296. * @return Is the servant the given RepositoryId?
  297. */
  298. boolean target_is_a (String id);
  299. /**
  300. * Allows Interceptors to add service contexts to the request.
  301. * <p>
  302. * There is no declaration of the order of the service contexts.
  303. * They may or may not appear in the order that they are added.
  304. *
  305. * @param service_context The <code>IOP.ServiceContext</code> to add to
  306. * the reply.
  307. * @param replace Indicates the behavior of this operation when a
  308. * service context already exists with the given ID. If false,
  309. * then <code>BAD_INV_ORDER</code> with a standard minor code of 15
  310. * is thrown. If true, then the existing service context is
  311. * replaced by the new one.
  312. * @exception BAD_INV_ORDER thrown, with a standard minor code of 15, if
  313. * replace is false and a service context already exists with the
  314. * given ID.
  315. */
  316. void add_reply_service_context (org.omg.IOP.ServiceContext service_context, boolean replace);
  317. } // interface ServerRequestInfoOperations