[ Index ] |
PHP Cross Reference of moodle-2.8 |
[Summary view] [Print] [Text view]
1 <?php 2 3 require_once "Google/Model.php"; 4 5 /** 6 * Extension to the regular Google_Model that automatically 7 * exposes the items array for iteration, so you can just 8 * iterate over the object rather than a reference inside. 9 */ 10 class Google_Collection extends Google_Model implements Iterator, Countable 11 { 12 protected $collection_key = 'items'; 13 14 public function rewind() 15 { 16 if (isset($this->modelData[$this->collection_key]) 17 && is_array($this->modelData[$this->collection_key])) { 18 reset($this->modelData[$this->collection_key]); 19 } 20 } 21 22 public function current() 23 { 24 $this->coerceType($this->key()); 25 if (is_array($this->modelData[$this->collection_key])) { 26 return current($this->modelData[$this->collection_key]); 27 } 28 } 29 30 public function key() 31 { 32 if (isset($this->modelData[$this->collection_key]) 33 && is_array($this->modelData[$this->collection_key])) { 34 return key($this->modelData[$this->collection_key]); 35 } 36 } 37 38 public function next() 39 { 40 return next($this->modelData[$this->collection_key]); 41 } 42 43 public function valid() 44 { 45 $key = $this->key(); 46 return $key !== null && $key !== false; 47 } 48 49 public function count() 50 { 51 return count($this->modelData[$this->collection_key]); 52 } 53 54 public function offsetExists ($offset) 55 { 56 if (!is_numeric($offset)) { 57 return parent::offsetExists($offset); 58 } 59 return isset($this->modelData[$this->collection_key][$offset]); 60 } 61 62 public function offsetGet($offset) 63 { 64 if (!is_numeric($offset)) { 65 return parent::offsetGet($offset); 66 } 67 $this->coerceType($offset); 68 return $this->modelData[$this->collection_key][$offset]; 69 } 70 71 public function offsetSet($offset, $value) 72 { 73 if (!is_numeric($offset)) { 74 return parent::offsetSet($offset, $value); 75 } 76 $this->modelData[$this->collection_key][$offset] = $value; 77 } 78 79 public function offsetUnset($offset) 80 { 81 if (!is_numeric($offset)) { 82 return parent::offsetUnset($offset); 83 } 84 unset($this->modelData[$this->collection_key][$offset]); 85 } 86 87 private function coerceType($offset) 88 { 89 $typeKey = $this->keyType($this->collection_key); 90 if (isset($this->$typeKey) && !is_object($this->modelData[$this->collection_key][$offset])) { 91 $type = $this->$typeKey; 92 $this->modelData[$this->collection_key][$offset] = 93 new $type($this->modelData[$this->collection_key][$offset]); 94 } 95 } 96 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Fri Nov 28 20:29:05 2014 | Cross-referenced by PHPXref 0.7.1 |