File indexing completed on 2024-05-26 06:03:05

0001 <?php
0002 
0003 /**
0004  * Zend Framework
0005  *
0006  * LICENSE
0007  *
0008  * This source file is subject to the new BSD license that is bundled
0009  * with this package in the file LICENSE.txt.
0010  * It is also available through the world-wide-web at this URL:
0011  * http://framework.zend.com/license/new-bsd
0012  * If you did not receive a copy of the license and are unable to
0013  * obtain it through the world-wide-web, please send an email
0014  * to license@zend.com so we can send you a copy immediately.
0015  *
0016  * @category   Zend
0017  * @package    Zend_Gdata
0018  * @subpackage Photos
0019  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0020  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0021  * @version    $Id$
0022  */
0023 
0024 /**
0025  * @see Zend_Gdata_Entry
0026  */
0027 // require_once 'Zend/Gdata/Entry.php';
0028 
0029 /**
0030  * @see Zend_Gdata_Photos_Extension_Id
0031  */
0032 // require_once 'Zend/Gdata/Photos/Extension/Id.php';
0033 
0034 /**
0035  * @see Zend_Gdata_Photos_Extension_PhotoId
0036  */
0037 // require_once 'Zend/Gdata/Photos/Extension/PhotoId.php';
0038 
0039 /**
0040  * @see Zend_Gdata_Photos_Extension_Weight
0041  */
0042 // require_once 'Zend/Gdata/Photos/Extension/Weight.php';
0043 
0044 /**
0045  * @see Zend_Gdata_App_Extension_Category
0046  */
0047 // require_once 'Zend/Gdata/App/Extension/Category.php';
0048 
0049 /**
0050  * Data model class for a Comment Entry.
0051  *
0052  * To transfer user entries to and from the servers, including
0053  * creating new entries, refer to the service class,
0054  * Zend_Gdata_Photos.
0055  *
0056  * This class represents <atom:entry> in the Google Data protocol.
0057  *
0058  * @category   Zend
0059  * @package    Zend_Gdata
0060  * @subpackage Photos
0061  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0062  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0063  */
0064 class Zend_Gdata_Photos_CommentEntry extends Zend_Gdata_Entry
0065 {
0066 
0067     protected $_entryClassName = 'Zend_Gdata_Photos_CommentEntry';
0068 
0069     /**
0070      * gphoto:id element
0071      *
0072      * @var Zend_Gdata_Photos_Extension_Id
0073      */
0074     protected $_gphotoId = null;
0075 
0076     /**
0077      * gphoto:photoid element, differs from gphoto:id as this is an
0078      * actual identification number unique exclusively to photo entries,
0079      * whereas gphoto:id can refer to all gphoto objects
0080      *
0081      * @var Zend_Gdata_Photos_Extension_PhotoId
0082      */
0083     protected $_gphotoPhotoId = null;
0084 
0085     /**
0086      * Create a new instance.
0087      *
0088      * @param DOMElement $element (optional) DOMElement from which this
0089      *          object should be constructed.
0090      */
0091     public function __construct($element = null)
0092     {
0093         $this->registerAllNamespaces(Zend_Gdata_Photos::$namespaces);
0094         parent::__construct($element);
0095 
0096         $category = new Zend_Gdata_App_Extension_Category(
0097             'http://schemas.google.com/photos/2007#comment',
0098             'http://schemas.google.com/g/2005#kind');
0099         $this->setCategory(array($category));
0100     }
0101 
0102     /**
0103      * Retrieves a DOMElement which corresponds to this element and all
0104      * child properties.  This is used to build an entry back into a DOM
0105      * and eventually XML text for application storage/persistence.
0106      *
0107      * @param DOMDocument $doc The DOMDocument used to construct DOMElements
0108      * @return DOMElement The DOMElement representing this element and all
0109      *          child properties.
0110      */
0111     public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null)
0112     {
0113         $element = parent::getDOM($doc, $majorVersion, $minorVersion);
0114         if ($this->_gphotoId !== null) {
0115             $element->appendChild($this->_gphotoId->getDOM($element->ownerDocument));
0116         }
0117         if ($this->_gphotoPhotoId !== null) {
0118             $element->appendChild($this->_gphotoPhotoId->getDOM($element->ownerDocument));
0119         }
0120         return $element;
0121     }
0122 
0123     /**
0124      * Creates individual Entry objects of the appropriate type and
0125      * stores them as members of this entry based upon DOM data.
0126      *
0127      * @param DOMNode $child The DOMNode to process
0128      */
0129     protected function takeChildFromDOM($child)
0130     {
0131         $absoluteNodeName = $child->namespaceURI . ':' . $child->localName;
0132 
0133         switch ($absoluteNodeName) {
0134             case $this->lookupNamespace('gphoto') . ':' . 'id';
0135                 $id = new Zend_Gdata_Photos_Extension_Id();
0136                 $id->transferFromDOM($child);
0137                 $this->_gphotoId = $id;
0138                 break;
0139             case $this->lookupNamespace('gphoto') . ':' . 'photoid';
0140                 $photoid = new Zend_Gdata_Photos_Extension_PhotoId();
0141                 $photoid->transferFromDOM($child);
0142                 $this->_gphotoPhotoId = $photoid;
0143                 break;
0144             default:
0145                 parent::takeChildFromDOM($child);
0146                 break;
0147         }
0148     }
0149 
0150     /**
0151      * Get the value for this element's gphoto:photoid attribute.
0152      *
0153      * @see setGphotoPhotoId
0154      * @return string The requested attribute.
0155      */
0156     public function getGphotoPhotoId()
0157     {
0158         return $this->_gphotoPhotoId;
0159     }
0160 
0161     /**
0162      * Set the value for this element's gphoto:photoid attribute.
0163      *
0164      * @param string $value The desired value for this attribute.
0165      * @return Zend_Gdata_Photos_Extension_PhotoId The element being modified.
0166      */
0167     public function setGphotoPhotoId($value)
0168     {
0169         $this->_gphotoPhotoId = $value;
0170         return $this;
0171     }
0172 
0173     /**
0174      * Get the value for this element's gphoto:id attribute.
0175      *
0176      * @see setGphotoId
0177      * @return string The requested attribute.
0178      */
0179     public function getGphotoId()
0180     {
0181         return $this->_gphotoId;
0182     }
0183 
0184     /**
0185      * Set the value for this element's gphoto:id attribute.
0186      *
0187      * @param string $value The desired value for this attribute.
0188      * @return Zend_Gdata_Photos_Extension_Id The element being modified.
0189      */
0190     public function setGphotoId($value)
0191     {
0192         $this->_gphotoId = $value;
0193         return $this;
0194     }
0195 }