web/lib/Zend/Gdata/Analytics/DataEntry.php
changeset 808 6b6c2214f778
child 1230 68c69c656a2c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/lib/Zend/Gdata/Analytics/DataEntry.php	Thu Mar 21 19:52:38 2013 +0100
@@ -0,0 +1,116 @@
+<?php
+/**
+ * Zend Framework
+ *
+ * LICENSE
+ *
+ * This source file is subject to the new BSD license that is bundled
+ * with this package in the file LICENSE.txt.
+ * It is also available through the world-wide-web at this URL:
+ * http://framework.zend.com/license/new-bsd
+ * If you did not receive a copy of the license and are unable to
+ * obtain it through the world-wide-web, please send an email
+ * to license@zend.com so we can send you a copy immediately.
+ *
+ * @category   Zend
+ * @package    Zend_Gdata
+ * @subpackage Analytics
+ * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @license    http://framework.zend.com/license/new-bsd     New BSD License
+ * @version    $Id$
+ */
+
+/**
+ * @see Zend_Gdata_Entry
+ */
+require_once 'Zend/Gdata/Entry.php';
+
+/**
+ * @category   Zend
+ * @package    Zend_Gdata
+ * @subpackage Analytics
+ */
+class Zend_Gdata_Analytics_DataEntry extends Zend_Gdata_Entry
+{
+    /**
+     * @var array
+     */
+    protected $_dimensions = array();
+    /**
+     * @var array
+     */
+    protected $_metrics = array();
+
+    /**
+     * @param DOMElement $element
+     */
+    public function __construct($element = null)
+    {
+        $this->registerAllNamespaces(Zend_Gdata_Analytics::$namespaces);
+        parent::__construct($element);
+    }
+
+    /**
+     * @param DOMElement $child
+     * @return void
+     */
+    protected function takeChildFromDOM($child)
+    {
+        $absoluteNodeName = $child->namespaceURI . ':' . $child->localName;
+        switch ($absoluteNodeName) {
+            case $this->lookupNamespace('analytics') . ':' . 'dimension';
+                $dimension = new Zend_Gdata_Analytics_Extension_Dimension();
+                $dimension->transferFromDOM($child);
+                $this->_dimensions[] = $dimension;
+                break;
+            case $this->lookupNamespace('analytics') . ':' . 'metric';
+                $metric = new Zend_Gdata_Analytics_Extension_Metric();
+                $metric->transferFromDOM($child);
+                $this->_metrics[] = $metric;
+                break;
+            default:
+                parent::takeChildFromDOM($child);
+                break;
+        }
+    }
+
+    /**
+     * @param string $name 
+     * @return mixed
+     */
+    public function getDimension($name)
+    {
+        foreach ($this->_dimensions as $dimension) {
+            if ($dimension->getName() == $name) {
+                return $dimension;
+            }
+        }
+        return null;
+    }
+    
+    /** 
+     * @param string $name 
+     * @return mixed
+     */
+    public function getMetric($name)
+    {
+        foreach ($this->_metrics as $metric) {
+            if ($metric->getName() == $name) {
+                return $metric;
+            }
+        }
+        return null;
+    }
+    
+    /**
+     * @param string $name 
+     * @return mixed
+     */
+    public function getValue($name)
+    {
+        if (null !== ($metric = $this->getMetric($name))) {
+            return $metric;
+        }
+        return $this->getDimension($name);
+    }
+}