PHP Classes
elePHPant
Icontem

File: ExcelXMLArrayIterator.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Andrew Aculana  >  Excel XML Parser  >  ExcelXMLArrayIterator.php  >  Download  
File: ExcelXMLArrayIterator.php
Role: Class source
Content type: text/plain
Description: Array Iterator Class
Class: Excel XML Parser
Read and write data to Excel XML worksheets
Author: By
Last change: Updated Vesion
Date: 8 years ago
Size: 6,231 bytes
 

Contents

Class file image Download
<?php
/*
* ============================================================================
*
* @name ExcelXMLArrayIterator.php
*
* @author Andrew A. Aculana
* @version 2.1
* @date 2006-07-03
*
* ============================================================================
*
* License: GNU Lesser General Public License (LGPL)
*
* Copyright (c) 2004 LINK2SUPPORT INC. All rights reserved.
*
* This file is part of the L2S Online Application Framework
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.

* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.

* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* ============================================================================
*/

/**
 * @package ExcelXMLArrayIterator
 * @subpackage ExcelXMLParser
 */
 
/**
 * A wrapper for array iteration
 *
 * @author Andrew Aculana <andrew.aculana@link2support.com>
 * @copyright Copyright &copy; 2006, Andrew Aculana
 * @version 1.0
 *
 */
class ExcelXMLArrayIterator{

   
/**
     * @var Array(mixed) $Data - Data container to hold the value to iterate
     * @var int $index index used in data iteration
     * @var Array $keys - Data key Container
     */
   
var $Data;
    var
$index;
    var
$keys;
#-----------------------------------------------------------------------------#

    /**
     * class constructor - initialize attributes
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @param Array(mixed) - a reference to an array
     * @return null
     */
   
function ExcelXMLArrayIterator(&$Data){
       
$this->Data =& $Data;
       
$this->index = 0;
       
$this->keys = array();
    }
#-----------------------------------------------------------------------------#

    /**
     * get the index
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return int
     */
   
function getIndex(){
        return
$this->index;
    }
#-----------------------------------------------------------------------------#

    /**
     * reset iterator index to base
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return null
     */
   
function reset(){
       
$this->index = 0;
    }
#-----------------------------------------------------------------------------#

    /**
     * reinitialize current index
     *
     * @author Andrew A. Aculana
     * @access Private
     * @version 2.0
     * @copyright 2006-07-03
     * @return null
     */
   
function _reindex(){
       
$this->keys = array_keys($this->Data);
    }
#-----------------------------------------------------------------------------#

    /**
     * get the current value pointed by the current index
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return long - pointer to an object
     */
   
function &current(){
       
$this->_reindex();
        return @
$this->Data[$this->keys[$this->index]];
    }
#-----------------------------------------------------------------------------#

    /**
     * get the next value pointed by the current index
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return long - pointer to an object
     */
   
function &next(){
       
$this->_reindex();
        if(++
$this->index > count($this->keys)){
           
$this->index = count($this->keys)-1;
            return
NULL;
        }else{
            return
$this->current();
        }
    }
#-----------------------------------------------------------------------------#

    /**
     * get the previous value
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return long - pointer to an object
     */
   
function &prev(){
       
$this->_reindex();
        if(--
$this->index < 0){
           
$this->index = 0;
            return
NULL;
        }else{
            return
$this->current();
        }
    }
#-----------------------------------------------------------------------------#

    /**
     * get the top value
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return long - pointer to an object
     */
   
function &top(){
       
$this->_reindex();
       
$this->index = 0;
        return
$this->Data[$this->keys[$this->index]];
    }
#-----------------------------------------------------------------------------#

    /**
     * get the last value
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return long - pointer to an object
     */
   
function &bottom(){
       
$this->_reindex();
       
$this->index = count($this->keys)-1;
        return
$this->Data[$this->keys[$this->index]];
    }
#-----------------------------------------------------------------------------#

    /**
     * return the length of the iterator
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return int
     */
   
function length(){
        return
count($this->Data);
    }
#-----------------------------------------------------------------------------#

    /**
     * append data to the iterator
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return null
     */
   
function append($Data){
       
array_push($this->Data,$Data);
    }
#-----------------------------------------------------------------------------#

    /**
     * remove the last value in the iterator
     *
     * @author Andrew A. Aculana
     * @access Public
     * @version 2.0
     * @copyright 2006-07-03
     * @return null
     */
   
function pop(){
       
array_pop($this->Data,$Data);
    }
#-----------------------------------------------------------------------------#
}
?>