< prev index next >

src/java.corba/share/classes/com/sun/corba/se/spi/ior/package.html

Print this page




  24 
  25 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  26 or visit www.oracle.com if you need additional information or have any
  27 questions.
  28 
  29 -->
  30 
  31 </head>
  32 <body bgcolor="white">
  33 <p>
  34 Provides access to the components and profiles in an IOR without the overhead
  35 of CDR encoding.
  36 <p>
  37 The abstract model of IORs works as follows:
  38 
  39 <ul>
  40 <li>An IOR has a type ID string, and contains TaggedProfile instances.</li>
  41 <li>An IIOPProfile isA TaggedProfile.</li>
  42 <li>An IIOPProfile is composed of an IIOPProfileTemplate and an object ID.</li>
  43 <li>An IIOPProfileTemplate has an ObjectKeyTemplate, and contains TaggedComponents.</li>
  44 <li>A TaggedComponent has an ID, and can be written to an OuputStream.<li>
  45 <li>A TaggedComponentFactory reads a TaggedComponent from an InputStream.<li>
  46 </ul>
  47 <p>
  48 In all cases, containment is represented by having the appropriate interface (IOR and
  49 IIOPProfileTemplate above) extend java.util.List.  This makes it easy to use all of the 
  50 facilities in the Java collections framework with IORs.  However, note that all
  51 objects available through these APIs are immutable.  Thus all list update operations
  52 through UnsupportedOperationException, and list iterators cannot modify the underlying
  53 list.
  54 <p>
  55 Templates are used because the basic object adapter model for object creation is to 
  56 establish all properties of an IOR (except for type and object ID) when the object
  57 adapter is created.  This has been present for the POA essentially from the beginning,
  58 since policies can only be passed to create_POA, and cannot be changed on an existing
  59 POA.  The Portable Interceptors work has also made this clear, since the IOR interceptor
  60 runs only when an object adapter is created, which is the only time that user code
  61 can add tagged components to an IOR.
  62 
  63 </body>
  64 </html>


  24 
  25 Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  26 or visit www.oracle.com if you need additional information or have any
  27 questions.
  28 
  29 -->
  30 
  31 </head>
  32 <body bgcolor="white">
  33 <p>
  34 Provides access to the components and profiles in an IOR without the overhead
  35 of CDR encoding.
  36 <p>
  37 The abstract model of IORs works as follows:
  38 
  39 <ul>
  40 <li>An IOR has a type ID string, and contains TaggedProfile instances.</li>
  41 <li>An IIOPProfile isA TaggedProfile.</li>
  42 <li>An IIOPProfile is composed of an IIOPProfileTemplate and an object ID.</li>
  43 <li>An IIOPProfileTemplate has an ObjectKeyTemplate, and contains TaggedComponents.</li>
  44 <li>A TaggedComponent has an ID, and can be written to an OuputStream.</li>
  45 <li>A TaggedComponentFactory reads a TaggedComponent from an InputStream.</li>
  46 </ul>
  47 <p>
  48 In all cases, containment is represented by having the appropriate interface (IOR and
  49 IIOPProfileTemplate above) extend java.util.List.  This makes it easy to use all of the 
  50 facilities in the Java collections framework with IORs.  However, note that all
  51 objects available through these APIs are immutable.  Thus all list update operations
  52 through UnsupportedOperationException, and list iterators cannot modify the underlying
  53 list.
  54 <p>
  55 Templates are used because the basic object adapter model for object creation is to 
  56 establish all properties of an IOR (except for type and object ID) when the object
  57 adapter is created.  This has been present for the POA essentially from the beginning,
  58 since policies can only be passed to create_POA, and cannot be changed on an existing
  59 POA.  The Portable Interceptors work has also made this clear, since the IOR interceptor
  60 runs only when an object adapter is created, which is the only time that user code
  61 can add tagged components to an IOR.
  62 
  63 </body>
  64 </html>
< prev index next >