source: extensions/Google2Piwigo/include/Zend/Gdata/YouTube/UserProfileEntry.php @ 17475

Last change on this file since 17475 was 17475, checked in by mistic100, 12 years ago

new extension: Google2Piwigo

File size: 29.3 KB
Line 
1<?php
2
3/**
4 * Zend Framework
5 *
6 * LICENSE
7 *
8 * This source file is subject to the new BSD license that is bundled
9 * with this package in the file LICENSE.txt.
10 * It is also available through the world-wide-web at this URL:
11 * http://framework.zend.com/license/new-bsd
12 * If you did not receive a copy of the license and are unable to
13 * obtain it through the world-wide-web, please send an email
14 * to license@zend.com so we can send you a copy immediately.
15 *
16 * @category   Zend
17 * @package    Zend_Gdata
18 * @subpackage YouTube
19 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
20 * @license    http://framework.zend.com/license/new-bsd     New BSD License
21 * @version    $Id: UserProfileEntry.php 24594 2012-01-05 21:27:01Z matthew $
22 */
23
24/**
25 * @see Zend_Gdata_Entry
26 */
27require_once 'Zend/Gdata/Entry.php';
28
29/**
30 * @see Zend_Gdata_Extension_FeedLink
31 */
32require_once 'Zend/Gdata/Extension/FeedLink.php';
33
34/**
35 * @see Zend_Gdata_YouTube_Extension_Description
36 */
37require_once 'Zend/Gdata/YouTube/Extension/Description.php';
38
39/**
40 * @see Zend_Gdata_YouTube_Extension_AboutMe
41 */
42require_once 'Zend/Gdata/YouTube/Extension/AboutMe.php';
43
44/**
45 * @see Zend_Gdata_YouTube_Extension_Age
46 */
47require_once 'Zend/Gdata/YouTube/Extension/Age.php';
48
49/**
50 * @see Zend_Gdata_YouTube_Extension_Username
51 */
52require_once 'Zend/Gdata/YouTube/Extension/Username.php';
53
54/**
55 * @see Zend_Gdata_YouTube_Extension_Books
56 */
57require_once 'Zend/Gdata/YouTube/Extension/Books.php';
58
59/**
60 * @see Zend_Gdata_YouTube_Extension_Company
61 */
62require_once 'Zend/Gdata/YouTube/Extension/Company.php';
63
64/**
65 * @see Zend_Gdata_YouTube_Extension_Hobbies
66 */
67require_once 'Zend/Gdata/YouTube/Extension/Hobbies.php';
68
69/**
70 * @see Zend_Gdata_YouTube_Extension_Hometown
71 */
72require_once 'Zend/Gdata/YouTube/Extension/Hometown.php';
73
74/**
75 * @see Zend_Gdata_YouTube_Extension_Location
76 */
77require_once 'Zend/Gdata/YouTube/Extension/Location.php';
78
79/**
80 * @see Zend_Gdata_YouTube_Extension_Movies
81 */
82require_once 'Zend/Gdata/YouTube/Extension/Movies.php';
83
84/**
85 * @see Zend_Gdata_YouTube_Extension_Music
86 */
87require_once 'Zend/Gdata/YouTube/Extension/Music.php';
88
89/**
90 * @see Zend_Gdata_YouTube_Extension_Occupation
91 */
92require_once 'Zend/Gdata/YouTube/Extension/Occupation.php';
93
94/**
95 * @see Zend_Gdata_YouTube_Extension_School
96 */
97require_once 'Zend/Gdata/YouTube/Extension/School.php';
98
99/**
100 * @see Zend_Gdata_YouTube_Extension_Gender
101 */
102require_once 'Zend/Gdata/YouTube/Extension/Gender.php';
103
104/**
105 * @see Zend_Gdata_YouTube_Extension_Relationship
106 */
107require_once 'Zend/Gdata/YouTube/Extension/Relationship.php';
108
109/**
110 * @see Zend_Gdata_YouTube_Extension_FirstName
111 */
112require_once 'Zend/Gdata/YouTube/Extension/FirstName.php';
113
114/**
115 * @see Zend_Gdata_YouTube_Extension_LastName
116 */
117require_once 'Zend/Gdata/YouTube/Extension/LastName.php';
118
119/**
120 * @see Zend_Gdata_YouTube_Extension_Statistics
121 */
122require_once 'Zend/Gdata/YouTube/Extension/Statistics.php';
123
124/**
125 * @see Zend_Gdata_Media_Extension_MediaThumbnail
126 */
127require_once 'Zend/Gdata/Media/Extension/MediaThumbnail.php';
128
129/**
130 * Represents the YouTube video playlist flavor of an Atom entry
131 *
132 * @category   Zend
133 * @package    Zend_Gdata
134 * @subpackage YouTube
135 * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
136 * @license    http://framework.zend.com/license/new-bsd     New BSD License
137 */
138class Zend_Gdata_YouTube_UserProfileEntry extends Zend_Gdata_Entry
139{
140
141    protected $_entryClassName = 'Zend_Gdata_YouTube_UserProfileEntry';
142
143    /**
144     * Nested feed links
145     *
146     * @var array
147     */
148    protected $_feedLink = array();
149
150    /**
151     * The username for this profile entry
152     *
153     * @var string
154     */
155    protected $_username = null;
156
157    /**
158     * The description of the user
159     *
160     * @var string
161     */
162    protected $_description = null;
163
164    /**
165     * The contents of the 'About Me' field.
166     *
167     * @var string
168     */
169    protected $_aboutMe = null;
170
171    /**
172     * The age of the user
173     *
174     * @var int
175     */
176    protected $_age = null;
177
178    /**
179     * Books of interest to the user
180     *
181     * @var string
182     */
183    protected $_books = null;
184
185    /**
186     * Company
187     *
188     * @var string
189     */
190    protected $_company = null;
191
192    /**
193     * Hobbies
194     *
195     * @var string
196     */
197    protected $_hobbies = null;
198
199    /**
200     * Hometown
201     *
202     * @var string
203     */
204    protected $_hometown = null;
205
206    /**
207     * Location
208     *
209     * @var string
210     */
211    protected $_location = null;
212
213    /**
214     * Movies
215     *
216     * @var string
217     */
218    protected $_movies = null;
219
220    /**
221     * Music
222     *
223     * @var string
224     */
225    protected $_music = null;
226
227    /**
228     * Occupation
229     *
230     * @var string
231     */
232    protected $_occupation = null;
233
234    /**
235     * School
236     *
237     * @var string
238     */
239    protected $_school = null;
240
241    /**
242     * Gender
243     *
244     * @var string
245     */
246    protected $_gender = null;
247
248    /**
249     * Relationship
250     *
251     * @var string
252     */
253    protected $_relationship = null;
254
255    /**
256     * First name
257     *
258     * @var string
259     */
260    protected $_firstName = null;
261
262    /**
263     * Last name
264     *
265     * @var string
266     */
267    protected $_lastName = null;
268
269    /**
270     * Statistics
271     *
272     * @var Zend_Gdata_YouTube_Extension_Statistics
273     */
274    protected $_statistics = null;
275
276    /**
277     * Thumbnail
278     *
279     * @var Zend_Gdata_Media_Extension_MediaThumbnail
280     */
281    protected $_thumbnail = null;
282
283    /**
284     * Creates a User Profile entry, representing an individual user
285     * and their attributes.
286     *
287     * @param DOMElement $element (optional) DOMElement from which this
288     *          object should be constructed.
289     */
290    public function __construct($element = null)
291    {
292        $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces);
293        parent::__construct($element);
294    }
295
296    /**
297     * Retrieves a DOMElement which corresponds to this element and all
298     * child properties.  This is used to build an entry back into a DOM
299     * and eventually XML text for sending to the server upon updates, or
300     * for application storage/persistence.
301     *
302     * @param DOMDocument $doc The DOMDocument used to construct DOMElements
303     * @return DOMElement The DOMElement representing this element and all
304     * child properties.
305     */
306    public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null)
307    {
308        $element = parent::getDOM($doc, $majorVersion, $minorVersion);
309        if ($this->_description != null) {
310            $element->appendChild($this->_description->getDOM($element->ownerDocument));
311        }
312        if ($this->_aboutMe != null) {
313            $element->appendChild($this->_aboutMe->getDOM($element->ownerDocument));
314        }
315        if ($this->_age != null) {
316            $element->appendChild($this->_age->getDOM($element->ownerDocument));
317        }
318        if ($this->_username != null) {
319            $element->appendChild($this->_username->getDOM($element->ownerDocument));
320        }
321        if ($this->_books != null) {
322            $element->appendChild($this->_books->getDOM($element->ownerDocument));
323        }
324        if ($this->_company != null) {
325            $element->appendChild($this->_company->getDOM($element->ownerDocument));
326        }
327        if ($this->_hobbies != null) {
328            $element->appendChild($this->_hobbies->getDOM($element->ownerDocument));
329        }
330        if ($this->_hometown != null) {
331            $element->appendChild($this->_hometown->getDOM($element->ownerDocument));
332        }
333        if ($this->_location != null) {
334            $element->appendChild($this->_location->getDOM($element->ownerDocument));
335        }
336        if ($this->_movies != null) {
337            $element->appendChild($this->_movies->getDOM($element->ownerDocument));
338        }
339        if ($this->_music != null) {
340            $element->appendChild($this->_music->getDOM($element->ownerDocument));
341        }
342        if ($this->_occupation != null) {
343            $element->appendChild($this->_occupation->getDOM($element->ownerDocument));
344        }
345        if ($this->_school != null) {
346            $element->appendChild($this->_school->getDOM($element->ownerDocument));
347        }
348        if ($this->_gender != null) {
349            $element->appendChild($this->_gender->getDOM($element->ownerDocument));
350        }
351        if ($this->_relationship != null) {
352            $element->appendChild($this->_relationship->getDOM($element->ownerDocument));
353        }
354        if ($this->_firstName != null) {
355            $element->appendChild($this->_firstName->getDOM($element->ownerDocument));
356        }
357        if ($this->_lastName != null) {
358            $element->appendChild($this->_lastName->getDOM($element->ownerDocument));
359        }
360        if ($this->_statistics != null) {
361            $element->appendChild($this->_statistics->getDOM($element->ownerDocument));
362        }
363        if ($this->_thumbnail != null) {
364            $element->appendChild($this->_thumbnail->getDOM($element->ownerDocument));
365        }
366        if ($this->_feedLink != null) {
367            foreach ($this->_feedLink as $feedLink) {
368                $element->appendChild($feedLink->getDOM($element->ownerDocument));
369            }
370        }
371        return $element;
372    }
373
374    /**
375     * Creates individual Entry objects of the appropriate type and
376     * stores them in the $_entry array based upon DOM data.
377     *
378     * @param DOMNode $child The DOMNode to process
379     */
380    protected function takeChildFromDOM($child)
381    {
382        $absoluteNodeName = $child->namespaceURI . ':' . $child->localName;
383        switch ($absoluteNodeName) {
384        case $this->lookupNamespace('yt') . ':' . 'description':
385            $description = new Zend_Gdata_YouTube_Extension_Description();
386            $description->transferFromDOM($child);
387            $this->_description = $description;
388            break;
389        case $this->lookupNamespace('yt') . ':' . 'aboutMe':
390            $aboutMe = new Zend_Gdata_YouTube_Extension_AboutMe();
391            $aboutMe->transferFromDOM($child);
392            $this->_aboutMe = $aboutMe;
393            break;
394        case $this->lookupNamespace('yt') . ':' . 'age':
395            $age = new Zend_Gdata_YouTube_Extension_Age();
396            $age->transferFromDOM($child);
397            $this->_age = $age;
398            break;
399        case $this->lookupNamespace('yt') . ':' . 'username':
400            $username = new Zend_Gdata_YouTube_Extension_Username();
401            $username->transferFromDOM($child);
402            $this->_username = $username;
403            break;
404        case $this->lookupNamespace('yt') . ':' . 'books':
405            $books = new Zend_Gdata_YouTube_Extension_Books();
406            $books->transferFromDOM($child);
407            $this->_books = $books;
408            break;
409        case $this->lookupNamespace('yt') . ':' . 'company':
410            $company = new Zend_Gdata_YouTube_Extension_Company();
411            $company->transferFromDOM($child);
412            $this->_company = $company;
413            break;
414        case $this->lookupNamespace('yt') . ':' . 'hobbies':
415            $hobbies = new Zend_Gdata_YouTube_Extension_Hobbies();
416            $hobbies->transferFromDOM($child);
417            $this->_hobbies = $hobbies;
418            break;
419        case $this->lookupNamespace('yt') . ':' . 'hometown':
420            $hometown = new Zend_Gdata_YouTube_Extension_Hometown();
421            $hometown->transferFromDOM($child);
422            $this->_hometown = $hometown;
423            break;
424        case $this->lookupNamespace('yt') . ':' . 'location':
425            $location = new Zend_Gdata_YouTube_Extension_Location();
426            $location->transferFromDOM($child);
427            $this->_location = $location;
428            break;
429        case $this->lookupNamespace('yt') . ':' . 'movies':
430            $movies = new Zend_Gdata_YouTube_Extension_Movies();
431            $movies->transferFromDOM($child);
432            $this->_movies = $movies;
433            break;
434        case $this->lookupNamespace('yt') . ':' . 'music':
435            $music = new Zend_Gdata_YouTube_Extension_Music();
436            $music->transferFromDOM($child);
437            $this->_music = $music;
438            break;
439        case $this->lookupNamespace('yt') . ':' . 'occupation':
440            $occupation = new Zend_Gdata_YouTube_Extension_Occupation();
441            $occupation->transferFromDOM($child);
442            $this->_occupation = $occupation;
443            break;
444        case $this->lookupNamespace('yt') . ':' . 'school':
445            $school = new Zend_Gdata_YouTube_Extension_School();
446            $school->transferFromDOM($child);
447            $this->_school = $school;
448            break;
449        case $this->lookupNamespace('yt') . ':' . 'gender':
450            $gender = new Zend_Gdata_YouTube_Extension_Gender();
451            $gender->transferFromDOM($child);
452            $this->_gender = $gender;
453            break;
454        case $this->lookupNamespace('yt') . ':' . 'relationship':
455            $relationship = new Zend_Gdata_YouTube_Extension_Relationship();
456            $relationship->transferFromDOM($child);
457            $this->_relationship = $relationship;
458            break;
459        case $this->lookupNamespace('yt') . ':' . 'firstName':
460            $firstName = new Zend_Gdata_YouTube_Extension_FirstName();
461            $firstName->transferFromDOM($child);
462            $this->_firstName = $firstName;
463            break;
464        case $this->lookupNamespace('yt') . ':' . 'lastName':
465            $lastName = new Zend_Gdata_YouTube_Extension_LastName();
466            $lastName->transferFromDOM($child);
467            $this->_lastName = $lastName;
468            break;
469        case $this->lookupNamespace('yt') . ':' . 'statistics':
470            $statistics = new Zend_Gdata_YouTube_Extension_Statistics();
471            $statistics->transferFromDOM($child);
472            $this->_statistics = $statistics;
473            break;
474        case $this->lookupNamespace('media') . ':' . 'thumbnail':
475            $thumbnail = new Zend_Gdata_Media_Extension_MediaThumbnail();
476            $thumbnail->transferFromDOM($child);
477            $this->_thumbnail = $thumbnail;
478            break;
479        case $this->lookupNamespace('gd') . ':' . 'feedLink':
480            $feedLink = new Zend_Gdata_Extension_FeedLink();
481            $feedLink->transferFromDOM($child);
482            $this->_feedLink[] = $feedLink;
483            break;
484        default:
485            parent::takeChildFromDOM($child);
486            break;
487        }
488    }
489
490    /**
491     * Sets the content of the 'about me' field.
492     *
493     * @param Zend_Gdata_YouTube_Extension_AboutMe $aboutMe The 'about me'
494     *        information.
495     * @throws Zend_Gdata_App_VersionException
496     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
497     */
498    public function setAboutMe($aboutMe = null)
499    {
500        if (($this->getMajorProtocolVersion() == null) ||
501           ($this->getMajorProtocolVersion() == 1)) {
502            require_once 'Zend/Gdata/App/VersionException.php';
503            throw new Zend_Gdata_App_VersionException('The setAboutMe ' .
504                ' method is only supported as of version 2 of the YouTube ' .
505                'API.');
506        } else {
507            $this->_aboutMe = $aboutMe;
508            return $this;
509        }
510    }
511
512    /**
513     * Returns the contents of the 'about me' field.
514     *
515     * @throws Zend_Gdata_App_VersionException
516     * @return Zend_Gdata_YouTube_Extension_AboutMe  The 'about me' information
517     */
518    public function getAboutMe()
519    {
520        if (($this->getMajorProtocolVersion() == null) ||
521           ($this->getMajorProtocolVersion() == 1)) {
522            require_once 'Zend/Gdata/App/VersionException.php';
523            throw new Zend_Gdata_App_VersionException('The getAboutMe ' .
524                ' method is only supported as of version 2 of the YouTube ' .
525                'API.');
526        } else {
527            return $this->_aboutMe;
528        }
529    }
530
531    /**
532     * Sets the content of the 'first name' field.
533     *
534     * @param Zend_Gdata_YouTube_Extension_FirstName $firstName The first name
535     * @throws Zend_Gdata_App_VersionException
536     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
537     */
538    public function setFirstName($firstName = null)
539    {
540        if (($this->getMajorProtocolVersion() == null) ||
541           ($this->getMajorProtocolVersion() == 1)) {
542            require_once 'Zend/Gdata/App/VersionException.php';
543            throw new Zend_Gdata_App_VersionException('The setFirstName ' .
544                ' method is only supported as of version 2 of the YouTube ' .
545                'API.');
546        } else {
547            $this->_firstName = $firstName;
548            return $this;
549        }
550    }
551
552    /**
553     * Returns the first name
554     *
555     * @throws Zend_Gdata_App_VersionException
556     * @return Zend_Gdata_YouTube_Extension_FirstName  The first name
557     */
558    public function getFirstName()
559    {
560        if (($this->getMajorProtocolVersion() == null) ||
561           ($this->getMajorProtocolVersion() == 1)) {
562            require_once 'Zend/Gdata/App/VersionException.php';
563            throw new Zend_Gdata_App_VersionException('The getFirstName ' .
564                ' method is only supported as of version 2 of the YouTube ' .
565                'API.');
566        } else {
567            return $this->_firstName;
568        }
569    }
570
571    /**
572     * Sets the content of the 'last name' field.
573     *
574     * @param Zend_Gdata_YouTube_Extension_LastName $lastName The last name
575     * @throws Zend_Gdata_App_VersionException
576     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
577     */
578    public function setLastName($lastName = null)
579    {
580        if (($this->getMajorProtocolVersion() == null) ||
581           ($this->getMajorProtocolVersion() == 1)) {
582            require_once 'Zend/Gdata/App/VersionException.php';
583            throw new Zend_Gdata_App_VersionException('The setLastName ' .
584                ' method is only supported as of version 2 of the YouTube ' .
585                'API.');
586        } else {
587            $this->_lastName = $lastName;
588            return $this;
589        }
590    }
591
592    /**
593     * Returns the last name
594     *
595     * @throws Zend_Gdata_App_VersionException
596     * @return Zend_Gdata_YouTube_Extension_LastName  The last name
597     */
598    public function getLastName()
599    {
600        if (($this->getMajorProtocolVersion() == null) ||
601           ($this->getMajorProtocolVersion() == 1)) {
602            require_once 'Zend/Gdata/App/VersionException.php';
603            throw new Zend_Gdata_App_VersionException('The getLastName ' .
604                ' method is only supported as of version 2 of the YouTube ' .
605                'API.');
606        } else {
607            return $this->_lastName;
608        }
609    }
610
611    /**
612     * Returns the statistics
613     *
614     * @throws Zend_Gdata_App_VersionException
615     * @return Zend_Gdata_YouTube_Extension_Statistics  The profile statistics
616     */
617    public function getStatistics()
618    {
619        if (($this->getMajorProtocolVersion() == null) ||
620           ($this->getMajorProtocolVersion() == 1)) {
621            require_once 'Zend/Gdata/App/VersionException.php';
622            throw new Zend_Gdata_App_VersionException('The getStatistics ' .
623                ' method is only supported as of version 2 of the YouTube ' .
624                'API.');
625        } else {
626            return $this->_statistics;
627        }
628    }
629
630    /**
631     * Returns the thumbnail
632     *
633     * @throws Zend_Gdata_App_VersionException
634     * @return Zend_Gdata_Media_Extension_MediaThumbnail The profile thumbnail
635     */
636    public function getThumbnail()
637    {
638        if (($this->getMajorProtocolVersion() == null) ||
639           ($this->getMajorProtocolVersion() == 1)) {
640            require_once 'Zend/Gdata/App/VersionException.php';
641            throw new Zend_Gdata_App_VersionException('The getThumbnail ' .
642                ' method is only supported as of version 2 of the YouTube ' .
643                'API.');
644        } else {
645            return $this->_thumbnail;
646        }
647    }
648
649    /**
650     * Sets the age
651     *
652     * @param Zend_Gdata_YouTube_Extension_Age $age The age
653     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
654     */
655    public function setAge($age = null)
656    {
657        $this->_age = $age;
658        return $this;
659    }
660
661    /**
662     * Returns the age
663     *
664     * @return Zend_Gdata_YouTube_Extension_Age  The age
665     */
666    public function getAge()
667    {
668        return $this->_age;
669    }
670
671    /**
672     * Sets the username
673     *
674     * @param Zend_Gdata_YouTube_Extension_Username $username The username
675     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
676     */
677    public function setUsername($username = null)
678    {
679        $this->_username = $username;
680        return $this;
681    }
682
683    /**
684     * Returns the username
685     *
686     * @return Zend_Gdata_YouTube_Extension_Username  The username
687     */
688    public function getUsername()
689    {
690        return $this->_username;
691    }
692
693    /**
694     * Sets the books
695     *
696     * @param Zend_Gdata_YouTube_Extension_Books $books The books
697     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
698     */
699    public function setBooks($books = null)
700    {
701        $this->_books = $books;
702        return $this;
703    }
704
705    /**
706     * Returns the books
707     *
708     * @return Zend_Gdata_YouTube_Extension_Books  The books
709     */
710    public function getBooks()
711    {
712        return $this->_books;
713    }
714
715    /**
716     * Sets the company
717     *
718     * @param Zend_Gdata_YouTube_Extension_Company $company The company
719     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
720     */
721    public function setCompany($company = null)
722    {
723        $this->_company = $company;
724        return $this;
725    }
726
727    /**
728     * Returns the company
729     *
730     * @return Zend_Gdata_YouTube_Extension_Company  The company
731     */
732    public function getCompany()
733    {
734        return $this->_company;
735    }
736
737    /**
738     * Sets the hobbies
739     *
740     * @param Zend_Gdata_YouTube_Extension_Hobbies $hobbies The hobbies
741     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
742     */
743    public function setHobbies($hobbies = null)
744    {
745        $this->_hobbies = $hobbies;
746        return $this;
747    }
748
749    /**
750     * Returns the hobbies
751     *
752     * @return Zend_Gdata_YouTube_Extension_Hobbies  The hobbies
753     */
754    public function getHobbies()
755    {
756        return $this->_hobbies;
757    }
758
759    /**
760     * Sets the hometown
761     *
762     * @param Zend_Gdata_YouTube_Extension_Hometown $hometown The hometown
763     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
764     */
765    public function setHometown($hometown = null)
766    {
767        $this->_hometown = $hometown;
768        return $this;
769    }
770
771    /**
772     * Returns the hometown
773     *
774     * @return Zend_Gdata_YouTube_Extension_Hometown  The hometown
775     */
776    public function getHometown()
777    {
778        return $this->_hometown;
779    }
780
781    /**
782     * Sets the location
783     *
784     * @param Zend_Gdata_YouTube_Extension_Location $location The location
785     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
786     */
787    public function setLocation($location = null)
788    {
789        $this->_location = $location;
790        return $this;
791    }
792
793    /**
794     * Returns the location
795     *
796     * @return Zend_Gdata_YouTube_Extension_Location  The location
797     */
798    public function getLocation()
799    {
800        return $this->_location;
801    }
802
803    /**
804     * Sets the movies
805     *
806     * @param Zend_Gdata_YouTube_Extension_Movies $movies The movies
807     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
808     */
809    public function setMovies($movies = null)
810    {
811        $this->_movies = $movies;
812        return $this;
813    }
814
815    /**
816     * Returns the movies
817     *
818     * @return Zend_Gdata_YouTube_Extension_Movies  The movies
819     */
820    public function getMovies()
821    {
822        return $this->_movies;
823    }
824
825    /**
826     * Sets the music
827     *
828     * @param Zend_Gdata_YouTube_Extension_Music $music The music
829     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
830     */
831    public function setMusic($music = null)
832    {
833        $this->_music = $music;
834        return $this;
835    }
836
837    /**
838     * Returns the music
839     *
840     * @return Zend_Gdata_YouTube_Extension_Music  The music
841     */
842    public function getMusic()
843    {
844        return $this->_music;
845    }
846
847    /**
848     * Sets the occupation
849     *
850     * @param Zend_Gdata_YouTube_Extension_Occupation $occupation The occupation
851     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
852     */
853    public function setOccupation($occupation = null)
854    {
855        $this->_occupation = $occupation;
856        return $this;
857    }
858
859    /**
860     * Returns the occupation
861     *
862     * @return Zend_Gdata_YouTube_Extension_Occupation  The occupation
863     */
864    public function getOccupation()
865    {
866        return $this->_occupation;
867    }
868
869    /**
870     * Sets the school
871     *
872     * @param Zend_Gdata_YouTube_Extension_School $school The school
873     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
874     */
875    public function setSchool($school = null)
876    {
877        $this->_school = $school;
878        return $this;
879    }
880
881    /**
882     * Returns the school
883     *
884     * @return Zend_Gdata_YouTube_Extension_School  The school
885     */
886    public function getSchool()
887    {
888        return $this->_school;
889    }
890
891    /**
892     * Sets the gender
893     *
894     * @param Zend_Gdata_YouTube_Extension_Gender $gender The gender
895     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
896     */
897    public function setGender($gender = null)
898    {
899        $this->_gender = $gender;
900        return $this;
901    }
902
903    /**
904     * Returns the gender
905     *
906     * @return Zend_Gdata_YouTube_Extension_Gender  The gender
907     */
908    public function getGender()
909    {
910        return $this->_gender;
911    }
912
913    /**
914     * Sets the relationship
915     *
916     * @param Zend_Gdata_YouTube_Extension_Relationship $relationship The relationship
917     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
918     */
919    public function setRelationship($relationship = null)
920    {
921        $this->_relationship = $relationship;
922        return $this;
923    }
924
925    /**
926     * Returns the relationship
927     *
928     * @return Zend_Gdata_YouTube_Extension_Relationship  The relationship
929     */
930    public function getRelationship()
931    {
932        return $this->_relationship;
933    }
934
935    /**
936     * Sets the array of embedded feeds related to the video
937     *
938     * @param array $feedLink The array of embedded feeds relating to the video
939     * @return Zend_Gdata_YouTube_UserProfileEntry Provides a fluent interface
940     */
941    public function setFeedLink($feedLink = null)
942    {
943        $this->_feedLink = $feedLink;
944        return $this;
945    }
946
947    /**
948     * Get the feed link property for this entry.
949     *
950     * @see setFeedLink
951     * @param string $rel (optional) The rel value of the link to be found.
952     *          If null, the array of links is returned.
953     * @return mixed If $rel is specified, a Zend_Gdata_Extension_FeedLink
954     *          object corresponding to the requested rel value is returned
955     *          if found, or null if the requested value is not found. If
956     *          $rel is null or not specified, an array of all available
957     *          feed links for this entry is returned, or null if no feed
958     *          links are set.
959     */
960    public function getFeedLink($rel = null)
961    {
962        if ($rel == null) {
963            return $this->_feedLink;
964        } else {
965            foreach ($this->_feedLink as $feedLink) {
966                if ($feedLink->rel == $rel) {
967                    return $feedLink;
968                }
969            }
970            return null;
971        }
972    }
973
974    /**
975     * Returns the URL in the gd:feedLink with the provided rel value
976     *
977     * @param string $rel The rel value to find
978     * @return mixed Either the URL as a string or null if a feedLink wasn't
979     *     found with the provided rel value
980     */
981    public function getFeedLinkHref($rel)
982    {
983        $feedLink = $this->getFeedLink($rel);
984        if ($feedLink !== null) {
985            return $feedLink->href;
986        } else {
987            return null;
988        }
989    }
990
991    /**
992     * Returns the URL of the playlist list feed
993     *
994     * @return string The URL of the playlist video feed
995     */
996    public function getPlaylistListFeedUrl()
997    {
998        return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_PLAYLISTS_REL);
999    }
1000
1001    /**
1002     * Returns the URL of the uploads feed
1003     *
1004     * @return string The URL of the uploads video feed
1005     */
1006    public function getUploadsFeedUrl()
1007    {
1008        return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_UPLOADS_REL);
1009    }
1010
1011    /**
1012     * Returns the URL of the subscriptions feed
1013     *
1014     * @return string The URL of the subscriptions feed
1015     */
1016    public function getSubscriptionsFeedUrl()
1017    {
1018        return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_SUBSCRIPTIONS_REL);
1019    }
1020
1021    /**
1022     * Returns the URL of the contacts feed
1023     *
1024     * @return string The URL of the contacts feed
1025     */
1026    public function getContactsFeedUrl()
1027    {
1028        return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_CONTACTS_REL);
1029    }
1030
1031    /**
1032     * Returns the URL of the favorites feed
1033     *
1034     * @return string The URL of the favorites feed
1035     */
1036    public function getFavoritesFeedUrl()
1037    {
1038        return $this->getFeedLinkHref(Zend_Gdata_YouTube::USER_FAVORITES_REL);
1039    }
1040
1041}
Note: See TracBrowser for help on using the repository browser.