/zf/library/Zend/Gdata/YouTube/Extension/Link.php
PHP | 133 lines | 49 code | 12 blank | 72 comment | 3 complexity | 953b7b15c0f99d95004ffbc609aab9b9 MD5 | raw file
Possible License(s): MIT, BSD-3-Clause, Apache-2.0, LGPL-2.1, LGPL-3.0, BSD-2-Clause
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-2011 Zend Technologies USA Inc. (http://www.zend.com) 19 * @license http://framework.zend.com/license/new-bsd New BSD License 20 * @version $Id: Link.php 23775 2011-03-01 17:25:24Z ralph $ 21 */ 22 23/** 24 * @see Zend_Gdata_App_Extension_Link 25 */ 26require_once 'Zend/Gdata/App/Extension/Link.php'; 27 28/** 29 * @see Zend_Gdata_YouTube_Extension_Token 30 */ 31require_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-2011 Zend Technologies USA Inc. (http://www.zend.com) 41 * @license http://framework.zend.com/license/new-bsd New BSD License 42 */ 43class 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}