FreePastry/docs/javadoc/rice/p2p/util/XMLObjectInputStream.html

2078 lines
82 KiB
HTML
Raw Permalink Normal View History

2019-05-13 16:45:05 +04:00
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--NewPage-->
<HTML>
<HEAD>
<!-- Generated by javadoc (build 1.6.0_07) on Fri Mar 13 20:01:32 CET 2009 -->
<TITLE>
XMLObjectInputStream (Rice Pastry - API Specifications)
</TITLE>
<META NAME="date" CONTENT="2009-03-13">
<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
<SCRIPT type="text/javascript">
function windowTitle()
{
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="XMLObjectInputStream (Rice Pastry - API Specifications)";
}
}
</SCRIPT>
<NOSCRIPT>
</NOSCRIPT>
</HEAD>
<BODY BGCOLOR="white" onload="windowTitle();">
<HR>
<!-- ========= START OF TOP NAVBAR ======= -->
<A NAME="navbar_top"><!-- --></A>
<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_top_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/XMLObjectInputStream.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Rice Pastry API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../rice/p2p/util/TimerWeakHashMap.HardLinkTimerTask.html" title="class in rice.p2p.util"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../rice/p2p/util/XMLObjectInputStream.GetField.html" title="class in rice.p2p.util"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?rice/p2p/util/XMLObjectInputStream.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="XMLObjectInputStream.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_top"></A>
<!-- ========= END OF TOP NAVBAR ========= -->
<HR>
<!-- ======== START OF CLASS DATA ======== -->
<H2>
<FONT SIZE="-1">
rice.p2p.util</FONT>
<BR>
Class XMLObjectInputStream</H2>
<PRE>
java.lang.Object
<IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.io.InputStream
<IMG SRC="../../../resources/inherit.gif" ALT="extended by ">java.io.ObjectInputStream
<IMG SRC="../../../resources/inherit.gif" ALT="extended by "><B>rice.p2p.util.XMLObjectInputStream</B>
</PRE>
<DL>
<DT><B>All Implemented Interfaces:</B> <DD>java.io.Closeable, java.io.DataInput, java.io.ObjectInput, java.io.ObjectStreamConstants</DD>
</DL>
<HR>
<DL>
<DT><PRE>public class <B>XMLObjectInputStream</B><DT>extends java.io.ObjectInputStream</DL>
</PRE>
<P>
XMLObjectInputStreamm is an extension of ObjectInputStreamm which provides
for deserialization for objects which have been converted to XML via a
XMLObjectOutputStream. This class supports all of the features of
the ObjectInputStreamm, including serialization support for any Java
object graph implementing the Serializable interface, support for
Externalizable classes, custom deserialization via the readObject() method,
class evolution via the readObjectNoData() method, alternate field
reading mechanisms via the readFields() method, support for the
readUnshared method, and dynamic object replacement via the readResolve()
method.
The format of the XML data to be read in should conform to the JSX XML
Schema, available online at http://www.jsx.org/jsx.xsd. This class is
designed to be able to read objects serialized using JSX, however, this
has not been fully tested and bugs may be encountered.
<P>
<P>
<DL>
<DT><B>Version:</B></DT>
<DD>$Id: XMLObjectInputStream.java 4654 2009-01-08 16:33:07Z jeffh $</DD>
<DT><B>Author:</B></DT>
<DD>Alan Mislove</DD>
</DL>
<HR>
<P>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<A NAME="nested_class_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Nested Class Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.GetField.html" title="class in rice.p2p.util">XMLObjectInputStream.GetField</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;This class is an implementation of GetField which is compatible with
the XMLObjectInputStreamm.</TD>
</TR>
</TABLE>
&nbsp;<!-- =========== FIELD SUMMARY =========== -->
<A NAME="field_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Field Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;<A HREF="../../../rice/p2p/util/SoftHashMap.html" title="class in rice.p2p.util">SoftHashMap</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#CONSTRUCTORS">CONSTRUCTORS</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;A cache of constructors, mapping classes to serialization constructors</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.util.Stack</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#currentClasses">currentClasses</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The stack of class types which are being read off of the stream</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.util.Stack</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#currentObjects">currentObjects</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The stack of objects which are currently being read off of the stream</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#depth">depth</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The depth at which we are currently at in the object tree</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;<A HREF="../../../rice/p2p/util/SoftHashMap.html" title="class in rice.p2p.util">SoftHashMap</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#READ_OBJECTS">READ_OBJECTS</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The hashmap of readObject methods, mapping Class->Method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected static&nbsp;<A HREF="../../../rice/p2p/util/SoftHashMap.html" title="class in rice.p2p.util">SoftHashMap</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#READ_RESOLVES">READ_RESOLVES</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The hashmap of readResolve methods, mapping Class->Method</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../rice/p2p/util/XMLReader.html" title="class in rice.p2p.util">XMLReader</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#reader">reader</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The underlying reader, which parses the XML</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.util.Hashtable</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#references">references</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The hashtable of references, which is updated each time a new object is
read off of the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;sun.reflect.ReflectionFactory</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#reflFactory">reflFactory</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The ReflectionFactory, which allows for prividged construction of
objects</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;rice.p2p.util.XMLObjectInputStream.ValidationList</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#vlist">vlist</A></B></CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The list of validation objects waiting for the entire object graph to be read in</TD>
</TR>
</TABLE>
&nbsp;<A NAME="fields_inherited_from_class_java.io.ObjectStreamConstants"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Fields inherited from interface java.io.ObjectStreamConstants</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>baseWireHandle, PROTOCOL_VERSION_1, PROTOCOL_VERSION_2, SC_BLOCK_DATA, SC_ENUM, SC_EXTERNALIZABLE, SC_SERIALIZABLE, SC_WRITE_METHOD, STREAM_MAGIC, STREAM_VERSION, SUBCLASS_IMPLEMENTATION_PERMISSION, SUBSTITUTION_PERMISSION, TC_ARRAY, TC_BASE, TC_BLOCKDATA, TC_BLOCKDATALONG, TC_CLASS, TC_CLASSDESC, TC_ENDBLOCKDATA, TC_ENUM, TC_EXCEPTION, TC_LONGSTRING, TC_MAX, TC_NULL, TC_OBJECT, TC_PROXYCLASSDESC, TC_REFERENCE, TC_RESET, TC_STRING</CODE></TD>
</TR>
</TABLE>
&nbsp;
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<A NAME="constructor_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Constructor Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#XMLObjectInputStream(java.io.InputStream)">XMLObjectInputStream</A></B>(java.io.InputStream&nbsp;in)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Constructor which reads data from the given input stream in order
deserialize objects.</TD>
</TR>
</TABLE>
&nbsp;
<!-- ========== METHOD SUMMARY =========== -->
<A NAME="method_summary"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
<B>Method Summary</B></FONT></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#close()">close</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which closes the underlying input stream for reading.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#defaultReadObject()">defaultReadObject</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which can be called by objects if they have a readObject() method.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Class</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#getClass(java.lang.String)">getClass</A></B>(java.lang.String&nbsp;name)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which returns the class object for class names written to the
stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#getReference(java.lang.String)">getReference</A></B>(java.lang.String&nbsp;reference)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which returns a previously stored reference.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.reflect.Constructor</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#getSerializableConstructor(java.lang.Class)">getSerializableConstructor</A></B>(java.lang.Class&nbsp;c)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which returns the Serializable constructor for the provided class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#newInstance(java.lang.Class)">newInstance</A></B>(java.lang.Class&nbsp;c)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which returns a new instance of the provided class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#putReference(java.lang.String, java.lang.Object)">putReference</A></B>(java.lang.String&nbsp;reference,
java.lang.Object&nbsp;o)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which adds a reference in the hashtable of references.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#read()">read</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a byte from the underlying output stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#read(byte[], int, int)">read</A></B>(byte[]&nbsp;b,
int&nbsp;offset,
int&nbsp;length)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a array of bytes from the underlying output stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readArray(boolean)">readArray</A></B>(boolean&nbsp;shared)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an array off of the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readBoolean()">readBoolean</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a boolean from the stream and returns the result.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;boolean</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readBooleanHelper()">readBooleanHelper</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an boolean from the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readByte()">readByte</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a byte from the stream and returns the result.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;byte</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readByteHelper()">readByteHelper</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an byte from the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;char</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readChar()">readChar</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a char from the stream and returns the result.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;char</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readCharHelper()">readCharHelper</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an char from the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readClass(java.lang.Object)">readClass</A></B>(java.lang.Object&nbsp;o)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads the information for one class for a given object from the
stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readDouble()">readDouble</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a double from the stream and returns the result.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;double</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readDoubleHelper()">readDoubleHelper</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an double from the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readField(java.lang.Object, java.lang.Class)">readField</A></B>(java.lang.Object&nbsp;o,
java.lang.Class&nbsp;c)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a single field from the stream, and assignes it to
the provided object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.io.ObjectInputStream.GetField</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readFields()">readFields</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which can be called by objects if they have a readObject() method.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readFields(java.lang.Object, java.lang.Class)">readFields</A></B>(java.lang.Object&nbsp;o,
java.lang.Class&nbsp;c)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which initiates the default field reading mechanism for the given
object's class.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readFloat()">readFloat</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a float from the stream and returns the result.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;float</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readFloatHelper()">readFloatHelper</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an float from the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readFully(byte[])">readFully</A></B>(byte[]&nbsp;b)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a byte from the underlying output stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readFully(byte[], int, int)">readFully</A></B>(byte[]&nbsp;b,
int&nbsp;offset,
int&nbsp;length)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a byte from the underlying output stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readGetField(rice.p2p.util.XMLObjectInputStream.GetField)">readGetField</A></B>(<A HREF="../../../rice/p2p/util/XMLObjectInputStream.GetField.html" title="class in rice.p2p.util">XMLObjectInputStream.GetField</A>&nbsp;g)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which read a single field from the stream and places it in the provided
GetField object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;<A HREF="../../../rice/p2p/util/XMLObjectInputStream.GetField.html" title="class in rice.p2p.util">XMLObjectInputStream.GetField</A></CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readGetFields()">readGetFields</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads all of the field data from the stream, as readFields() does,
but instead of assigning the fields to the object, it returns them as a GetField
object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readInt()">readInt</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an int from the stream and returns the result.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readIntHelper()">readIntHelper</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an int from the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readLong()">readLong</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a long from the stream and returns the result.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;long</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readLongHelper()">readLongHelper</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an long from the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readNull()">readNull</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a null item off of the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readObjectHelper()">readObjectHelper</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an object from the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readObjectOverride()">readObjectOverride</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which is called by ObjectInputStreamm.readObject(), and reads
the next object from the stream, and returns the result.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readOrdinaryObject(boolean)">readOrdinaryObject</A></B>(boolean&nbsp;shared)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an ordinary object from the stream (not a String or Array).</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readPrimitive(java.lang.String)">readPrimitive</A></B>(java.lang.String&nbsp;type)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a primitive value from the stream and
returns the String representation to the callee for processing.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readPrimitiveField(java.lang.Object, java.lang.reflect.Field)">readPrimitiveField</A></B>(java.lang.Object&nbsp;o,
java.lang.reflect.Field&nbsp;f)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a primitive field from the stream, and places it in the
given object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readPrimitiveGetField(rice.p2p.util.XMLObjectInputStream.GetField)">readPrimitiveGetField</A></B>(<A HREF="../../../rice/p2p/util/XMLObjectInputStream.GetField.html" title="class in rice.p2p.util">XMLObjectInputStream.GetField</A>&nbsp;g)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a primitive field from the stream, and places it in the
provided GetField object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readReference()">readReference</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a reference off of the stream, and looks the reference up
in the references table.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;short</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readShort()">readShort</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a short from the stream and returns the result.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;short</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readShortHelper()">readShortHelper</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an short from the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readStreamHeader()">readStreamHeader</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads the XML header off of the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readString(boolean)">readString</A></B>(boolean&nbsp;shared)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a string item off of the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readUnreadOptionalData()">readUnreadOptionalData</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads any extra data from the stream which was not read by the object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readUnshared()">readUnshared</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads the next object from the stream and does not record a
reference to the object.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>protected &nbsp;java.lang.Object</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readUnsharedHelper(boolean)">readUnsharedHelper</A></B>(boolean&nbsp;shared)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an object from the stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readUnsignedByte()">readUnsignedByte</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an unsigned byte from the underlying output stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;int</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readUnsignedShort()">readUnsignedShort</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads an unsigned short from the underlying output stream.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;java.lang.String</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#readUTF()">readUTF</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which reads a UTF-encoded String from the stream and returns the
result.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#registerValidation(java.io.ObjectInputValidation, int)">registerValidation</A></B>(java.io.ObjectInputValidation&nbsp;obj,
int&nbsp;prio)</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Register an object to be validated before the graph is returned.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
<CODE>&nbsp;void</CODE></FONT></TD>
<TD><CODE><B><A HREF="../../../rice/p2p/util/XMLObjectInputStream.html#reset()">reset</A></B>()</CODE>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Method which resets the input stream, which removes the binding of all previously
stored references.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.io.ObjectInputStream"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.io.ObjectInputStream</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>available, enableResolveObject, readClassDescriptor, readLine, readObject, resolveClass, resolveObject, resolveProxyClass, skipBytes</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.io.InputStream"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.io.InputStream</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>mark, markSupported, read, skip</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.io.ObjectInput"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
<TH ALIGN="left"><B>Methods inherited from interface java.io.ObjectInput</B></TH>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD><CODE>read, skip</CODE></TD>
</TR>
</TABLE>
&nbsp;
<P>
<!-- ============ FIELD DETAIL =========== -->
<A NAME="field_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Field Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="READ_RESOLVES"><!-- --></A><H3>
READ_RESOLVES</H3>
<PRE>
protected static <A HREF="../../../rice/p2p/util/SoftHashMap.html" title="class in rice.p2p.util">SoftHashMap</A> <B>READ_RESOLVES</B></PRE>
<DL>
<DD>The hashmap of readResolve methods, mapping Class->Method
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="READ_OBJECTS"><!-- --></A><H3>
READ_OBJECTS</H3>
<PRE>
protected static <A HREF="../../../rice/p2p/util/SoftHashMap.html" title="class in rice.p2p.util">SoftHashMap</A> <B>READ_OBJECTS</B></PRE>
<DL>
<DD>The hashmap of readObject methods, mapping Class->Method
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="CONSTRUCTORS"><!-- --></A><H3>
CONSTRUCTORS</H3>
<PRE>
protected static <A HREF="../../../rice/p2p/util/SoftHashMap.html" title="class in rice.p2p.util">SoftHashMap</A> <B>CONSTRUCTORS</B></PRE>
<DL>
<DD>A cache of constructors, mapping classes to serialization constructors
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="reader"><!-- --></A><H3>
reader</H3>
<PRE>
protected <A HREF="../../../rice/p2p/util/XMLReader.html" title="class in rice.p2p.util">XMLReader</A> <B>reader</B></PRE>
<DL>
<DD>The underlying reader, which parses the XML
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="references"><!-- --></A><H3>
references</H3>
<PRE>
protected java.util.Hashtable <B>references</B></PRE>
<DL>
<DD>The hashtable of references, which is updated each time a new object is
read off of the stream.
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="currentObjects"><!-- --></A><H3>
currentObjects</H3>
<PRE>
protected java.util.Stack <B>currentObjects</B></PRE>
<DL>
<DD>The stack of objects which are currently being read off of the stream
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="currentClasses"><!-- --></A><H3>
currentClasses</H3>
<PRE>
protected java.util.Stack <B>currentClasses</B></PRE>
<DL>
<DD>The stack of class types which are being read off of the stream
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="reflFactory"><!-- --></A><H3>
reflFactory</H3>
<PRE>
protected sun.reflect.ReflectionFactory <B>reflFactory</B></PRE>
<DL>
<DD>The ReflectionFactory, which allows for prividged construction of
objects
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="vlist"><!-- --></A><H3>
vlist</H3>
<PRE>
protected rice.p2p.util.XMLObjectInputStream.ValidationList <B>vlist</B></PRE>
<DL>
<DD>The list of validation objects waiting for the entire object graph to be read in
<P>
<DL>
</DL>
</DL>
<HR>
<A NAME="depth"><!-- --></A><H3>
depth</H3>
<PRE>
protected int <B>depth</B></PRE>
<DL>
<DD>The depth at which we are currently at in the object tree
<P>
<DL>
</DL>
</DL>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<A NAME="constructor_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Constructor Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="XMLObjectInputStream(java.io.InputStream)"><!-- --></A><H3>
XMLObjectInputStream</H3>
<PRE>
public <B>XMLObjectInputStream</B>(java.io.InputStream&nbsp;in)
throws java.io.IOException</PRE>
<DL>
<DD>Constructor which reads data from the given input stream in order
deserialize objects. This constructor also reads the header from the
stream, and throws an IOException if the correct header is not seen.
<P>
<DL>
<DT><B>Parameters:</B><DD><CODE>in</CODE> - The input stream to read data from
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If the stream header is corrupt</DL>
</DL>
<!-- ============ METHOD DETAIL ========== -->
<A NAME="method_detail"><!-- --></A>
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
<B>Method Detail</B></FONT></TH>
</TR>
</TABLE>
<A NAME="readStreamHeader()"><!-- --></A><H3>
readStreamHeader</H3>
<PRE>
protected void <B>readStreamHeader</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads the XML header off of the stream. Usually, this is the
<?xml version="1.0"?> tag, but it may include processing instructions.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>readStreamHeader</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If the stream header is corrupt</DL>
</DD>
</DL>
<HR>
<A NAME="close()"><!-- --></A><H3>
close</H3>
<PRE>
public void <B>close</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which closes the underlying input stream for reading. Any subsequent
reads will throw an IOException.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>close</CODE> in interface <CODE>java.io.Closeable</CODE><DT><B>Specified by:</B><DD><CODE>close</CODE> in interface <CODE>java.io.ObjectInput</CODE><DT><B>Overrides:</B><DD><CODE>close</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="reset()"><!-- --></A><H3>
reset</H3>
<PRE>
public void <B>reset</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which resets the input stream, which removes the binding of all previously
stored references.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>reset</CODE> in class <CODE>java.io.InputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="read()"><!-- --></A><H3>
read</H3>
<PRE>
public int <B>read</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a byte from the underlying output stream. Simply calls
readByte()
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>read</CODE> in interface <CODE>java.io.ObjectInput</CODE><DT><B>Overrides:</B><DD><CODE>read</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="read(byte[], int, int)"><!-- --></A><H3>
read</H3>
<PRE>
public int <B>read</B>(byte[]&nbsp;b,
int&nbsp;offset,
int&nbsp;length)
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a array of bytes from the underlying output stream. Simply calls
b[x] = readByte() on each of the array elements.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>read</CODE> in interface <CODE>java.io.ObjectInput</CODE><DT><B>Overrides:</B><DD><CODE>read</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readFully(byte[])"><!-- --></A><H3>
readFully</H3>
<PRE>
public void <B>readFully</B>(byte[]&nbsp;b)
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a byte from the underlying output stream. Simply calls
read()
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readFully</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readFully</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readFully(byte[], int, int)"><!-- --></A><H3>
readFully</H3>
<PRE>
public void <B>readFully</B>(byte[]&nbsp;b,
int&nbsp;offset,
int&nbsp;length)
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a byte from the underlying output stream. Simply calls
read()
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readFully</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readFully</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readUnsignedByte()"><!-- --></A><H3>
readUnsignedByte</H3>
<PRE>
public int <B>readUnsignedByte</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an unsigned byte from the underlying output stream. Simply calls
readByte()
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readUnsignedByte</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readUnsignedByte</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readUnsignedShort()"><!-- --></A><H3>
readUnsignedShort</H3>
<PRE>
public int <B>readUnsignedShort</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an unsigned short from the underlying output stream. Simply calls
readShort()
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readUnsignedShort</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readUnsignedShort</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readInt()"><!-- --></A><H3>
readInt</H3>
<PRE>
public int <B>readInt</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an int from the stream and returns the result.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readInt</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readInt</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The value from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readBoolean()"><!-- --></A><H3>
readBoolean</H3>
<PRE>
public boolean <B>readBoolean</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a boolean from the stream and returns the result.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readBoolean</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readBoolean</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The value from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readByte()"><!-- --></A><H3>
readByte</H3>
<PRE>
public byte <B>readByte</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a byte from the stream and returns the result.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readByte</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readByte</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The value from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readChar()"><!-- --></A><H3>
readChar</H3>
<PRE>
public char <B>readChar</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a char from the stream and returns the result.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readChar</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readChar</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The value from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readDouble()"><!-- --></A><H3>
readDouble</H3>
<PRE>
public double <B>readDouble</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a double from the stream and returns the result.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readDouble</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readDouble</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The value from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readFloat()"><!-- --></A><H3>
readFloat</H3>
<PRE>
public float <B>readFloat</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a float from the stream and returns the result.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readFloat</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readFloat</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The value from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readLong()"><!-- --></A><H3>
readLong</H3>
<PRE>
public long <B>readLong</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a long from the stream and returns the result.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readLong</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readLong</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The value from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readShort()"><!-- --></A><H3>
readShort</H3>
<PRE>
public short <B>readShort</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a short from the stream and returns the result.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readShort</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readShort</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The value from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readUTF()"><!-- --></A><H3>
readUTF</H3>
<PRE>
public java.lang.String <B>readUTF</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a UTF-encoded String from the stream and returns the
result. This method simply calls readObject(), as all strings are
UTF encoded in XML.
<P>
<DD><DL>
<DT><B>Specified by:</B><DD><CODE>readUTF</CODE> in interface <CODE>java.io.DataInput</CODE><DT><B>Overrides:</B><DD><CODE>readUTF</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The value from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readObjectOverride()"><!-- --></A><H3>
readObjectOverride</H3>
<PRE>
protected java.lang.Object <B>readObjectOverride</B>()
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which is called by ObjectInputStreamm.readObject(), and reads
the next object from the stream, and returns the result. If the object
(or any of it's descendents) has a readResolve() method, that object is
returned.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>readObjectOverride</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The value from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If a class in the stream cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readUnshared()"><!-- --></A><H3>
readUnshared</H3>
<PRE>
public java.lang.Object <B>readUnshared</B>()
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads the next object from the stream and does not record a
reference to the object. This guarantees that in future references to this
object in the stream will throw an IOException.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>readUnshared</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>The next object from the stream, without recording a reference
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If a class in the stream cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="defaultReadObject()"><!-- --></A><H3>
defaultReadObject</H3>
<PRE>
public void <B>defaultReadObject</B>()
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which can be called by objects if they have a readObject() method.
This method initiates the default field deserialization mechanism, and
sets all of the object's fields from the stream. If this method is called,
the readFields() method CANNOT be called by the same object. However, one
of these two methods MUST be called in the context of a readObject().
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>defaultReadObject</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If a class in the stream cannot be found
<DD><CODE>java.io.NotActiveException</CODE> - If a object is not currently being read</DL>
</DD>
</DL>
<HR>
<A NAME="readFields()"><!-- --></A><H3>
readFields</H3>
<PRE>
public java.io.ObjectInputStream.GetField <B>readFields</B>()
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which can be called by objects if they have a readObject() method.
This method initiates the default field deserialization mechanism, and reads
all of the default fields in the stream. It does NOT set the field values of
the object, however, but instead returns the result to the Object as a GetField
object. It is explicitly the responsibility of the object to set its fields
appropriately. If this method is called, the defaultReadObject() method CANNOT
be called by the same object. However, one of these two methods MUST be called
in the context of a readObject().
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>readFields</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Returns:</B><DD>A GetField, representing all of this object's fields
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If a class in the stream cannot be found
<DD><CODE>java.io.NotActiveException</CODE> - If a object is not currently being read</DL>
</DD>
</DL>
<HR>
<A NAME="registerValidation(java.io.ObjectInputValidation, int)"><!-- --></A><H3>
registerValidation</H3>
<PRE>
public void <B>registerValidation</B>(java.io.ObjectInputValidation&nbsp;obj,
int&nbsp;prio)
throws java.io.NotActiveException,
java.io.InvalidObjectException</PRE>
<DL>
<DD>Register an object to be validated before the graph is returned. While
similar to resolveObject these validations are called after the entire
graph has been reconstituted. Typically, a readObject method will
register the object with the stream so that when all of the objects are
restored a final set of validations can be performed.
<P>
<DD><DL>
<DT><B>Overrides:</B><DD><CODE>registerValidation</CODE> in class <CODE>java.io.ObjectInputStream</CODE></DL>
</DD>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>obj</CODE> - the object to receive the validation callback.<DD><CODE>prio</CODE> - controls the order of callbacks
<DT><B>Throws:</B>
<DD><CODE>java.io.NotActiveException</CODE> - The stream is not currently reading objects
so it is invalid to register a callback.
<DD><CODE>java.io.InvalidObjectException</CODE> - The validation object is null.</DL>
</DD>
</DL>
<HR>
<A NAME="getSerializableConstructor(java.lang.Class)"><!-- --></A><H3>
getSerializableConstructor</H3>
<PRE>
protected java.lang.reflect.Constructor <B>getSerializableConstructor</B>(java.lang.Class&nbsp;c)
throws java.io.IOException,
java.lang.NoSuchMethodException</PRE>
<DL>
<DD>Method which returns the Serializable constructor for the provided class. This
Constructor is the no-arg Constructor for the first non-Serializable class
in the class's superclass heirarchy. This method does not cache the result, but
does set the constructor to be accessible, regardless of the Java security
protection.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>c</CODE> - The class to fetch the constructor for
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.NoSuchMethodException</CODE> - If the first non-Serializable class does not have a no-arg
Constructor</DL>
</DD>
</DL>
<HR>
<A NAME="newInstance(java.lang.Class)"><!-- --></A><H3>
newInstance</H3>
<PRE>
protected java.lang.Object <B>newInstance</B>(java.lang.Class&nbsp;c)
throws java.io.IOException</PRE>
<DL>
<DD>Method which returns a new instance of the provided class. It does this by
getting the class's serializable constructor (described in getSerializableConstructor())
and using it to create a new object. Thus, all of the Serializable superclasses
of the object must be initialized from the stream.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>c</CODE> - The class to create a new instance of
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="getClass(java.lang.String)"><!-- --></A><H3>
getClass</H3>
<PRE>
protected java.lang.Class <B>getClass</B>(java.lang.String&nbsp;name)
throws java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which returns the class object for class names written to the
stream. If the name represents a primitive, the the X.TYPE class is
returned, otherwise, Class.forName() is used.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the class to return
<DT><B>Throws:</B>
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="putReference(java.lang.String, java.lang.Object)"><!-- --></A><H3>
putReference</H3>
<PRE>
protected void <B>putReference</B>(java.lang.String&nbsp;reference,
java.lang.Object&nbsp;o)</PRE>
<DL>
<DD>Method which adds a reference in the hashtable of references.
Multiple calls to this method will replace prior objects.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>reference</CODE> - The reference name to use<DD><CODE>o</CODE> - The object to reference</DL>
</DD>
</DL>
<HR>
<A NAME="getReference(java.lang.String)"><!-- --></A><H3>
getReference</H3>
<PRE>
protected java.lang.Object <B>getReference</B>(java.lang.String&nbsp;reference)</PRE>
<DL>
<DD>Method which returns a previously stored reference. If the
reference cannot be found, null is returned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>reference</CODE> - The reference to use
<DT><B>Returns:</B><DD>The referenced object, or null if none can be found</DL>
</DD>
</DL>
<HR>
<A NAME="readPrimitive(java.lang.String)"><!-- --></A><H3>
readPrimitive</H3>
<PRE>
protected java.lang.String <B>readPrimitive</B>(java.lang.String&nbsp;type)
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads a primitive value from the stream and
returns the String representation to the callee for processing.
This method assumes that the XML reader is currently on a
primitive tag, and does consume the end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - The type of primitive which should be next
<DT><B>Returns:</B><DD>The String representation of the primitive
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readIntHelper()"><!-- --></A><H3>
readIntHelper</H3>
<PRE>
protected int <B>readIntHelper</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an int from the stream. This method assumes
that the XML reader is currently on a primitive tag, and does
consume the end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - The type of primitive which should be next
<DT><B>Returns:</B><DD>The int read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readBooleanHelper()"><!-- --></A><H3>
readBooleanHelper</H3>
<PRE>
protected boolean <B>readBooleanHelper</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an boolean from the stream. This method assumes
that the XML reader is currently on a primitive tag, and does
consume the end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - The type of primitive which should be next
<DT><B>Returns:</B><DD>The boolean read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readByteHelper()"><!-- --></A><H3>
readByteHelper</H3>
<PRE>
protected byte <B>readByteHelper</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an byte from the stream. This method assumes
that the XML reader is currently on a primitive tag, and does
consume the end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - The type of primitive which should be next
<DT><B>Returns:</B><DD>The byte read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readCharHelper()"><!-- --></A><H3>
readCharHelper</H3>
<PRE>
protected char <B>readCharHelper</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an char from the stream. This method assumes
that the XML reader is currently on a primitive tag, and does
consume the end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - The type of primitive which should be next
<DT><B>Returns:</B><DD>The char read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readDoubleHelper()"><!-- --></A><H3>
readDoubleHelper</H3>
<PRE>
protected double <B>readDoubleHelper</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an double from the stream. This method assumes
that the XML reader is currently on a primitive tag, and does
consume the end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - The type of primitive which should be next
<DT><B>Returns:</B><DD>The double read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readFloatHelper()"><!-- --></A><H3>
readFloatHelper</H3>
<PRE>
protected float <B>readFloatHelper</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an float from the stream. This method assumes
that the XML reader is currently on a primitive tag, and does
consume the end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - The type of primitive which should be next
<DT><B>Returns:</B><DD>The float read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readLongHelper()"><!-- --></A><H3>
readLongHelper</H3>
<PRE>
protected long <B>readLongHelper</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an long from the stream. This method assumes
that the XML reader is currently on a primitive tag, and does
consume the end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - The type of primitive which should be next
<DT><B>Returns:</B><DD>The long read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readShortHelper()"><!-- --></A><H3>
readShortHelper</H3>
<PRE>
protected short <B>readShortHelper</B>()
throws java.io.IOException</PRE>
<DL>
<DD>Method which reads an short from the stream. This method assumes
that the XML reader is currently on a primitive tag, and does
consume the end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>type</CODE> - The type of primitive which should be next
<DT><B>Returns:</B><DD>The short read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs</DL>
</DD>
</DL>
<HR>
<A NAME="readObjectHelper()"><!-- --></A><H3>
readObjectHelper</H3>
<PRE>
protected java.lang.Object <B>readObjectHelper</B>()
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads an object from the stream. This method assumes
that the XML reader is currently on a start tag, and does
consume the corresponding end tag. If the next object represents a
reference or null, then the appropriate helper is called. Otherwise,
readObjectUnshared() is called to process the object.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>The object read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readUnsharedHelper(boolean)"><!-- --></A><H3>
readUnsharedHelper</H3>
<PRE>
protected java.lang.Object <B>readUnsharedHelper</B>(boolean&nbsp;shared)
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads an object from the stream. This method assumes
that the XML reader is currently on a start tag, and does
consume the corresponding end tag. This method also assumes that
the type of object which is being read is *sharable*, even if it is
not going to be shared. Thus, this method can read objects of type
String, Array, or Serializable.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>shared</CODE> - Whether or not to record a reference to this object
<DT><B>Returns:</B><DD>The object read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readReference()"><!-- --></A><H3>
readReference</H3>
<PRE>
protected java.lang.Object <B>readReference</B>()
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads a reference off of the stream, and looks the reference up
in the references table. If not corresponding object is found, an IOException
is thrown. This method expected that a reference tag has just been read, and
it does consume the end reference tag.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs or if a reference is not found
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readNull()"><!-- --></A><H3>
readNull</H3>
<PRE>
protected java.lang.Object <B>readNull</B>()
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads a null item off of the stream. This method expected that a
null tag has just been read, and it does consume the end null tag.
<P>
<DD><DL>
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readString(boolean)"><!-- --></A><H3>
readString</H3>
<PRE>
protected java.lang.Object <B>readString</B>(boolean&nbsp;shared)
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads a string item off of the stream. This method expects that
a start string tag has just been read, an it does consume the end start tag.
If this string is to be shared, a reference is added to the references tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>shared</CODE> - Whether or not to add this string to the references table
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readOrdinaryObject(boolean)"><!-- --></A><H3>
readOrdinaryObject</H3>
<PRE>
protected java.lang.Object <B>readOrdinaryObject</B>(boolean&nbsp;shared)
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads an ordinary object from the stream (not a String or Array).
This method assumes that the XML reader is currently on a start tag, and does
consume the corresponding end tag. This method first reads the class type,
and if it is Serializable, it constructs a new instance. Then, if the object
is shared and the id field is not null, it records a reference to the object.
If the object is Externalizable, the readExternal() method is called and the
object is returned. Otherwise, each of the superclasses are read, from highest
to lowest, using the readClass() method. Lastly, if the object defines a
readResolve() method, it is called and the result is recorded and returned.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>shared</CODE> - Whether or not to record a reference to this object
<DT><B>Returns:</B><DD>The object read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found
<DD><CODE>java.io.NotSerializableException</CODE> - If the class to be deserialized is not Serializable</DL>
</DD>
</DL>
<HR>
<A NAME="readClass(java.lang.Object)"><!-- --></A><H3>
readClass</H3>
<PRE>
protected java.lang.Object <B>readClass</B>(java.lang.Object&nbsp;o)
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads the information for one class for a given object from the
stream. This method assumes that the XML reader is currently on a start declaredClass tag,
and does consume the corresponding end declaredClass tag. This method first reads the class type,
and if it defines a readObject() method, it is called. Otherwise, the fields are
read in a default manner. Any extra data not read in the stream is read and
ignored.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - The object we are reading the the class for
<DT><B>Returns:</B><DD>The object read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readUnreadOptionalData()"><!-- --></A><H3>
readUnreadOptionalData</H3>
<PRE>
protected void <B>readUnreadOptionalData</B>()
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads any extra data from the stream which was not read by the object.
This method simply loops until it hits the appropriate end declaredClass tag, and
then returns. Thus, any data read by this method is ignored. However, the objects
here are deserialized as the stream may reference them in the future.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - The object we are reading the the class for
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readGetFields()"><!-- --></A><H3>
readGetFields</H3>
<PRE>
protected <A HREF="../../../rice/p2p/util/XMLObjectInputStream.GetField.html" title="class in rice.p2p.util">XMLObjectInputStream.GetField</A> <B>readGetFields</B>()
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads all of the field data from the stream, as readFields() does,
but instead of assigning the fields to the object, it returns them as a GetField
object. In this manner, the object itself can perform field inititalization.
<P>
<DD><DL>
<DT><B>Returns:</B><DD>The fields read from the stream
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readGetField(rice.p2p.util.XMLObjectInputStream.GetField)"><!-- --></A><H3>
readGetField</H3>
<PRE>
protected void <B>readGetField</B>(<A HREF="../../../rice/p2p/util/XMLObjectInputStream.GetField.html" title="class in rice.p2p.util">XMLObjectInputStream.GetField</A>&nbsp;g)
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which read a single field from the stream and places it in the provided
GetField object. This method assumes that the XML reader is on a start tag, and
that the item read has a field attribute.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>g</CODE> - The GetField object into which the field should be put
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readPrimitiveGetField(rice.p2p.util.XMLObjectInputStream.GetField)"><!-- --></A><H3>
readPrimitiveGetField</H3>
<PRE>
protected void <B>readPrimitiveGetField</B>(<A HREF="../../../rice/p2p/util/XMLObjectInputStream.GetField.html" title="class in rice.p2p.util">XMLObjectInputStream.GetField</A>&nbsp;g)
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads a primitive field from the stream, and places it in the
provided GetField object. This method assumes that the XML parser has just
read a primitive start tag, and that the tag has a field attribute. This method
does consume that end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>g</CODE> - The GetField object to put the primitive in
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="readFields(java.lang.Object, java.lang.Class)"><!-- --></A><H3>
readFields</H3>
<PRE>
protected void <B>readFields</B>(java.lang.Object&nbsp;o,
java.lang.Class&nbsp;c)
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which initiates the default field reading mechanism for the given
object's class. This method reads the start default tag, all of the fields,
and then reads the end default tag. It reads all of the fields using the
readField() method.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - The object which is currently being read in<DD><CODE>c</CODE> - The class to read the fields for
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readField(java.lang.Object, java.lang.Class)"><!-- --></A><H3>
readField</H3>
<PRE>
protected void <B>readField</B>(java.lang.Object&nbsp;o,
java.lang.Class&nbsp;c)
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads a single field from the stream, and assignes it to
the provided object. If the field cannot be found in the given class,
it is deserialized and then ignored, in case it is referenced later in
the stream.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - The object which is currently being read in<DD><CODE>c</CODE> - The class to read the fields for
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<HR>
<A NAME="readPrimitiveField(java.lang.Object, java.lang.reflect.Field)"><!-- --></A><H3>
readPrimitiveField</H3>
<PRE>
protected void <B>readPrimitiveField</B>(java.lang.Object&nbsp;o,
java.lang.reflect.Field&nbsp;f)
throws java.io.IOException,
java.lang.IllegalAccessException</PRE>
<DL>
<DD>Method which reads a primitive field from the stream, and places it in the
given object. This method assumes that the XML parser has just read a primitive
start tag, and that the tag has a field attribute. This method does consume
that end primitive tag.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>o</CODE> - The object to put the primitive in<DD><CODE>f</CODE> - The field representing the primitive about to be read
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.IllegalAccessException</CODE></DL>
</DD>
</DL>
<HR>
<A NAME="readArray(boolean)"><!-- --></A><H3>
readArray</H3>
<PRE>
protected java.lang.Object <B>readArray</B>(boolean&nbsp;shared)
throws java.io.IOException,
java.lang.ClassNotFoundException</PRE>
<DL>
<DD>Method which reads an array off of the stream. This method expects that a
start array tag has just been read, and does consume the end array tag. This
method constructs an array of the provided base type, and then recursively
reads in all of the objects for the array.
<P>
<DD><DL>
<DT><B>Parameters:</B><DD><CODE>shared</CODE> - Whether or not to add this array to the references table
<DT><B>Throws:</B>
<DD><CODE>java.io.IOException</CODE> - If an error occurs
<DD><CODE>java.lang.ClassNotFoundException</CODE> - If the class cannot be found</DL>
</DD>
</DL>
<!-- ========= END OF CLASS DATA ========= -->
<HR>
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<A NAME="navbar_bottom"><!-- --></A>
<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
<TR>
<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
<A NAME="navbar_bottom_firstrow"><!-- --></A>
<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
<TR ALIGN="center" VALIGN="top">
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/XMLObjectInputStream.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
<TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
</TR>
</TABLE>
</TD>
<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
Rice Pastry API</EM>
</TD>
</TR>
<TR>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
&nbsp;<A HREF="../../../rice/p2p/util/TimerWeakHashMap.HardLinkTimerTask.html" title="class in rice.p2p.util"><B>PREV CLASS</B></A>&nbsp;
&nbsp;<A HREF="../../../rice/p2p/util/XMLObjectInputStream.GetField.html" title="class in rice.p2p.util"><B>NEXT CLASS</B></A></FONT></TD>
<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
<A HREF="../../../index.html?rice/p2p/util/XMLObjectInputStream.html" target="_top"><B>FRAMES</B></A> &nbsp;
&nbsp;<A HREF="XMLObjectInputStream.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
&nbsp;<SCRIPT type="text/javascript">
<!--
if(window==top) {
document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>');
}
//-->
</SCRIPT>
<NOSCRIPT>
<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>
</NOSCRIPT>
</FONT></TD>
</TR>
<TR>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
SUMMARY:&nbsp;<A HREF="#nested_class_summary">NESTED</A>&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
</TR>
</TABLE>
<A NAME="skip-navbar_bottom"></A>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<HR>
<i>Copyright &#169; 2001-2005 - Rice Pastry.</i>
</BODY>
</HTML>