SPL-StandardPHPLibrary
Public Member Functions | Public Attributes | List of all members
CachingRecursiveIterator Class Reference
Inheritance diagram for CachingRecursiveIterator:
Inheritance graph
Collaboration diagram for CachingRecursiveIterator:
Collaboration graph

Public Member Functions

 __call ($func, $params)
 
 __toString ()
 
 current ()
 
 getChildren ()
 
 getInnerIterator ()
 
 hasChildren ()
 
 hasNext ()
 
 key ()
 
 next ()
 
 rewind ()
 
 valid ()
 

Public Attributes

const CALL_TOSTRING = 0x00000001
 
const CATCH_GET_CHILD = 0x00000002
 
$this getChildren = NULL
 
const TOSTRING_USE_CURRENT = 0x00000020
 
const TOSTRING_USE_KEY = 0x00000010
 

Detailed Description

Compatibility to PHP 5.0.

Author
Marcus Boerger
Version
1.2
Deprecated:

Class RecursiveCachingIterator was named CachingRecursiveIterator until PHP 5.0.6.

See Also
RecursiveCachingIterator

Definition at line 24 of file cachingrecursiveiterator.inc.

Member Function Documentation

CachingIterator::__call (   $func,
  $params 
)
inherited

Aggregate the inner iterator.

Parameters
funcName of method to invoke
paramsArray of parameters to pass to method

Definition at line 122 of file cachingiterator.inc.

123  {
124  return call_user_func_array(array($this->it, $func), $params);
125  }
CachingIterator::__toString ( )
inherited
Returns
the string represenatation that was generated for the current element
Exceptions
exceptionwhen CALL_TOSTRING was not specified in constructor

Definition at line 131 of file cachingiterator.inc.

References CachingIterator\$current, CachingIterator\$key, and CachingIterator\$strValue.

132  {
133  if ($this->flags & self::TOSTRING_USE_KEY)
134  {
135  return $this->key;
136  }
137  else if ($this->flags & self::TOSTRING_USE_CURRENT)
138  {
139  return $this->current;
140  }
141  if (!$this->flags & self::CALL_TOSTRING)
142  {
143  throw new exception('CachingIterator does not fetch string value (see CachingIterator::__construct)');
144  }
145  return $this->strValue;
146  }
CachingIterator::current ( )
inherited
Returns
the current element

Implements Iterator.

Definition at line 105 of file cachingiterator.inc.

References CachingIterator\$current.

Referenced by CachingIterator\next().

106  {
107  return $this->current;
108  }
RecursiveCachingIterator::getChildren ( )
inherited
Returns
An Iterator for the children

Implements RecursiveIterator.

Definition at line 93 of file recursivecachingiterator.inc.

References RecursiveCachingIterator\$getChildren.

Referenced by RecursiveCachingIterator\next().

CachingIterator::getInnerIterator ( )
inherited
Returns
The inner iterator

Implements OuterIterator.

Definition at line 151 of file cachingiterator.inc.

References CachingIterator\$it.

152  {
153  return $this->it;
154  }
RecursiveCachingIterator::hasChildren ( )
inherited
Returns
whether the current element has children
Note
The check whether the Iterator for the children can be created was already executed. Hence when flag CATCH_GET_CHILD was given in constructor this fucntion returns false so that getChildren does not try to access those children.

Implements RecursiveIterator.

Definition at line 86 of file recursivecachingiterator.inc.

References RecursiveCachingIterator\$hasChildren.

Referenced by RecursiveCachingIterator\next().

CachingIterator::hasNext ( )
inherited
Returns
whether there is one more element

Definition at line 98 of file cachingiterator.inc.

99  {
100  return $this->it->valid();
101  }
CachingIterator::key ( )
inherited
Returns
the current key

Implements Iterator.

Definition at line 112 of file cachingiterator.inc.

References CachingIterator\$key.

Referenced by CachingIterator\next().

113  {
114  return $this->key;
115  }
RecursiveCachingIterator::next ( )
inherited

Forward to next element if necessary then an Iterator for the Children will be created.

Implements Iterator.

Definition at line 49 of file recursivecachingiterator.inc.

References RecursiveCachingIterator\$ref, RecursiveCachingIterator\getChildren(), and RecursiveCachingIterator\hasChildren().

50  {
51  if ($this->hasChildren = $this->it->hasChildren())
52  {
53  try
54  {
55  $child = $this->it->getChildren();
56  if (!$this->ref)
57  {
58  $this->ref = new ReflectionClass($this);
59  }
60  $this->getChildren = $ref->newInstance($child, $this->flags);
61  }
62  catch(Exception $e)
63  {
64  if (!$this->flags & self::CATCH_GET_CHILD)
65  {
66  throw $e;
67  }
68  $this->hasChildren = false;
69  $this->getChildren = NULL;
70  }
71  } else
72  {
73  $this->getChildren = NULL;
74  }
75  parent::next();
76  }
Basic Exception class.
Definition: spl.php:258

Here is the call graph for this function:

RecursiveCachingIterator::rewind ( )
inherited

Rewind Iterator.

Implements Iterator.

CachingIterator::valid ( )
inherited
Returns
whether the iterator is valid

Implements Iterator.

Definition at line 91 of file cachingiterator.inc.

References CachingIterator\$valid.

Referenced by CachingIterator\next().

92  {
93  return $this->valid;
94  }

Member Data Documentation

const CachingIterator::CALL_TOSTRING = 0x00000001
inherited
const CachingIterator::CATCH_GET_CHILD = 0x00000002
inherited
$this RecursiveCachingIterator::getChildren = NULL
inherited

Definition at line 42 of file recursivecachingiterator.inc.

const CachingIterator::TOSTRING_USE_CURRENT = 0x00000020
inherited

Definition at line 33 of file cachingiterator.inc.

const CachingIterator::TOSTRING_USE_KEY = 0x00000010
inherited

Definition at line 32 of file cachingiterator.inc.


The documentation for this class was generated from the following file: