File indexing completed on 2024-06-16 05:30:08

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_Photos
0026  */
0027 // require_once 'Zend/Gdata/Photos.php';
0028 
0029 /**
0030  * @see Zend_Gdata_Feed
0031  */
0032 // require_once 'Zend/Gdata/Feed.php';
0033 
0034 /**
0035  * @see Zend_Gdata_Photos_PhotoEntry
0036  */
0037 // require_once 'Zend/Gdata/Photos/PhotoEntry.php';
0038 
0039 /**
0040  * Data model for a collection of photo entries, usually
0041  * provided by the Picasa servers.
0042  *
0043  * For information on requesting this feed from a server, see the
0044  * service class, Zend_Gdata_Photos.
0045  *
0046  * @category   Zend
0047  * @package    Zend_Gdata
0048  * @subpackage Photos
0049  * @copyright  Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
0050  * @license    http://framework.zend.com/license/new-bsd     New BSD License
0051  */
0052 class Zend_Gdata_Photos_PhotoFeed extends Zend_Gdata_Feed
0053 {
0054 
0055     /**
0056      * gphoto:id element
0057      *
0058      * @var Zend_Gdata_Photos_Extension_Id
0059      */
0060     protected $_gphotoId = null;
0061 
0062     /**
0063      * gphoto:albumid element
0064      *
0065      * @var Zend_Gdata_Photos_Extension_AlbumId
0066      */
0067     protected $_gphotoAlbumId = null;
0068 
0069     /**
0070      * gphoto:version element
0071      *
0072      * @var Zend_Gdata_Photos_Extension_Version
0073      */
0074     protected $_gphotoVersion = null;
0075 
0076     /**
0077      * gphoto:width element
0078      *
0079      * @var Zend_Gdata_Photos_Extension_Width
0080      */
0081     protected $_gphotoWidth = null;
0082 
0083     /**
0084      * gphoto:height element
0085      *
0086      * @var Zend_Gdata_Photos_Extension_Height
0087      */
0088     protected $_gphotoHeight = null;
0089 
0090     /**
0091      * gphoto:size element
0092      *
0093      * @var Zend_Gdata_Photos_Extension_Size
0094      */
0095     protected $_gphotoSize = null;
0096 
0097     /**
0098      * gphoto:client element
0099      *
0100      * @var Zend_Gdata_Photos_Extension_Client
0101      */
0102     protected $_gphotoClient = null;
0103 
0104     /**
0105      * gphoto:checksum element
0106      *
0107      * @var Zend_Gdata_Photos_Extension_Checksum
0108      */
0109     protected $_gphotoChecksum = null;
0110 
0111     /**
0112      * gphoto:timestamp element
0113      *
0114      * @var Zend_Gdata_Photos_Extension_Timestamp
0115      */
0116     protected $_gphotoTimestamp = null;
0117 
0118     /**
0119      * gphoto:commentCount element
0120      *
0121      * @var Zend_Gdata_Photos_Extension_CommentCount
0122      */
0123     protected $_gphotoCommentCount = null;
0124 
0125     /**
0126      * gphoto:commentingEnabled element
0127      *
0128      * @var Zend_Gdata_Photos_Extension_CommentingEnabled
0129      */
0130     protected $_gphotoCommentingEnabled = null;
0131 
0132     /**
0133      * media:group element
0134      *
0135      * @var Zend_Gdata_Media_Extension_MediaGroup
0136      */
0137     protected $_mediaGroup = null;
0138 
0139     protected $_entryClassName = 'Zend_Gdata_Photos_PhotoEntry';
0140     protected $_feedClassName = 'Zend_Gdata_Photos_PhotoFeed';
0141 
0142     protected $_entryKindClassMapping = array(
0143         'http://schemas.google.com/photos/2007#comment' => 'Zend_Gdata_Photos_CommentEntry',
0144         'http://schemas.google.com/photos/2007#tag' => 'Zend_Gdata_Photos_TagEntry'
0145     );
0146 
0147     public function __construct($element = null)
0148     {
0149         $this->registerAllNamespaces(Zend_Gdata_Photos::$namespaces);
0150         parent::__construct($element);
0151     }
0152 
0153     public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null)
0154     {
0155         $element = parent::getDOM($doc, $majorVersion, $minorVersion);
0156         if ($this->_gphotoId != null) {
0157             $element->appendChild($this->_gphotoId->getDOM($element->ownerDocument));
0158         }
0159         if ($this->_gphotoVersion != null) {
0160             $element->appendChild($this->_gphotoVersion->getDOM($element->ownerDocument));
0161         }
0162         if ($this->_gphotoWidth != null) {
0163             $element->appendChild($this->_gphotoWidth->getDOM($element->ownerDocument));
0164         }
0165         if ($this->_gphotoHeight != null) {
0166             $element->appendChild($this->_gphotoHeight->getDOM($element->ownerDocument));
0167         }
0168         if ($this->_gphotoSize != null) {
0169             $element->appendChild($this->_gphotoSize->getDOM($element->ownerDocument));
0170         }
0171         if ($this->_gphotoClient != null) {
0172             $element->appendChild($this->_gphotoClient->getDOM($element->ownerDocument));
0173         }
0174         if ($this->_gphotoChecksum != null) {
0175             $element->appendChild($this->_gphotoChecksum->getDOM($element->ownerDocument));
0176         }
0177         if ($this->_gphotoTimestamp != null) {
0178             $element->appendChild($this->_gphotoTimestamp->getDOM($element->ownerDocument));
0179         }
0180         if ($this->_gphotoCommentingEnabled != null) {
0181             $element->appendChild($this->_gphotoCommentingEnabled->getDOM($element->ownerDocument));
0182         }
0183         if ($this->_gphotoCommentCount != null) {
0184             $element->appendChild($this->_gphotoCommentCount->getDOM($element->ownerDocument));
0185         }
0186         if ($this->_mediaGroup != null) {
0187             $element->appendChild($this->_mediaGroup->getDOM($element->ownerDocument));
0188         }
0189 
0190         return $element;
0191     }
0192 
0193     protected function takeChildFromDOM($child)
0194     {
0195         $absoluteNodeName = $child->namespaceURI . ':' . $child->localName;
0196 
0197         switch ($absoluteNodeName) {
0198             case $this->lookupNamespace('gphoto') . ':' . 'id';
0199                 $id = new Zend_Gdata_Photos_Extension_Id();
0200                 $id->transferFromDOM($child);
0201                 $this->_gphotoId = $id;
0202                 break;
0203             case $this->lookupNamespace('gphoto') . ':' . 'version';
0204                 $version = new Zend_Gdata_Photos_Extension_Version();
0205                 $version->transferFromDOM($child);
0206                 $this->_gphotoVersion = $version;
0207                 break;
0208             case $this->lookupNamespace('gphoto') . ':' . 'albumid';
0209                 $albumid = new Zend_Gdata_Photos_Extension_AlbumId();
0210                 $albumid->transferFromDOM($child);
0211                 $this->_gphotoAlbumId = $albumid;
0212                 break;
0213             case $this->lookupNamespace('gphoto') . ':' . 'width';
0214                 $width = new Zend_Gdata_Photos_Extension_Width();
0215                 $width->transferFromDOM($child);
0216                 $this->_gphotoWidth = $width;
0217                 break;
0218             case $this->lookupNamespace('gphoto') . ':' . 'height';
0219                 $height = new Zend_Gdata_Photos_Extension_Height();
0220                 $height->transferFromDOM($child);
0221                 $this->_gphotoHeight = $height;
0222                 break;
0223             case $this->lookupNamespace('gphoto') . ':' . 'size';
0224                 $size = new Zend_Gdata_Photos_Extension_Size();
0225                 $size->transferFromDOM($child);
0226                 $this->_gphotoSize = $size;
0227                 break;
0228             case $this->lookupNamespace('gphoto') . ':' . 'client';
0229                 $client = new Zend_Gdata_Photos_Extension_Client();
0230                 $client->transferFromDOM($child);
0231                 $this->_gphotoClient = $client;
0232                 break;
0233             case $this->lookupNamespace('gphoto') . ':' . 'checksum';
0234                 $checksum = new Zend_Gdata_Photos_Extension_Checksum();
0235                 $checksum->transferFromDOM($child);
0236                 $this->_gphotoChecksum = $checksum;
0237                 break;
0238             case $this->lookupNamespace('gphoto') . ':' . 'timestamp';
0239                 $timestamp = new Zend_Gdata_Photos_Extension_Timestamp();
0240                 $timestamp->transferFromDOM($child);
0241                 $this->_gphotoTimestamp = $timestamp;
0242                 break;
0243             case $this->lookupNamespace('gphoto') . ':' . 'commentingEnabled';
0244                 $commentingEnabled = new Zend_Gdata_Photos_Extension_CommentingEnabled();
0245                 $commentingEnabled->transferFromDOM($child);
0246                 $this->_gphotoCommentingEnabled = $commentingEnabled;
0247                 break;
0248             case $this->lookupNamespace('gphoto') . ':' . 'commentCount';
0249                 $commentCount = new Zend_Gdata_Photos_Extension_CommentCount();
0250                 $commentCount->transferFromDOM($child);
0251                 $this->_gphotoCommentCount = $commentCount;
0252                 break;
0253             case $this->lookupNamespace('media') . ':' . 'group';
0254                 $mediaGroup = new Zend_Gdata_Media_Extension_MediaGroup();
0255                 $mediaGroup->transferFromDOM($child);
0256                 $this->_mediaGroup = $mediaGroup;
0257                 break;
0258             case $this->lookupNamespace('atom') . ':' . 'entry':
0259                 $entryClassName = $this->_entryClassName;
0260                 $tmpEntry = new Zend_Gdata_App_Entry($child);
0261                 $categories = $tmpEntry->getCategory();
0262                 foreach ($categories as $category) {
0263                     if ($category->scheme == Zend_Gdata_Photos::KIND_PATH &&
0264                         $this->_entryKindClassMapping[$category->term] != "") {
0265                             $entryClassName = $this->_entryKindClassMapping[$category->term];
0266                             break;
0267                     } else {
0268                         // require_once 'Zend/Gdata/App/Exception.php';
0269                         throw new Zend_Gdata_App_Exception('Entry is missing kind declaration.');
0270                     }
0271                 }
0272 
0273                 $newEntry = new $entryClassName($child);
0274                 $newEntry->setHttpClient($this->getHttpClient());
0275                 $this->_entry[] = $newEntry;
0276                 break;
0277             default:
0278                 parent::takeChildFromDOM($child);
0279                 break;
0280         }
0281     }
0282 
0283     /**
0284      * Get the value for this element's gphoto:id attribute.
0285      *
0286      * @see setGphotoId
0287      * @return string The requested attribute.
0288      */
0289     public function getGphotoId()
0290     {
0291         return $this->_gphotoId;
0292     }
0293 
0294     /**
0295      * Set the value for this element's gphoto:id attribute.
0296      *
0297      * @param string $value The desired value for this attribute.
0298      * @return Zend_Gdata_Photos_Extension_Id The element being modified.
0299      */
0300     public function setGphotoId($value)
0301     {
0302         $this->_gphotoId = $value;
0303         return $this;
0304     }
0305 
0306     /**
0307      * Get the value for this element's gphoto:version attribute.
0308      *
0309      * @see setGphotoVersion
0310      * @return string The requested attribute.
0311      */
0312     public function getGphotoVersion()
0313     {
0314         return $this->_gphotoVersion;
0315     }
0316 
0317     /**
0318      * Set the value for this element's gphoto:version attribute.
0319      *
0320      * @param string $value The desired value for this attribute.
0321      * @return Zend_Gdata_Photos_Extension_Version The element being modified.
0322      */
0323     public function setGphotoVersion($value)
0324     {
0325         $this->_gphotoVersion = $value;
0326         return $this;
0327     }
0328 
0329     /**
0330      * Get the value for this element's gphoto:albumid attribute.
0331      *
0332      * @see setGphotoAlbumId
0333      * @return string The requested attribute.
0334      */
0335     public function getGphotoAlbumId()
0336     {
0337         return $this->_gphotoAlbumId;
0338     }
0339 
0340     /**
0341      * Set the value for this element's gphoto:albumid attribute.
0342      *
0343      * @param string $value The desired value for this attribute.
0344      * @return Zend_Gdata_Photos_Extension_AlbumId The element being modified.
0345      */
0346     public function setGphotoAlbumId($value)
0347     {
0348         $this->_gphotoAlbumId = $value;
0349         return $this;
0350     }
0351 
0352     /**
0353      * Get the value for this element's gphoto:width attribute.
0354      *
0355      * @see setGphotoWidth
0356      * @return string The requested attribute.
0357      */
0358     public function getGphotoWidth()
0359     {
0360         return $this->_gphotoWidth;
0361     }
0362 
0363     /**
0364      * Set the value for this element's gphoto:width attribute.
0365      *
0366      * @param string $value The desired value for this attribute.
0367      * @return Zend_Gdata_Photos_Extension_Width The element being modified.
0368      */
0369     public function setGphotoWidth($value)
0370     {
0371         $this->_gphotoWidth = $value;
0372         return $this;
0373     }
0374 
0375     /**
0376      * Get the value for this element's gphoto:height attribute.
0377      *
0378      * @see setGphotoHeight
0379      * @return string The requested attribute.
0380      */
0381     public function getGphotoHeight()
0382     {
0383         return $this->_gphotoHeight;
0384     }
0385 
0386     /**
0387      * Set the value for this element's gphoto:height attribute.
0388      *
0389      * @param string $value The desired value for this attribute.
0390      * @return Zend_Gdata_Photos_Extension_Height The element being modified.
0391      */
0392     public function setGphotoHeight($value)
0393     {
0394         $this->_gphotoHeight = $value;
0395         return $this;
0396     }
0397 
0398     /**
0399      * Get the value for this element's gphoto:size attribute.
0400      *
0401      * @see setGphotoSize
0402      * @return string The requested attribute.
0403      */
0404     public function getGphotoSize()
0405     {
0406         return $this->_gphotoSize;
0407     }
0408 
0409     /**
0410      * Set the value for this element's gphoto:size attribute.
0411      *
0412      * @param string $value The desired value for this attribute.
0413      * @return Zend_Gdata_Photos_Extension_Size The element being modified.
0414      */
0415     public function setGphotoSize($value)
0416     {
0417         $this->_gphotoSize = $value;
0418         return $this;
0419     }
0420 
0421     /**
0422      * Get the value for this element's gphoto:client attribute.
0423      *
0424      * @see setGphotoClient
0425      * @return string The requested attribute.
0426      */
0427     public function getGphotoClient()
0428     {
0429         return $this->_gphotoClient;
0430     }
0431 
0432     /**
0433      * Set the value for this element's gphoto:client attribute.
0434      *
0435      * @param string $value The desired value for this attribute.
0436      * @return Zend_Gdata_Photos_Extension_Client The element being modified.
0437      */
0438     public function setGphotoClient($value)
0439     {
0440         $this->_gphotoClient = $value;
0441         return $this;
0442     }
0443 
0444     /**
0445      * Get the value for this element's gphoto:checksum attribute.
0446      *
0447      * @see setGphotoChecksum
0448      * @return string The requested attribute.
0449      */
0450     public function getGphotoChecksum()
0451     {
0452         return $this->_gphotoChecksum;
0453     }
0454 
0455     /**
0456      * Set the value for this element's gphoto:checksum attribute.
0457      *
0458      * @param string $value The desired value for this attribute.
0459      * @return Zend_Gdata_Photos_Extension_Checksum The element being modified.
0460      */
0461     public function setGphotoChecksum($value)
0462     {
0463         $this->_gphotoChecksum = $value;
0464         return $this;
0465     }
0466 
0467     /**
0468      * Get the value for this element's gphoto:timestamp attribute.
0469      *
0470      * @see setGphotoTimestamp
0471      * @return string The requested attribute.
0472      */
0473     public function getGphotoTimestamp()
0474     {
0475         return $this->_gphotoTimestamp;
0476     }
0477 
0478     /**
0479      * Set the value for this element's gphoto:timestamp attribute.
0480      *
0481      * @param string $value The desired value for this attribute.
0482      * @return Zend_Gdata_Photos_Extension_Timestamp The element being modified.
0483      */
0484     public function setGphotoTimestamp($value)
0485     {
0486         $this->_gphotoTimestamp = $value;
0487         return $this;
0488     }
0489 
0490     /**
0491      * Get the value for this element's gphoto:commentCount attribute.
0492      *
0493      * @see setGphotoCommentCount
0494      * @return string The requested attribute.
0495      */
0496     public function getGphotoCommentCount()
0497     {
0498         return $this->_gphotoCommentCount;
0499     }
0500 
0501     /**
0502      * Set the value for this element's gphoto:commentCount attribute.
0503      *
0504      * @param string $value The desired value for this attribute.
0505      * @return Zend_Gdata_Photos_Extension_CommentCount The element being modified.
0506      */
0507     public function setGphotoCommentCount($value)
0508     {
0509         $this->_gphotoCommentCount = $value;
0510         return $this;
0511     }
0512 
0513     /**
0514      * Get the value for this element's gphoto:commentingEnabled attribute.
0515      *
0516      * @see setGphotoCommentingEnabled
0517      * @return string The requested attribute.
0518      */
0519     public function getGphotoCommentingEnabled()
0520     {
0521         return $this->_gphotoCommentingEnabled;
0522     }
0523 
0524     /**
0525      * Set the value for this element's gphoto:commentingEnabled attribute.
0526      *
0527      * @param string $value The desired value for this attribute.
0528      * @return Zend_Gdata_Photos_Extension_CommentingEnabled The element being modified.
0529      */
0530     public function setGphotoCommentingEnabled($value)
0531     {
0532         $this->_gphotoCommentingEnabled = $value;
0533         return $this;
0534     }
0535 
0536     /**
0537      * Get the value for this element's media:group attribute.
0538      *
0539      * @see setMediaGroup
0540      * @return string The requested attribute.
0541      */
0542     public function getMediaGroup()
0543     {
0544         return $this->_mediaGroup;
0545     }
0546 
0547     /**
0548      * Set the value for this element's media:group attribute.
0549      *
0550      * @param string $value The desired value for this attribute.
0551      * @return Zend_Gdata_Media_Extension_MediaGroup The element being modified.
0552      */
0553     public function setMediaGroup($value)
0554     {
0555         $this->_mediaGroup = $value;
0556         return $this;
0557     }
0558 
0559 }