blob: 5977fbbe16a0d06f6defe0577ce487d6d2d9f6d3 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0) on Sun Aug 28 20:41:46 EST 2016 -->
<title>net.jini.io (Apache River v3.0.0 Specification-only API Documentation)</title>
<meta name="date" content="2016-08-28">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="net.jini.io (Apache River v3.0.0 Specification-only API Documentation)";
}
}
catch(err) {
}
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../net/jini/iiop/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../net/jini/io/context/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?net/jini/io/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Package" class="title">Package&nbsp;net.jini.io</h1>
<div class="docSummary">
<div class="block">Provides I/O interfaces and utility classes.</div>
</div>
<p>See:&nbsp;<a href="#package.description">Description</a></p>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Interface Summary table, listing interfaces, and an explanation">
<caption><span>Interface Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Interface</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../net/jini/io/ObjectStreamContext.html" title="interface in net.jini.io">ObjectStreamContext</a></td>
<td class="colLast">
<div class="block">Provides a collection of context information objects that are
associated with an <a href="http://docs.oracle.com/javase/6/docs/api/java/io/ObjectOutputStream.html?is-external=true" title="class or interface in java.io"><code>ObjectOutputStream</code></a> or <a href="http://docs.oracle.com/javase/6/docs/api/java/io/ObjectInputStream.html?is-external=true" title="class or interface in java.io"><code>ObjectInputStream</code></a> instance that implements this interface.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Class Summary table, listing classes, and an explanation">
<caption><span>Class Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Class</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../net/jini/io/MarshalInputStream.html" title="class in net.jini.io">MarshalInputStream</a></td>
<td class="colLast">
<div class="block">An extension of <code>ObjectInputStream</code> that implements the
dynamic class loading semantics of Java(TM) Remote Method
Invocation (Java RMI) argument and result
unmarshalling (using <a href="../../../net/jini/loader/ClassLoading.html" title="class in net.jini.loader"><code>ClassLoading</code></a>).</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="../../../net/jini/io/MarshalledInstance.html" title="class in net.jini.io">MarshalledInstance</a></td>
<td class="colLast">
<div class="block">A <code>MarshalledInstance</code> contains an object in serialized
form.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="../../../net/jini/io/MarshalOutputStream.html" title="class in net.jini.io">MarshalOutputStream</a></td>
<td class="colLast">
<div class="block">An extension of <code>ObjectOutputStream</code> that implements the
dynamic class loading semantics of Java(TM) Remote Method Invocation
(Java RMI) argument and result
marshalling (using <a href="../../../net/jini/loader/ClassLoading.html" title="class in net.jini.loader"><code>ClassLoading</code></a>).</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList">
<table class="typeSummary" border="0" cellpadding="3" cellspacing="0" summary="Exception Summary table, listing exceptions, and an explanation">
<caption><span>Exception Summary</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Exception</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="../../../net/jini/io/UnsupportedConstraintException.html" title="class in net.jini.io">UnsupportedConstraintException</a></td>
<td class="colLast">
<div class="block">Typically used as the nested exception of a
<a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/ConnectIOException.html?is-external=true" title="class or interface in java.rmi"><code>ConnectIOException</code></a> if the constraints for a remote call
cannot be satisfied.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
<a name="package.description">
<!-- -->
</a>
<h2 title="Package net.jini.io Description">Package net.jini.io Description</h2>
<div class="block">Provides I/O interfaces and utility classes.
<h2><code>ObjectStreamContext</code></h2>
<p>The interface <a href="../../../net/jini/io/ObjectStreamContext.html" title="interface in net.jini.io"><code>ObjectStreamContext</code></a> may be
implemented by an object serialization stream class (a subclass of
<a href="http://docs.oracle.com/javase/6/docs/api/java/io/ObjectOutputStream.html?is-external=true" title="class or interface in java.io"><code>ObjectOutputStream</code></a> or <a href="http://docs.oracle.com/javase/6/docs/api/java/io/ObjectInputStream.html?is-external=true" title="class or interface in java.io"><code>ObjectInputStream</code></a>) to provide each object being serialized or
deserialized with access to context information relevant to the
overall serialization or deserialization operation. The class of an
object that is being serialized or deserialized can test (in its
private <code>writeObject(ObjectOutputStream)</code> or
<code>readObject(ObjectInputStream)</code> method) if the object
stream being used is an instance of <code>ObjectStreamContext</code>.
If the stream class does implement that interface, the class can then
retrieve the context information (as a <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util"><code>Collection</code></a> of context objects) by invoking the stream's
<code>getObjectStreamContext</code> method. The context information
available from a given element of the collection is determined by that
element's type. Examples of types that a context object might
implement include <a href="../../../net/jini/io/context/ClientHost.html" title="interface in net.jini.io.context"><code>ClientHost</code></a> and <a href="../../../net/jini/io/context/ClientSubject.html" title="interface in net.jini.io.context"><code>ClientSubject</code></a>.
<h2><code>MarshalOutputStream</code> and <code>MarshalInputStream</code></h2>
<p>The classes <a href="../../../net/jini/io/MarshalOutputStream.html" title="class in net.jini.io"><code>MarshalOutputStream</code></a> and <a href="../../../net/jini/io/MarshalInputStream.html" title="class in net.jini.io"><code>MarshalInputStream</code></a> extend the object serialization stream
classes <a href="http://docs.oracle.com/javase/6/docs/api/java/io/ObjectOutputStream.html?is-external=true" title="class or interface in java.io"><code>ObjectOutputStream</code></a> and <a href="http://docs.oracle.com/javase/6/docs/api/java/io/ObjectInputStream.html?is-external=true" title="class or interface in java.io"><code>ObjectInputStream</code></a> to implement the dynamic class loading
semantics of RMI argument and result marshalling and unmarshalling.
<code>MarshalOutputStream</code> and <code>MarshalInputStream</code>
use <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/server/RMIClassLoader.html?is-external=true" title="class or interface in java.rmi.server"><code>RMIClassLoader</code></a> to get class annotations
for marshalling and to resolve codebase annotations to <a href="http://docs.oracle.com/javase/6/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang"><code>Class</code></a> objects for unmarshalling.
<code>MarshalInputStream</code> supports optional verification that
the codebase annotation URLs used to resolve classes provide content
integrity (see <a href="../../../net/jini/security/Security.html#verifyCodebaseIntegrity-java.lang.String-java.lang.ClassLoader-"><code>Security.verifyCodebaseIntegrity</code></a>). <code>MarshalOutputStream</code>
and <code>MarshalInputStream</code> may be extended (in concert) to
communicate class annotations in a way other than in the streams' own
data. Both <code>MarshalOutputStream</code> and
<code>MarshalInputStream</code> implement
<code>ObjectStreamContext</code>.
<h2><code>MarshalledInstance</code></h2>
<p>A <a href="../../../net/jini/io/MarshalledInstance.html" title="class in net.jini.io"><code>MarshalledInstance</code></a> contains an object in
serialized form. A <code>MarshalledInstance</code> can be
unmarshalled on demand, allowing an object to be sent in such a way
that the receiver can control when and in what context the object is
unmarshalled. <code>MarshalledInstance</code> provides functionality
similar to <a href="http://docs.oracle.com/javase/6/docs/api/java/rmi/MarshalledObject.html?is-external=true" title="class or interface in java.rmi"><code>MarshalledObject</code></a>, but it additionally
supports use of object stream contexts and optional verification that
the codebase annotation URLs used to resolve classes provide content
integrity. A convenience constructor and method are provided for
converting between <code>MarshalledObject</code> and
<code>MarshalledInstance</code> instances.</div>
<dl>
<dt><span class="simpleTagLabel">Since:</span></dt>
<dd>2.0</dd>
<dt><span class="simpleTagLabel">Version:</span></dt>
<dd>2.0</dd>
</dl>
</div>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li class="navBarCell1Rev">Package</li>
<li>Class</li>
<li><a href="package-use.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../net/jini/iiop/package-summary.html">Prev&nbsp;Package</a></li>
<li><a href="../../../net/jini/io/context/package-summary.html">Next&nbsp;Package</a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?net/jini/io/package-summary.html" target="_top">Frames</a></li>
<li><a href="package-summary.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>