ex
Fork of mbed-os-example-mbed5-blinky by
Diff: dumi_doc-master/schema/vendor/justinrainbow/json-schema/src/JsonSchema/Iterator/ObjectIterator.php
- Revision:
- 49:b9eb462f36a9
- Parent:
- 48:c7ee67edcf1d
- Child:
- 50:9ecaa144d1f3
--- a/dumi_doc-master/schema/vendor/justinrainbow/json-schema/src/JsonSchema/Iterator/ObjectIterator.php Tue Jul 18 16:56:22 2017 +0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,147 +0,0 @@
-<?php
-
-/*
- * This file is part of the JsonSchema package.
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-
-namespace JsonSchema\Iterator;
-
-/**
- * @package JsonSchema\Iterator
- * @author Joost Nijhuis <jnijhuis81@gmail.com>
- */
-class ObjectIterator implements \Iterator, \Countable
-{
- /** @var object */
- private $object;
-
- /** @var int */
- private $position = 0;
-
- /** @var array */
- private $data = array();
-
- /** @var bool */
- private $initialized = false;
-
- /**
- * @param object $object
- */
- public function __construct($object)
- {
- $this->object = $object;
- }
-
- /**
- * {@inheritdoc}
- */
- public function current()
- {
- $this->initialize();
-
- return $this->data[$this->position];
- }
-
- /**
- * {@inheritdoc}
- */
- public function next()
- {
- $this->initialize();
- $this->position++;
- }
-
- /**
- * {@inheritdoc}
- */
- public function key()
- {
- $this->initialize();
-
- return $this->position;
- }
-
- /**
- * {@inheritdoc}
- */
- public function valid()
- {
- $this->initialize();
-
- return isset($this->data[$this->position]);
- }
-
- /**
- * {@inheritdoc}
- */
- public function rewind()
- {
- $this->initialize();
- $this->position = 0;
- }
-
- /**
- * {@inheritdoc}
- */
- public function count()
- {
- $this->initialize();
-
- return count($this->data);
- }
-
- /**
- * Initializer
- */
- private function initialize()
- {
- if (!$this->initialized) {
- $this->data = $this->buildDataFromObject($this->object);
- $this->initialized = true;
- }
- }
-
- /**
- * @param object $object
- * @return array
- */
- private function buildDataFromObject($object)
- {
- $result = array();
-
- $stack = new \SplStack();
- $stack->push($object);
-
- while (!$stack->isEmpty()) {
-
- $current = $stack->pop();
- if (is_object($current)) {
- array_push($result, $current);
- }
-
- foreach ($this->getDataFromItem($current) as $propertyName => $propertyValue) {
- if (is_object($propertyValue) || is_array($propertyValue)) {
- $stack->push($propertyValue);
- }
- }
- }
-
- return $result;
- }
-
- /**
- * @param object|array $item
- * @return array
- */
- private function getDataFromItem($item)
- {
- if (!is_object($item) && !is_array($item)) {
- return array();
- }
-
- return is_object($item) ? get_object_vars($item) : $item;
- }
-}
