]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - Zend/Gdata/YouTube/Extension/Link.php
Release 6.5.0
[Github/sugarcrm.git] / Zend / Gdata / YouTube / Extension / Link.php
1 <?php
2 /**
3  * Zend Framework
4  *
5  * LICENSE
6  *
7  * This source file is subject to the new BSD license that is bundled
8  * with this package in the file LICENSE.txt.
9  * It is also available through the world-wide-web at this URL:
10  * http://framework.zend.com/license/new-bsd
11  * If you did not receive a copy of the license and are unable to
12  * obtain it through the world-wide-web, please send an email
13  * to license@zend.com so we can send you a copy immediately.
14  *
15  * @category   Zend
16  * @package    Zend_Gdata
17  * @subpackage YouTube
18  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
19  * @license    http://framework.zend.com/license/new-bsd     New BSD License
20
21  */
22
23 /**
24  * @see Zend_Gdata_App_Extension_Link
25  */
26 require_once 'Zend/Gdata/App/Extension/Link.php';
27
28 /**
29  * @see Zend_Gdata_YouTube_Extension_Token
30  */
31 require_once 'Zend/Gdata/YouTube/Extension/Token.php';
32
33
34 /**
35  * Specialized Link class for use with YouTube. Enables use of yt extension elements.
36  *
37  * @category   Zend
38  * @package    Zend_Gdata
39  * @subpackage YouTube
40  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
41  * @license    http://framework.zend.com/license/new-bsd     New BSD License
42  */
43 class Zend_Gdata_YouTube_Extension_Link extends Zend_Gdata_App_Extension_Link
44 {
45
46     protected $_token = null;
47
48     /**
49      * Constructs a new Zend_Gdata_Calendar_Extension_Link object.
50      * @see Zend_Gdata_App_Extension_Link#__construct
51      * @param Zend_Gdata_YouTube_Extension_Token $token
52      */
53     public function __construct($href = null, $rel = null, $type = null,
54             $hrefLang = null, $title = null, $length = null, $token = null)
55     {
56         $this->registerAllNamespaces(Zend_Gdata_YouTube::$namespaces);
57         parent::__construct($href, $rel, $type, $hrefLang, $title, $length);
58         $this->_token = $token;
59     }
60
61     /**
62      * Retrieves a DOMElement which corresponds to this element and all
63      * child properties.  This is used to build an entry back into a DOM
64      * and eventually XML text for sending to the server upon updates, or
65      * for application storage/persistence.
66      *
67      * @param DOMDocument $doc The DOMDocument used to construct DOMElements
68      * @return DOMElement The DOMElement representing this element and all
69      * child properties.
70      */
71     public function getDOM($doc = null, $majorVersion = 1, $minorVersion = null)
72     {
73         $element = parent::getDOM($doc, $majorVersion, $minorVersion);
74         if ($this->_token != null) {
75             $element->appendChild($this->_token->getDOM($element->ownerDocument));
76         }
77         return $element;
78     }
79
80     /**
81      * Creates individual Entry objects of the appropriate type and
82      * stores them as members of this entry based upon DOM data.
83      *
84      * @param DOMNode $child The DOMNode to process
85      */
86     protected function takeChildFromDOM($child)
87     {
88         $absoluteNodeName = $child->namespaceURI . ':' . $child->localName;
89         switch ($absoluteNodeName) {
90         case $this->lookupNamespace('yt') . ':' . 'token':
91             $token = new Zend_Gdata_YouTube_Extension_Token();
92             $token->transferFromDOM($child);
93             $this->_token = $token;
94             break;
95         default:
96             parent::takeChildFromDOM($child);
97             break;
98         }
99     }
100
101     /**
102      * Get the value for this element's token attribute.
103      *
104      * @return Zend_Gdata_YouTube_Extension_Token The token element.
105      */
106     public function getToken()
107     {
108         return $this->_token;
109     }
110
111     /**
112      * Set the value for this element's token attribute.
113      *
114      * @param Zend_Gdata_YouTube_Extension_Token $value The desired value for this attribute.
115      * @return Zend_YouTube_Extension_Link The element being modified.
116      */
117     public function setToken($value)
118     {
119         $this->_token = $value;
120         return $this;
121     }
122
123     /**
124     * Get the value of this element's token attribute.
125     *
126     * @return string The token's text value
127     */
128     public function getTokenValue()
129     {
130       return $this->getToken()->getText();
131     }
132
133 }