Login   Register  
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);
    }
#-----------------------------------------------------------------------------#
}
?>