50 public function parse(array $structure, array $path = array()) {
58 protected function process(array $iterator, array $path = array()) {
59 foreach ($iterator as $identifier => $properties) {
60 $this->
addRecord($identifier, $properties);
61 $this->
addPath($identifier, $path);
62 foreach ($properties as $propertyName => $propertyValue) {
63 if (!is_array($propertyValue)) {
66 $nestedPath = array_merge($path, array($identifier, $propertyName));
67 $this->
process($propertyValue, $nestedPath);
76 protected function addRecord($identifier, array $properties) {
77 if (isset($this->records[$identifier])) {
81 foreach ($properties as $propertyName => $propertyValue) {
82 if (is_array($propertyValue)) {
83 unset($properties[$propertyName]);
87 $this->records[$identifier] = $properties;
94 protected function addPath($identifier, array $path) {
95 if (!isset($this->paths[$identifier])) {
96 $this->paths[$identifier] = array();
99 $this->paths[$identifier][] = $path;
addRecord($identifier, array $properties)
process(array $iterator, array $path=array())
parse(array $structure, array $path=array())
addPath($identifier, array $path)