<?xml version='1.0' encoding='ISO-8859-1' standalone='no'?>
<!DOCTYPE interface-description SYSTEM 'file:///usr/pkgsrc/lang/oo2c/work.macaroon/oo2c_32-2.0.11/rsrc/OOC/xml/interface-description.dtd'>
<interface-description name='URI:Query:WWWForm' id=''>
  <oberon-doc>
    <summary>NOTE: This module is a draft.</summary>
    <p pad-after='yes' no-indent='yes'>NOTE: This module is a draft.  No syntax checkking is performed on the query part, nor are invalid escape sequences detected.  I don't know if this query class should be applied to all HTTP URIs.</p>
  </oberon-doc>
  <import-decl name='Object' id='Object' export='no' module='Object'/>
  <import-decl name='Exception' id='Exception' export='no' module='Exception'/>
  <import-decl name='Dictionary' id='Dictionary' export='no' module='ADT:Dictionary'/>
  <import-decl name='ArrayList' id='ArrayList' export='no' module='ADT:ArrayList'/>
  <import-decl name='StringBuffer' id='StringBuffer' export='no' module='ADT:StringBuffer'/>
  <import-decl name='TextRider' id='TextRider' export='no' module='TextRider'/>
  <import-decl name='URI' id='URI' export='no' module='URI'/>
  <import-decl name='-RT0' id='-RT0' export='no' module='RT0'/>
  <import-decl name='-Object' id='-Object' export='no' module='Object'/>
  <import-decl name='-Exception' id='-Exception' export='no' module='Exception'/>
  <class name='Query'>
    <type-decl name='Query' id='Query' export='yes'>
      <type>
        <pointer>
          <pointer-base>
            <type-name name='QueryDesc' href='#QueryDesc'/>
          </pointer-base>
        </pointer>
      </type>
    </type-decl>
    <type-decl name='QueryDesc' id='QueryDesc' export='no'>
      <type>
        <record>
          <field-decl name='names' id='QueryDesc.names' export='read-only'>
            <type>
              <qualified-type>
                <type>
                  <type-name module='ArrayList' name='ArrayList' href='ADT:ArrayList#ArrayList'/>
                </type>
                <type-arguments>
                  <type-name name='STRING' href='#STRING'/>
                </type-arguments>
              </qualified-type>
            </type>
          </field-decl>
          <field-decl name='values' id='QueryDesc.values' export='read-only'>
            <type>
              <qualified-type>
                <type>
                  <type-name module='ArrayList' name='ArrayList' href='ADT:ArrayList#ArrayList'/>
                </type>
                <type-arguments>
                  <type-name name='STRING' href='#STRING'/>
                </type-arguments>
              </qualified-type>
            </type>
          </field-decl>
          <field-decl name='dict' id='QueryDesc.dict' export='read-only'>
            <oberon-doc>
              <summary>Maps a name to a list of its values.</summary>
              <p pad-after='yes' no-indent='yes'>Maps a name to a list of its values.</p>
            </oberon-doc>
            <type>
              <qualified-type>
                <type>
                  <type-name module='Dictionary' name='Dictionary' href='ADT:Dictionary#Dictionary'/>
                </type>
                <type-arguments>
                  <type-name name='STRING' href='#STRING'/>
                  <qualified-type>
                    <type>
                      <type-name module='ArrayList' name='ArrayList' href='ADT:ArrayList#ArrayList'/>
                    </type>
                    <type-arguments>
                      <type-name name='STRING' href='#STRING'/>
                    </type-arguments>
                  </qualified-type>
                </type-arguments>
              </qualified-type>
            </type>
          </field-decl>
        </record>
      </type>
    </type-decl>
    <procedure name='Init' id='Init' export='yes'>
      <formal-parameters>
        <parameter-decl name='query' id='Init.query' export='no' variable-parameter='no'>
          <type>
            <type-name name='Query' href='#Query'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='New' id='New' export='yes'>
      <formal-parameters>
        <result-type>
          <type-name name='Query' href='#Query'/>
        </result-type>
      </formal-parameters>
    </procedure>
    <procedure name='Clone' id='QueryDesc.Clone' export='yes'>
      <doc-inherited-from module='URI' name='Clone' class='Query' href='URI#QueryDesc.Clone'/>
      <oberon-doc>
        <summary>Creates a deep copy of the queryority component referenced by <oberon-param href='#QueryDesc.Clone.query'>query</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Creates a deep copy of the queryority component referenced by <oberon-param href='#QueryDesc.Clone.query'>query</oberon-param>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='query' id='QueryDesc.Clone.query' export='no' variable-parameter='no'>
          <type>
            <type-name name='Query' href='#Query'/>
          </type>
        </receiver-decl>
        <result-type>
          <type-name name='Query' href='#Query'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='URI' name='Clone' class='Query' href='URI#QueryDesc.Clone'/>
    </procedure>
    <procedure name='Copy' id='QueryDesc.Copy' export='yes'>
      <doc-inherited-from module='URI' name='Copy' class='Query' href='URI#QueryDesc.Copy'/>
      <oberon-doc>
        <summary>Copies contents of source <oberon-param href='#QueryDesc.Copy.query'>query</oberon-param> to target <oberon-param href='#QueryDesc.Copy.dest'>dest</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Copies contents of source <oberon-param href='#QueryDesc.Copy.query'>query</oberon-param> to target <oberon-param href='#QueryDesc.Copy.dest'>dest</oberon-param>.</p>
        <pre-cond pad-after='yes'>
          <p pad-after='no' no-indent='yes'>The dynamic type of <oberon-param href='#QueryDesc.Copy.dest'>dest</oberon-param> is an extension of the dynamic type of <oberon-param href='#QueryDesc.Copy.query'>query</oberon-param>.</p>
        </pre-cond>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='query' id='QueryDesc.Copy.query' export='no' variable-parameter='no'>
          <type>
            <type-name name='Query' href='#Query'/>
          </type>
        </receiver-decl>
        <parameter-decl name='dest' id='QueryDesc.Copy.dest' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI' name='Query' href='URI#Query'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='URI' name='Copy' class='Query' href='URI#QueryDesc.Copy'/>
    </procedure>
    <procedure name='Add' id='QueryDesc.Add' export='yes'>
      <formal-parameters>
        <receiver-decl name='query' id='QueryDesc.Add.query' export='no' variable-parameter='no'>
          <type>
            <type-name name='Query' href='#Query'/>
          </type>
        </receiver-decl>
        <parameter-decl name='name' id='QueryDesc.Add.name' export='no' variable-parameter='no'>
          <type>
            <type-name name='STRING' href='#STRING'/>
          </type>
        </parameter-decl>
        <parameter-decl name='value' id='QueryDesc.Add.value' export='no' variable-parameter='no'>
          <type>
            <type-name name='STRING' href='#STRING'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='ParseString' id='QueryDesc.ParseString' export='yes'>
      <formal-parameters>
        <receiver-decl name='query' id='QueryDesc.ParseString.query' export='no' variable-parameter='no'>
          <type>
            <type-name name='Query' href='#Query'/>
          </type>
        </receiver-decl>
        <parameter-decl name='b' id='QueryDesc.ParseString.b' export='no' variable-parameter='no'>
          <type>
            <array>
              <element-type>
                <type-name module='#predef' name='CHAR'/>
              </element-type>
            </array>
          </type>
        </parameter-decl>
        <parameter-decl name='pos' id='QueryDesc.ParseString.pos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='endpos' id='QueryDesc.ParseString.endpos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='ParseQuery' id='QueryDesc.ParseQuery' export='yes'>
      <doc-inherited-from module='URI' name='ParseQuery' class='Query' href='URI#QueryDesc.ParseQuery'/>
      <oberon-doc>
        <summary>Parses the query component <oberon-param href='#QueryDesc.ParseQuery.str'>str</oberon-param> of an hierarchical URI.</summary>
        <p pad-after='yes' no-indent='yes'>Parses the query component <oberon-param href='#QueryDesc.ParseQuery.str'>str</oberon-param> of an hierarchical URI.  On success, the data is stored in the query object <oberon-param href='#QueryDesc.ParseQuery.query'>query</oberon-param> and the result is <code>NIL</code>.  In case of error, a message object is returned and <oberon-param href='#QueryDesc.ParseQuery.query'>query</oberon-param> is not modified.  A character position in an error message refers to an index in <oberon-param href='#QueryDesc.ParseQuery.str'>str</oberon-param>, incremented by the value of <oberon-param href='#QueryDesc.ParseQuery.offset'>offset</oberon-param>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='query' id='QueryDesc.ParseQuery.query' export='no' variable-parameter='no'>
          <type>
            <type-name name='Query' href='#Query'/>
          </type>
        </receiver-decl>
        <parameter-decl name='str' id='QueryDesc.ParseQuery.str' export='no' variable-parameter='no'>
          <type>
            <type-name module='Object' name='CharsLatin1' href='Object#CharsLatin1'/>
          </type>
        </parameter-decl>
        <parameter-decl name='offset' id='QueryDesc.ParseQuery.offset' export='no' variable-parameter='no'>
          <type>
            <type-name module='URI' name='Offset' href='URI#Offset'/>
          </type>
        </parameter-decl>
        <exceptions>
          <type-name module='Exception' name='ParseError' href='Exception#ParseError'/>
        </exceptions>
      </formal-parameters>
      <redefined-method module='URI' name='ParseQuery' class='Query' href='URI#QueryDesc.ParseQuery'/>
    </procedure>
    <procedure name='WriteXML' id='QueryDesc.WriteXML' export='yes'>
      <doc-inherited-from module='URI' name='WriteXML' class='Query' href='URI#QueryDesc.WriteXML'/>
      <oberon-doc>
        <summary>Writes an XML fragment describing the query component to the writer <oberon-param href='#QueryDesc.WriteXML.w'>w</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Writes an XML fragment describing the query component to the writer <oberon-param href='#QueryDesc.WriteXML.w'>w</oberon-param>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='query' id='QueryDesc.WriteXML.query' export='no' variable-parameter='no'>
          <type>
            <type-name name='Query' href='#Query'/>
          </type>
        </receiver-decl>
        <parameter-decl name='w' id='QueryDesc.WriteXML.w' export='no' variable-parameter='no'>
          <type>
            <type-name module='TextRider' name='Writer' href='TextRider#Writer'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='URI' name='WriteXML' class='Query' href='URI#QueryDesc.WriteXML'/>
    </procedure>
    <procedure name='Append' id='QueryDesc.Append' export='yes'>
      <doc-inherited-from module='URI' name='Append' class='Query' href='URI#QueryDesc.Append'/>
      <oberon-doc>
        <summary>Appends the textual representation of the query component <oberon-param href='#QueryDesc.Append.query'>query</oberon-param> to the string <oberon-param href='#QueryDesc.Append.sb'>sb</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Appends the textual representation of the query component <oberon-param href='#QueryDesc.Append.query'>query</oberon-param> to the string <oberon-param href='#QueryDesc.Append.sb'>sb</oberon-param>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='query' id='QueryDesc.Append.query' export='no' variable-parameter='no'>
          <type>
            <type-name name='Query' href='#Query'/>
          </type>
        </receiver-decl>
        <parameter-decl name='sb' id='QueryDesc.Append.sb' export='no' variable-parameter='no'>
          <type>
            <type-name module='StringBuffer' name='StringBuffer' href='ADT:StringBuffer#StringBuffer'/>
          </type>
        </parameter-decl>
      </formal-parameters>
      <redefined-method module='URI' name='Append' class='Query' href='URI#QueryDesc.Append'/>
    </procedure>
    <base-class module='URI' class='Query' href='URI#Query'>
      <inherited-method module='URI' name='Append' class='Query' href='URI#QueryDesc.Append'/>
      <inherited-method module='URI' name='Clone' class='Query' href='URI#QueryDesc.Clone'/>
      <inherited-method module='URI' name='Copy' class='Query' href='URI#QueryDesc.Copy'/>
      <inherited-method module='URI' name='ParseQuery' class='Query' href='URI#QueryDesc.ParseQuery'/>
      <inherited-method module='URI' name='WriteXML' class='Query' href='URI#QueryDesc.WriteXML'/>
    </base-class>
  </class>
  <module-ref name='ADT:Dictionary'>
    <ref-target type='html' relative-uri='../../ADT/Dictionary.html'/>
  </module-ref>
  <module-ref name='TextRider'>
    <ref-target type='html' relative-uri='../../TextRider.html'/>
  </module-ref>
  <module-ref name='Exception'>
    <ref-target type='html' relative-uri='../../Exception.html'/>
  </module-ref>
  <module-ref name='Object'>
    <ref-target type='html' relative-uri='../../Object.html'/>
  </module-ref>
  <module-ref name='ADT:ArrayList'>
    <ref-target type='html' relative-uri='../../ADT/ArrayList.html'/>
  </module-ref>
  <module-ref name='URI'>
    <ref-target type='html' relative-uri='../../URI.html'/>
  </module-ref>
  <module-ref name='ADT:StringBuffer'>
    <ref-target type='html' relative-uri='../../ADT/StringBuffer.html'/>
  </module-ref>
</interface-description>
