<refentry id="class-iterator">
  <refnamediv>
    <refname>Iterator.Iterator</refname> 
    <refpurpose>Uniform   access   to    loop   over   an   object's
      content.</refpurpose>
  </refnamediv>
  <refsynopsisdiv>

    <programlisting>
class <classname>Iterator.Iterator</classname>:
	def <link linkend="meth-iterator-first">first (self):</link> 
		return <returnvalue>item</returnvalue>
	def <link linkend="meth-iterator-next">next  (self):</link> 
		return <returnvalue>item</returnvalue>
	def <link linkend="meth-iterator-iterator">iterator (self):</link> 
		return <returnvalue>self</returnvalue>
</programlisting>
  </refsynopsisdiv>

  <refsect1>
    <title>Usage</title>  

    <para>This  class  provides  a  uniform  access to  loop  over  an
      object's content  in a sequential manner. It  is especially used
      to  loop over  all  the entries  in  a database  (see the  <link
      linkend="class-database">iterator</link>  method  in  the  <link
      linkend="class-database">DataBase</link>  class),   or  all  the
      entries    matching    a     given    criterion    (see    <link
      linkend="class-selection">Selection</link> class).</para>

    <para><symbol>None</symbol> is returned to indicate the end of the
      sequence.</para>

  </refsect1>

  <refsect1>
    <title>Methods</title>
    
    <refsect2 id="meth-iterator-first">
      <title>first ()</title>
      <programlisting>
item = iterator.first ()
</programlisting>

      <para>This method returns the first item of a sequence. The kind
	of   item    depends   on   how   the    Iterator   has   been
	instanciated.</para>
    </refsect2>

    <refsect2 id="meth-iterator-next">
      <title>next ()</title>
      <programlisting>
item = iterator.next ()
</programlisting>

      <para>Returns the  next item in  a sequence. The loop  must have
	been             initialized             with            <link
	linkend="meth-iterator-first">first()</link>.</para>
      
      <para><symbol>None</symbol> is  returned to indicate  the end of
	the sequence.</para>
    </refsect2>

    <refsect2 id="meth-iterator-iterator">
      <title>iterator ()</title>
      <programlisting>
iter = iterator.iterator ()
</programlisting>

      <para>This methods returns self. It is useful in order to create
      methods    that    can     indifferently    accept    a    <link
      linkend="class-database">DataBase</link>   or  an   Iterator  as
      argument,   as   both   will   provide   an   <function>iterator
      ()</function> function.</para>
    </refsect2>

  </refsect1>
</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-namecase-general:t
sgml-general-insert-case:lower
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:2
sgml-indent-data:nil
sgml-parent-document:("pyblio.sgml" "reference" "refentry")
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->
