Source for file IterFind.php

Documentation is available at IterFind.php

  1. <?php 
  2.  
  3. // ----------------------------------------------------------------------------------
  4. // Class: IterFind
  5. // ----------------------------------------------------------------------------------
  6.  
  7.  
  8. /**
  9. * Implementation of a find-iterator which delivers statements or quads.
  10. *
  11. * This Iterator should be used in a for-loop like:
  12. * for($iterator = $memmodel->iterFind(null,null,null,null); $iterator->valid(); $iterator->next())
  13. * {
  14. *    $statement=$iterator->current();
  15. * };
  16. *
  17. @version  $Id: fsource_utility__utilIterFind.php.html 443 2007-06-01 16:25:38Z cax $
  18. @author Daniel Westphal (http://www.d-westphal.de)
  19. *
  20. *
  21. @package     utility
  22. @access    public
  23. ***/
  24. class IterFind
  25. {
  26.     
  27.     /**
  28.     * The current position
  29.     * @var        integer 
  30.     * @access    private
  31.     */
  32.     var $key;
  33.     
  34.     /**
  35.     * boolean value, if the results should be returned as Quads
  36.     * @var        boolean 
  37.     * @access    private
  38.     */
  39.     var $returnAsQuads;
  40.     
  41.     /**
  42.     * If the current resource is valid
  43.     * @var        boolean 
  44.     * @access    private
  45.     */
  46.     var $valid;
  47.     
  48.     /**
  49.     * The current NamedGraph
  50.     * @var obejct NamedGraph
  51.     * @access    private
  52.     */
  53.     var $current;
  54.     
  55.     /**
  56.     * The graph to look in.
  57.     * @var string 
  58.     * @access    private
  59.     */    
  60.     var $findGraph;
  61.     
  62.     /**
  63.     * The subject Resource to search for
  64.     * @var string 
  65.     * @access    private
  66.     */    
  67.     var $findSubject;
  68.     
  69.     /**
  70.     * The predicate Resource to search for
  71.     * @var string 
  72.     * @access    private
  73.     */    
  74.     var $findPredicate;
  75.     
  76.     /**
  77.     * The object Resource to search for
  78.     * @var string 
  79.     * @access    private
  80.     */    
  81.     var $findObject;
  82.     
  83.     
  84.     
  85.     /**
  86.     * Constructor.
  87.     *
  88.     * $subject, $predicate, and $object are used like find().
  89.     * $graph has to be a reference to the graph to search in.
  90.     *
  91.     * 
  92.     *
  93.     * @param $graph Resource
  94.     * @param $subject Resource
  95.     * @param $predicate Resource
  96.     * @param $object Resource
  97.     * @param $returnAsQuads boolean
  98.     * @access    public
  99.     */
  100.     function IterFind($graph,$subject,$predicate,$object,$returnAsQuads=false)
  101.     {
  102.         if ($graph==NULL)
  103.         {
  104.             $this->valid=false;
  105.             return;    
  106.         }        
  107.         $this->findGraph=&$graph;
  108.         $this->findSubject=$subject;
  109.         $this->findPredicate=$predicate;
  110.         $this->findObject=$object;
  111.         $this->rewind();
  112.         $this->returnAsQuads=$returnAsQuads;
  113.     }
  114.     
  115.     /**
  116.     * Resets iterator list to start
  117.     *
  118.     * @access    public
  119.     */
  120.     function rewind()
  121.     {
  122.         $this->key = -1;
  123.         $this->next();
  124.     }
  125.     
  126.     /**
  127.     * Says if there are additional items left in the list
  128.     *
  129.     * @return    boolean 
  130.     * @access    public
  131.     */
  132.     function valid()
  133.     {
  134.         return $this->valid;
  135.     }
  136.     
  137.     /**
  138.     * Moves Iterator to the next item in the list
  139.     *
  140.     * @access    public
  141.     */
  142.     function next()
  143.     {
  144.         $this->current $this->findGraph->findFirstMatchingStatement($this->findSubject,$this->findPredicate,$this->findObject,++$this->key);
  145.         $this->valid=($this->current!=NULL);
  146.     }
  147.     
  148.     /**
  149.     * Returns the current item
  150.     *
  151.     * @return    mixed 
  152.     * @access    public
  153.     */
  154.     function current()
  155.     {
  156.         if($this->returnAsQuads)
  157.         return new Quad(new Resource($this->findGraph->getGraphName()),$this->current->getSubject(),$this->current->getPredicate(),$this->current->getObject());
  158.         //else
  159.         return $this->current;
  160.     }
  161.     
  162.     
  163.     /**
  164.     * Returns the key of the current item
  165.     *
  166.     * @return    integer 
  167.     * @access    public
  168.     */
  169.     function key()
  170.     {
  171.         return $this->key;
  172.     }
  173. }
  174. ?>

Documentation generated on Fri, 1 Jun 2007 16:49:38 +0200 by phpDocumentor 1.3.2