--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">\r
+<!--NewPage-->\r
+<HTML>\r
+<HEAD>\r
+<!-- Generated by javadoc (build 1.5.0_11) on Tue Apr 10 15:02:16 UTC 2007 -->\r
+<TITLE>\r
+URLDecoder\r
+</TITLE>\r
+\r
+<META NAME="keywords" CONTENT="org.w3c.jigsaw.forms.URLDecoder class">\r
+\r
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">\r
+\r
+<SCRIPT type="text/javascript">\r
+function windowTitle()\r
+{\r
+ parent.document.title="URLDecoder";\r
+}\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+</NOSCRIPT>\r
+\r
+</HEAD>\r
+\r
+<BODY BGCOLOR="white" onload="windowTitle();">\r
+\r
+\r
+<!-- ========= START OF TOP NAVBAR ======= -->\r
+<A NAME="navbar_top"><!-- --></A>\r
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_top_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+ <TR ALIGN="center" VALIGN="top">\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>\r
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>\r
+ </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+ PREV CLASS \r
+ <A HREF="../../../../org/w3c/jigsaw/forms/URLDecoderException.html" title="class in org.w3c.jigsaw.forms"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+ <A HREF="../../../../index.html?org/w3c/jigsaw/forms/URLDecoder.html" target="_top"><B>FRAMES</B></A> \r
+ <A HREF="URLDecoder.html" target="_top"><B>NO FRAMES</B></A> \r
+ <SCRIPT type="text/javascript">\r
+ <!--\r
+ if(window==top) {\r
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+ }\r
+ //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_top"></A>\r
+<!-- ========= END OF TOP NAVBAR ========= -->\r
+\r
+<HR>\r
+<!-- ======== START OF CLASS DATA ======== -->\r
+<H2>\r
+<FONT SIZE="-1">\r
+org.w3c.jigsaw.forms</FONT>\r
+<BR>\r
+Class URLDecoder</H2>\r
+<PRE>\r
+java.lang.Object\r
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>org.w3c.jigsaw.forms.URLDecoder</B>\r
+</PRE>\r
+<HR>\r
+<DL>\r
+<DT><PRE>public class <B>URLDecoder</B><DT>extends java.lang.Object</DL>\r
+</PRE>\r
+\r
+<P>\r
+Form data decoder.\r
+ This class takes an InputStream and decodes it in compliance to the\r
+ <b>application/x-www-form-urlencoded</b> MIME type.\r
+<P>\r
+\r
+<P>\r
+<HR>\r
+\r
+<P>\r
+<!-- =========== FIELD SUMMARY =========== -->\r
+\r
+<A NAME="field_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Field Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>static java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#EMPTY_VALUE">EMPTY_VALUE</A></B></CODE>\r
+\r
+<BR>\r
+ </TD>\r
+</TR>\r
+</TABLE>\r
+ \r
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->\r
+\r
+<A NAME="constructor_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Constructor Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#URLDecoder(java.io.InputStream)">URLDecoder</A></B>(java.io.InputStream in)</CODE>\r
+\r
+<BR>\r
+ Create an URLDecoder for the given stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#URLDecoder(java.io.InputStream, boolean)">URLDecoder</A></B>(java.io.InputStream in,\r
+ boolean overide)</CODE>\r
+\r
+<BR>\r
+ Create an URLDecoder for the given stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#URLDecoder(java.io.InputStream, boolean, java.lang.String)">URLDecoder</A></B>(java.io.InputStream in,\r
+ boolean overide,\r
+ java.lang.String encoding)</CODE>\r
+\r
+<BR>\r
+ Create an URLDecoder for the given stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#URLDecoder(java.io.Reader)">URLDecoder</A></B>(java.io.Reader in)</CODE>\r
+\r
+<BR>\r
+ Create an URLDecoder for the given stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#URLDecoder(java.io.Reader, boolean)">URLDecoder</A></B>(java.io.Reader in,\r
+ boolean overide)</CODE>\r
+\r
+<BR>\r
+ Create an URLDecoder for the given stream.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#URLDecoder(java.io.Reader, boolean, java.lang.String)">URLDecoder</A></B>(java.io.Reader in,\r
+ boolean overide,\r
+ java.lang.String encoding)</CODE>\r
+\r
+<BR>\r
+ Create an URLDecoder for the given stream.</TD>\r
+</TR>\r
+</TABLE>\r
+ \r
+<!-- ========== METHOD SUMMARY =========== -->\r
+\r
+<A NAME="method_summary"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">\r
+<B>Method Summary</B></FONT></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE>protected void</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#addVariable(java.lang.String, java.lang.String)">addVariable</A></B>(java.lang.String var,\r
+ java.lang.String val)</CODE>\r
+\r
+<BR>\r
+ Define a new variable in this data set.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE> java.lang.String[]</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#getMultipleValues(java.lang.String)">getMultipleValues</A></B>(java.lang.String name)</CODE>\r
+\r
+<BR>\r
+ Get the values of the variable, as an array.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE> java.lang.String</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#getValue(java.lang.String)">getValue</A></B>(java.lang.String name)</CODE>\r
+\r
+<BR>\r
+ Get the value of a variable.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE> java.util.Enumeration</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#keys()">keys</A></B>()</CODE>\r
+\r
+<BR>\r
+ Get an enumeration of the variable names.</TD>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">\r
+<CODE> java.util.Hashtable</CODE></FONT></TD>\r
+<TD><CODE><B><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoder.html#parse()">parse</A></B>()</CODE>\r
+\r
+<BR>\r
+ Parse our input stream following the\r
+ <b>application/x-www-form-urlencoded</b> specification.</TD>\r
+</TR>\r
+</TABLE>\r
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">\r
+<TH ALIGN="left"><B>Methods inherited from class java.lang.Object</B></TH>\r
+</TR>\r
+<TR BGCOLOR="white" CLASS="TableRowColor">\r
+<TD><CODE>clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait</CODE></TD>\r
+</TR>\r
+</TABLE>\r
+ \r
+<P>\r
+\r
+<!-- ============ FIELD DETAIL =========== -->\r
+\r
+<A NAME="field_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Field Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="EMPTY_VALUE"><!-- --></A><H3>\r
+EMPTY_VALUE</H3>\r
+<PRE>\r
+public static final java.lang.String <B>EMPTY_VALUE</B></PRE>\r
+<DL>\r
+<DL>\r
+<DT><B>See Also:</B><DD><A HREF="../../../../constant-values.html#org.w3c.jigsaw.forms.URLDecoder.EMPTY_VALUE">Constant Field Values</A></DL>\r
+</DL>\r
+\r
+<!-- ========= CONSTRUCTOR DETAIL ======== -->\r
+\r
+<A NAME="constructor_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Constructor Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="URLDecoder(java.io.Reader, boolean, java.lang.String)"><!-- --></A><H3>\r
+URLDecoder</H3>\r
+<PRE>\r
+public <B>URLDecoder</B>(java.io.Reader in,\r
+ boolean overide,\r
+ java.lang.String encoding)</PRE>\r
+<DL>\r
+<DD>Create an URLDecoder for the given stream.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>in</CODE> - The input stream to be parsed.<DD><CODE>list</CODE> - Tells how to handle multiple settings of the same variable.\r
+ When <strong>false</strong>, mutiple settings to the same variable\r
+ will accumulate the value into an array, returned by getValue(). \r
+ Otherwise, the last assignment will overide any previous assignment.<DD><CODE>encoding</CODE> - The character encoding used.</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="URLDecoder(java.io.Reader, boolean)"><!-- --></A><H3>\r
+URLDecoder</H3>\r
+<PRE>\r
+public <B>URLDecoder</B>(java.io.Reader in,\r
+ boolean overide)</PRE>\r
+<DL>\r
+<DD>Create an URLDecoder for the given stream.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>in</CODE> - The input stream to be parsed.<DD><CODE>list</CODE> - Tells how to handle multiple settings of the same variable.\r
+ When <strong>false</strong>, mutiple settings to the same variable\r
+ will accumulate the value into an array, returned by getValue(). \r
+ Otherwise, the last assignment will overide any previous assignment.</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="URLDecoder(java.io.Reader)"><!-- --></A><H3>\r
+URLDecoder</H3>\r
+<PRE>\r
+public <B>URLDecoder</B>(java.io.Reader in)</PRE>\r
+<DL>\r
+<DD>Create an URLDecoder for the given stream.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>in</CODE> - The input stream to be parsed.<DD><CODE>list</CODE> - Tells how to handle multiple settings of the same variable.\r
+ When <strong>false</strong>, mutiple settings to the same variable\r
+ will accumulate the value into an array, returned by getValue(). \r
+ Otherwise, the last assignment will overide any previous assignment.</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="URLDecoder(java.io.InputStream, boolean, java.lang.String)"><!-- --></A><H3>\r
+URLDecoder</H3>\r
+<PRE>\r
+public <B>URLDecoder</B>(java.io.InputStream in,\r
+ boolean overide,\r
+ java.lang.String encoding)</PRE>\r
+<DL>\r
+<DD>Create an URLDecoder for the given stream.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>in</CODE> - The input stream to be parsed.<DD><CODE>list</CODE> - Tells how to handle multiple settings of the same variable.\r
+ When <strong>false</strong>, mutiple settings to the same variable\r
+ will accumulate the value into an array, returned by getValue(). \r
+ Otherwise, the last assignment will overide any previous assignment.<DD><CODE>encoding</CODE> - The character encoding used.</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="URLDecoder(java.io.InputStream, boolean)"><!-- --></A><H3>\r
+URLDecoder</H3>\r
+<PRE>\r
+public <B>URLDecoder</B>(java.io.InputStream in,\r
+ boolean overide)</PRE>\r
+<DL>\r
+<DD>Create an URLDecoder for the given stream.\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>in</CODE> - The input stream to be parsed.<DD><CODE>list</CODE> - Tells how to handle multiple settings of the same variable.\r
+ When <strong>false</strong>, mutiple settings to the same variable\r
+ will accumulate the value into an array, returned by getValue(). \r
+ Otherwise, the last assignment will overide any previous assignment.</DL>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="URLDecoder(java.io.InputStream)"><!-- --></A><H3>\r
+URLDecoder</H3>\r
+<PRE>\r
+public <B>URLDecoder</B>(java.io.InputStream in)</PRE>\r
+<DL>\r
+<DD>Create an URLDecoder for the given stream.\r
+ Default constructor, which will keep track only of the last setting\r
+ of the same variable (if ever it gets assigned multiply).\r
+<P>\r
+<DL>\r
+<DT><B>Parameters:</B><DD><CODE>in</CODE> - The input stream to be parsed.</DL>\r
+</DL>\r
+\r
+<!-- ============ METHOD DETAIL ========== -->\r
+\r
+<A NAME="method_detail"><!-- --></A>\r
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">\r
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">\r
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">\r
+<B>Method Detail</B></FONT></TH>\r
+</TR>\r
+</TABLE>\r
+\r
+<A NAME="keys()"><!-- --></A><H3>\r
+keys</H3>\r
+<PRE>\r
+public java.util.Enumeration <B>keys</B>()</PRE>\r
+<DL>\r
+<DD>Get an enumeration of the variable names.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>An enumeration continaing one element per key.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="addVariable(java.lang.String, java.lang.String)"><!-- --></A><H3>\r
+addVariable</H3>\r
+<PRE>\r
+protected void <B>addVariable</B>(java.lang.String var,\r
+ java.lang.String val)</PRE>\r
+<DL>\r
+<DD>Define a new variable in this data set.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the variable.<DD><CODE>value</CODE> - Its value.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getMultipleValues(java.lang.String)"><!-- --></A><H3>\r
+getMultipleValues</H3>\r
+<PRE>\r
+public java.lang.String[] <B>getMultipleValues</B>(java.lang.String name)</PRE>\r
+<DL>\r
+<DD>Get the values of the variable, as an array.\r
+ Use this method when you have turned off the <em>overide</em> flag\r
+ in the constructor of this object. This will always return either an\r
+ array of Strings or <strong>null</strong>.\r
+ <p>I use this in the PICS label bureau, and I pretty sure this is not a\r
+ good reason to have it here.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the variable to look for.\r
+<DT><B>Returns:</B><DD>An String[] having one entry per variable's value, or <strong>\r
+ null</strong> if none was found.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="getValue(java.lang.String)"><!-- --></A><H3>\r
+getValue</H3>\r
+<PRE>\r
+public java.lang.String <B>getValue</B>(java.lang.String name)</PRE>\r
+<DL>\r
+<DD>Get the value of a variable.\r
+ If you have allowed the decoder to accumulate multiple values for the\r
+ same variable, this method casts of the value to a String may fail\r
+ <em>at runtime</em>.\r
+<P>\r
+<DD><DL>\r
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - The name of the variable whose value is to be fetched.\r
+<DT><B>Returns:</B><DD>Its values, which is always provided as a String, or null.</DL>\r
+</DD>\r
+</DL>\r
+<HR>\r
+\r
+<A NAME="parse()"><!-- --></A><H3>\r
+parse</H3>\r
+<PRE>\r
+public java.util.Hashtable <B>parse</B>()\r
+ throws java.io.IOException,\r
+ <A HREF="../../../../org/w3c/jigsaw/forms/URLDecoderException.html" title="class in org.w3c.jigsaw.forms">URLDecoderException</A></PRE>\r
+<DL>\r
+<DD>Parse our input stream following the\r
+ <b>application/x-www-form-urlencoded</b> specification.\r
+<P>\r
+<DD><DL>\r
+\r
+<DT><B>Returns:</B><DD>The raw bindings obtained from parsing the stream, as a \r
+ Hashtable instance.\r
+<DT><B>Throws:</B>\r
+<DD><CODE>java.io.IOException</CODE> - When IO error occurs while reading the stream.\r
+<DD><CODE><A HREF="../../../../org/w3c/jigsaw/forms/URLDecoderException.html" title="class in org.w3c.jigsaw.forms">URLDecoderException</A></CODE> - If the format is invalid.</DL>\r
+</DD>\r
+</DL>\r
+<!-- ========= END OF CLASS DATA ========= -->\r
+<HR>\r
+\r
+\r
+<!-- ======= START OF BOTTOM NAVBAR ====== -->\r
+<A NAME="navbar_bottom"><!-- --></A>\r
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>\r
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">\r
+<TR>\r
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">\r
+<A NAME="navbar_bottom_firstrow"><!-- --></A>\r
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">\r
+ <TR ALIGN="center" VALIGN="top">\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD>\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>\r
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>\r
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>\r
+ </TR>\r
+</TABLE>\r
+</TD>\r
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>\r
+</EM>\r
+</TD>\r
+</TR>\r
+\r
+<TR>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+ PREV CLASS \r
+ <A HREF="../../../../org/w3c/jigsaw/forms/URLDecoderException.html" title="class in org.w3c.jigsaw.forms"><B>NEXT CLASS</B></A></FONT></TD>\r
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">\r
+ <A HREF="../../../../index.html?org/w3c/jigsaw/forms/URLDecoder.html" target="_top"><B>FRAMES</B></A> \r
+ <A HREF="URLDecoder.html" target="_top"><B>NO FRAMES</B></A> \r
+ <SCRIPT type="text/javascript">\r
+ <!--\r
+ if(window==top) {\r
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');\r
+ }\r
+ //-->\r
+</SCRIPT>\r
+<NOSCRIPT>\r
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>\r
+</NOSCRIPT>\r
+\r
+\r
+</FONT></TD>\r
+</TR>\r
+<TR>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>\r
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">\r
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>\r
+</TR>\r
+</TABLE>\r
+<A NAME="skip-navbar_bottom"></A>\r
+<!-- ======== END OF BOTTOM NAVBAR ======= -->\r
+\r
+<HR>\r
+\r
+</BODY>\r
+</HTML>\r