1. package org.omg.PortableInterceptor;
  2. /**
  3. * org/omg/PortableInterceptor/ClientRequestInfoOperations.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 client-side request interceptors.
  10. * <p>
  11. * Some attributes and operations on <code>ClientRequestInfo</code> are
  12. * not valid at all interception points. The following table shows the
  13. * validity of each attribute or operation. If it is not valid, attempting
  14. * to access it will result in a <code>BAD_INV_ORDER</code> being thrown
  15. * with a standard minor code of 14.
  16. * <p>
  17. *
  18. * <table border=1 summary="Shows the validity of each attribute or operation">
  19. * <thead>
  20. * <tr>
  21. * <th> </th>
  22. * <th id="send_req">send_request</th>
  23. * <th id="send_poll">send_poll</th>
  24. * <th id="rec_reply">receive_reply</th>
  25. * <th id="rec_ex">receive_exception</th>
  26. * <th id="rec_oth">receive_other</th>
  27. * </tr>
  28. * </thead>
  29. * <tbody>
  30. *
  31. * <tr>
  32. * <td id="ri" colspan=6><i>Inherited from RequestInfo:</i></td>
  33. * </tr>
  34. *
  35. * <tr><th id="req_id"><p align="left">request_id</p></th>
  36. * <td headers="ri req_id send_req">yes</td>
  37. * <td headers="ri req_id send_poll">yes</td>
  38. * <td headers="ri req_id rec_reply">yes</td>
  39. * <td headers="ri req_id rec_ex">yes</td>
  40. * <td headers="ri req_id rec_oth">yes</td></tr>
  41. *
  42. * <tr><th id="op"><p align="left">operation</p></th>
  43. * <td headers="ri op send_req">yes</td>
  44. * <td headers="ri op send_poll">yes</td>
  45. * <td headers="ri op rec_reply">yes</td>
  46. * <td headers="ri op rec_ex">yes</td>
  47. * <td headers="ri op rec_oth">yes</td></tr>
  48. *
  49. * <tr><th id="arg"><p align="left">arguments</p></th>
  50. * <td headers="ri arg send_req">yes<sub>1</sub></td>
  51. * <td headers="ri arg send_poll">no </td>
  52. * <td headers="ri arg rec_reply">yes</td>
  53. * <td headers="ri arg rec_ex">no </td>
  54. * <td headers="ri arg rec_oth">no </td></tr>
  55. *
  56. * <tr><th id="exc"><p align="left">exceptions</p></th>
  57. * <td headers="ri exc send_req">yes</td>
  58. * <td headers="ri exc send_poll">no </td>
  59. * <td headers="ri exc rec_reply">yes</td>
  60. * <td headers="ri exc rec_ex">yes</td>
  61. * <td headers="ri exc rec_oth">yes</td></tr>
  62. *
  63. * <tr><th id="con"><p align="left">contexts</p></th>
  64. * <td headers="ri con send_req">yes</td>
  65. * <td headers="ri con send_poll">no </td>
  66. * <td headers="ri con rec_reply">yes</td>
  67. * <td headers="ri con rec_ex">yes</td>
  68. * <td headers="ri con rec_oth">yes</td></tr>
  69. *
  70. * <tr><th id="op_con"><p align="left">operation_context</p></th>
  71. * <td headers="ri op_con send_req">yes</td>
  72. * <td headers="ri op_con send_poll">no </td>
  73. * <td headers="ri op_con rec_reply">yes</td>
  74. * <td headers="ri op_con rec_ex">yes</td>
  75. * <td headers="ri op_con rec_oth">yes</td>
  76. * </tr>
  77. *
  78. * <tr><th id="result"><p align="left">result</p></th>
  79. * <td headers="ri result send_req">no </td>
  80. * <td headers="ri result send_poll">no </td>
  81. * <td headers="ri result rec_reply">yes</td>
  82. * <td headers="ri result rec_ex">no </td>
  83. * <td headers="ri result rec_oth">no </td>
  84. * </tr>
  85. *
  86. * <tr><th id="res_exp"><p align="left">response_expected</p></th>
  87. * <td headers="ri res_exp send_req">yes</td>
  88. * <td headers="ri res_exp send_poll">yes</td>
  89. * <td headers="ri res_exp rec_reply">yes</td>
  90. * <td headers="ri res_exp rec_ex">yes</td>
  91. * <td headers="ri res_exp rec_oth">yes</td></tr>
  92. *
  93. * <tr><th id="sync_sco"><p align="left">sync_scope</p></th>
  94. * <td headers="ri sync_sco send_req">yes</td>
  95. * <td headers="ri sync_sco send_poll">no </td>
  96. * <td headers="ri sync_sco rec_reply">yes</td>
  97. * <td headers="ri sync_sco rec_ex">yes</td>
  98. * <td headers="ri sync_sco rec_oth">yes</td>
  99. * </tr>
  100. *
  101. * <tr><th id="rep_stat"><p align="left">reply_status</p></th>
  102. * <td headers="ri rep_stat send_req">no </td>
  103. * <td headers="ri rep_stat send_poll">no </td>
  104. * <td headers="ri rep_stat rec_reply">yes</td>
  105. * <td headers="ri rep_stat rec_ex">yes</td>
  106. * <td headers="ri rep_stat rec_oth">yes</td></tr>
  107. *
  108. * <tr><th id="for_ref"><p align="left">forward_reference</p></th>
  109. * <td headers="ri for_ref send_req">no </td>
  110. * <td headers="ri for_ref send_poll">no </td>
  111. * <td headers="ri for_ref rec_reply">no </td>
  112. * <td headers="ri for_ref rec_ex">no </td>
  113. * <td headers="ri for_ref rec_oth">yes<sub>2</sub>
  114. * </td></tr>
  115. *
  116. * <tr><th id="get_slot"><p align="left">get_slot</p></th>
  117. * <td headers="ri get_slot send_req">yes</td>
  118. * <td headers="ri get_slot send_poll">yes</td>
  119. * <td headers="ri get_slot rec_reply">yes</td>
  120. * <td headers="ri get_slot rec_ex">yes</td>
  121. * <td headers="ri get_slot rec_oth">yes</td></tr>
  122. *
  123. * <tr><th id="grsc"><p align="left">get_request_service_context</p></th>
  124. * <td headers="ri grsc send_req">yes</td>
  125. * <td headers="ri grsc send_poll">no </td>
  126. * <td headers="ri grsc rec_reply">yes</td>
  127. * <td headers="ri grsc rec_ex">yes</td>
  128. * <td headers="ri grsc rec_oth">yes</td></tr>
  129. *
  130. * <tr><th id="gpsc"><p align="left">get_reply_service_context</p></th>
  131. * <td headers="ri gpsc send_req">no </td>
  132. * <td headers="ri gpsc send_poll">no </td>
  133. * <td headers="ri gpsc rec_reply">yes</td>
  134. * <td headers="ri gpsc rec_ex">yes</td>
  135. * <td headers="ri gpsc rec_oth">yes</td>
  136. * </tr>
  137. *
  138. * <tr>
  139. * <td id="cri" colspan=6><i>ClientRequestInfo-specific:</i></td>
  140. * </tr>
  141. *
  142. * <tr><th id="target"><p align="left">target</p></th>
  143. * <td headers="cri target send_req">yes</td>
  144. * <td headers="cri target send_poll">yes</td>
  145. * <td headers="cri target rec_reply">yes</td>
  146. * <td headers="cri target rec_ex">yes</td>
  147. * <td headers="cri target rec_oth">yes</td></tr>
  148. *
  149. * <tr><th id="eftarget"><p align="left">effective_target</p></th>
  150. * <td headers="cri eftarget send_req">yes</td>
  151. * <td headers="cri eftarget send_poll">yes</td>
  152. * <td headers="cri eftarget rec_reply">yes</td>
  153. * <td headers="cri eftarget rec_ex">yes</td>
  154. * <td headers="cri eftarget rec_oth">yes</td>
  155. * </tr>
  156. *
  157. * <tr><th id="efprof"><p align="left">effective_profile</p></th>
  158. * <td headers="cri efprof send_req">yes</td>
  159. * <td headers="cri efprof send_poll">yes</td>
  160. * <td headers="cri efprof rec_reply">yes</td>
  161. * <td headers="cri efprof rec_ex">yes</td>
  162. * <td headers="cri efprof rec_oth">yes</td></tr>
  163. *
  164. * <tr><th id="rxp"><p align="left">received_exception</p></th>
  165. * <td headers="cri rxp send_req">no </td>
  166. * <td headers="cri rxp send_poll">no </td>
  167. * <td headers="cri rxp rec_reply">no </td>
  168. * <td headers="cri rxp rec_ex">yes</td>
  169. * <td headers="cri rxp rec_oth">no </td></tr>
  170. *
  171. * <tr><th id="rei"><p align="left">received_exception_id</p></th>
  172. * <td headers="cri rei send_req">no </td>
  173. * <td headers="cri rei send_poll">no </td>
  174. * <td headers="cri rei rec_reply">no </td>
  175. * <td headers="cri rei rec_ex">yes</td>
  176. * <td headers="cri rei rec_oth">no </td></tr>
  177. *
  178. * <tr><th id="gec"><p align="left">get_effective_component</p></th>
  179. * <td headers="cri gec send_req">yes</td>
  180. * <td headers="cri gec send_poll">no </td>
  181. * <td headers="cri gec rec_reply">yes</td>
  182. * <td headers="cri gec rec_ex">yes</td>
  183. * <td headers="cri gec rec_oth">yes</td></tr>
  184. *
  185. * <tr><th id="gecs"><p align="left">get_effective_components</p></th>
  186. * <td headers="cri gecs send_req">yes</td>
  187. * <td headers="cri gecs send_poll">no </td>
  188. * <td headers="cri gecs rec_reply">yes</td>
  189. * <td headers="cri gecs rec_ex">yes</td>
  190. * <td headers="cri gecs rec_oth">yes</td></tr>
  191. *
  192. * <tr><th id="grpcy"><p align="left">get_request_policy</p></th>
  193. * <td headers="cri grpcy send_req">yes</td>
  194. * <td headers="cri grpcy send_poll">no </td>
  195. * <td headers="cri grpcy rec_reply">yes</td>
  196. * <td headers="cri grpcy rec_ex">yes</td>
  197. * <td headers="cri grpcy rec_oth">yes</td></tr>
  198. *
  199. * <tr><th id="arsc"><p align="left">add_request_service_context</p></th>
  200. * <td headers="cri arsc send_req">yes</td>
  201. * <td headers="cri arsc send_poll">no </td>
  202. * <td headers="cri arsc rec_reply">no </td>
  203. * <td headers="cri arsc rec_ex">no </td>
  204. * <td headers="cri arsc rec_oth">no </td></tr>
  205. *
  206. * </tbody>
  207. * </table>
  208. *
  209. * <ol>
  210. * <li>When <code>ClientRequestInfo</code> is passed to
  211. * <code>send_request</code>, there is an entry in the list for every
  212. * argument, whether in, inout, or out. But only the in and inout
  213. * arguments will be available.</li>
  214. * <li>If the <code>reply_status</code> atribute is not
  215. * <code>LOCATION_FORWARD</code>, accessing this attribute will
  216. * throw <code>BAD_INV_ORDER</code> with a standard minor code of
  217. * 14.</li>
  218. * </ol>
  219. *
  220. * @see ClientRequestInterceptor
  221. */
  222. public interface ClientRequestInfoOperations extends org.omg.PortableInterceptor.RequestInfoOperations
  223. {
  224. /**
  225. * Returns the object which the client called to perform the
  226. * operation.
  227. *
  228. * @see #effective_target
  229. */
  230. org.omg.CORBA.Object target ();
  231. /**
  232. * Returns the actual object on which the operation will be invoked.
  233. * If the <code>reply_status</code> is <code>LOCATION_FORWARD</code>,
  234. * then on subsequent requests, <code>effective_target</code> will
  235. * contain the forwarded IOR while target will remain unchanged.
  236. *
  237. * @see #target
  238. */
  239. org.omg.CORBA.Object effective_target ();
  240. /**
  241. * Returns the profile that will be used to send the request. If a
  242. * location forward has occurred for this operation's object and
  243. * that object's profile changed accordingly, then this profile will
  244. * be that located profile.
  245. */
  246. org.omg.IOP.TaggedProfile effective_profile ();
  247. /**
  248. * Returns an any which contains the exception to be returned to
  249. * the client.
  250. * <p>
  251. * If the exception is a user exception which cannot be inserted
  252. * into an any (e.g., it is unknown or the bindings don t provide
  253. * the <code>TypeCode</code>), then this attribute will be an any
  254. * containing the system exception <code>UNKNOWN</code> with a
  255. * standard minor code of 1. However, the repository id of
  256. * the exception is available in the <code>received_exception_id</code>
  257. * attribute.
  258. *
  259. * @see #received_exception_id
  260. */
  261. org.omg.CORBA.Any received_exception ();
  262. /**
  263. * Returns the repository id of the exception to be returned to
  264. * the client.
  265. *
  266. * @see #received_exception
  267. * @see <a href="package-summary.html#unimpl">
  268. * <code>PortableInterceptor</code> package comments for
  269. * limitations / unimplemented features</a>
  270. */
  271. String received_exception_id ();
  272. /**
  273. * Returns the <code>IOP.TaggedComponent</code> with the given ID from
  274. * the profile selected for this request.
  275. * <p>
  276. * If there is more than one component for a given component ID, it
  277. * is undefined which component this operation returns. If there is
  278. * more than one component for a given component ID,
  279. * <code>get_effective_components</code> should be called instead.
  280. *
  281. * @param id The component id of the component which
  282. * is to be returned.
  283. * @return The <code>IOP.TaggedComponent</code> obtained with the
  284. * given identifier.
  285. * @exception BAD_PARAM thrown, with a standard minor code of 28, if
  286. * no component exists for the given component ID.
  287. * @see #get_effective_components
  288. */
  289. org.omg.IOP.TaggedComponent get_effective_component (int id);
  290. /**
  291. * Returns an array of all tagged components with the given ID from the
  292. * profile selected for this request.
  293. *
  294. * @param id The component id of the components which are to be returned.
  295. * @return An array of <code>TaggedComponent</code> objects, each of
  296. * which contains the given identifier.
  297. * @exception BAD_PARAM thrown, with a standard minor code of 28, if
  298. * no component exists for the given component ID.
  299. * @see #get_effective_component
  300. */
  301. org.omg.IOP.TaggedComponent[] get_effective_components (int id);
  302. /**
  303. * Returns the given policy in effect for this operation.
  304. *
  305. * @exception INV_POLICY thrown, with a standard minor code of 1, if the
  306. * policy type is not valid either because the specified type is
  307. * not supported by this ORB or because a policy object of that type
  308. * is not associated with this Object
  309. * @param type The policy type which specifies the policy to be
  310. * returned.
  311. * @return The <code>CORBA.Policy</code> obtained with the given type.
  312. * @see <a href="package-summary.html#unimpl">
  313. * <code>PortableInterceptor</code> package comments for
  314. * limitations / unimplemented features</a>
  315. */
  316. org.omg.CORBA.Policy get_request_policy (int type);
  317. /**
  318. * Allows Interceptors to add service contexts to the request.
  319. * <p>
  320. * There is no declaration of the order of the service contexts.
  321. * They may or may not appear in the order that they are added.
  322. *
  323. * @param service_context The <code>IOP.ServiceContext</code> to be
  324. * added to the request.
  325. * @param replace Indicates the behavior of this operation when a
  326. * service context already exists with the given ID. If false,
  327. * then <code>BAD_INV_ORDER</code> with a standard minor code of 15
  328. * is thrown. If true, then the existing service context is
  329. * replaced by the new one.
  330. */
  331. void add_request_service_context (org.omg.IOP.ServiceContext service_context, boolean replace);
  332. } // interface ClientRequestInfoOperations