| @@ 73-86 (lines=14) @@ | ||
| 70 | * |
|
| 71 | * @return IGenerator |
|
| 72 | */ |
|
| 73 | public static function adapter(\Traversable $iterator) |
|
| 74 | { |
|
| 75 | if ($iterator instanceof IGenerator) { |
|
| 76 | return $iterator; |
|
| 77 | } elseif ($iterator instanceof IIterator) { |
|
| 78 | return new IIteratorAdapter($iterator); |
|
| 79 | } elseif ($iterator instanceof \ArrayIterator) { |
|
| 80 | return new ArrayIteratorAdapter($iterator); |
|
| 81 | } elseif ($iterator instanceof \IteratorAggregate) { |
|
| 82 | return static::adapter($iterator->getIterator()); |
|
| 83 | } else { |
|
| 84 | return new IteratorAdapter($iterator); |
|
| 85 | } |
|
| 86 | } |
|
| 87 | ||
| 88 | protected function adapterIterator(\Traversable $iterator) |
|
| 89 | { |
|
| @@ 60-73 (lines=14) @@ | ||
| 57 | * |
|
| 58 | * @return IIterator |
|
| 59 | */ |
|
| 60 | public static function adapter(\Traversable $iterator) |
|
| 61 | { |
|
| 62 | if ($iterator instanceof IIterator) { |
|
| 63 | return $iterator; |
|
| 64 | } elseif ($iterator instanceof IGenerator) { |
|
| 65 | return new IGeneratorAdapter($iterator); |
|
| 66 | } elseif ($iterator instanceof \ArrayIterator) { |
|
| 67 | return new ArrayIteratorAdapter($iterator); |
|
| 68 | } elseif ($iterator instanceof \IteratorAggregate) { |
|
| 69 | return static::adapter($iterator->getIterator()); |
|
| 70 | } else { |
|
| 71 | return new IteratorAdapter($iterator); |
|
| 72 | } |
|
| 73 | } |
|
| 74 | ||
| 75 | public function arrayCompatibleIterator(\Traversable $iterator) |
|
| 76 | { |
|