package.html revision 608:7e06bf1dcb09
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
2<html>
3<head>
4<!--
5
6Copyright (c) 2002, 2003, Oracle and/or its affiliates. All rights reserved.
7DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
8
9This code is free software; you can redistribute it and/or modify it
10under the terms of the GNU General Public License version 2 only, as
11published by the Free Software Foundation.  Oracle designates this
12particular file as subject to the "Classpath" exception as provided
13by Oracle in the LICENSE file that accompanied this code.
14
15This code is distributed in the hope that it will be useful, but WITHOUT
16ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
17FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
18version 2 for more details (a copy is included in the LICENSE file that
19accompanied this code).
20
21You should have received a copy of the GNU General Public License version
222 along with this work; if not, write to the Free Software Foundation,
23Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
24
25Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
26or visit www.oracle.com if you need additional information or have any
27questions.
28
29-->
30
31</head>
32<body bgcolor="white">
33<p>
34Provides access to the components and profiles in an IOR without the overhead
35of CDR encoding.
36<p>
37The 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>
48In all cases, containment is represented by having the appropriate interface (IOR and
49IIOPProfileTemplate above) extend java.util.List.  This makes it easy to use all of the 
50facilities in the Java collections framework with IORs.  However, note that all
51objects available through these APIs are immutable.  Thus all list update operations
52through UnsupportedOperationException, and list iterators cannot modify the underlying
53list.
54<p>
55Templates are used because the basic object adapter model for object creation is to 
56establish all properties of an IOR (except for type and object ID) when the object
57adapter is created.  This has been present for the POA essentially from the beginning,
58since policies can only be passed to create_POA, and cannot be changed on an existing
59POA.  The Portable Interceptors work has also made this clear, since the IOR interceptor
60runs only when an object adapter is created, which is the only time that user code
61can add tagged components to an IOR.
62
63</body>
64</html>
65