1 <?php
  2 /**
  3  * SimplePie
  4  *
  5  * A PHP-Based RSS and Atom Feed Framework.
  6  * Takes the hard work out of managing a complete RSS/Atom solution.
  7  *
  8  * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
  9  * All rights reserved.
 10  *
 11  * Redistribution and use in source and binary forms, with or without modification, are
 12  * permitted provided that the following conditions are met:
 13  *
 14  *  * Redistributions of source code must retain the above copyright notice, this list of
 15  *    conditions and the following disclaimer.
 16  *
 17  *  * Redistributions in binary form must reproduce the above copyright notice, this list
 18  *    of conditions and the following disclaimer in the documentation and/or other materials
 19  *    provided with the distribution.
 20  *
 21  *  * Neither the name of the SimplePie Team nor the names of its contributors may be used
 22  *    to endorse or promote products derived from this software without specific prior
 23  *    written permission.
 24  *
 25  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
 26  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 27  * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
 28  * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 29  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 30  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
 31  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 32  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
 33  * POSSIBILITY OF SUCH DAMAGE.
 34  *
 35  * @package SimplePie
 36  * @version 1.3.1
 37  * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
 38  * @author Ryan Parman
 39  * @author Geoffrey Sneddon
 40  * @author Ryan McCue
 41  * @link http://simplepie.org/ SimplePie
 42  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
 43  */
 44 
 45 /**
 46  * Handles `<media:restriction>` as defined in Media RSS
 47  *
 48  * Used by {@see SimplePie_Enclosure::get_restriction()} and {@see SimplePie_Enclosure::get_restrictions()}
 49  *
 50  * This class can be overloaded with {@see SimplePie::set_restriction_class()}
 51  *
 52  * @package SimplePie
 53  * @subpackage API
 54  */
 55 class SimplePie_Restriction
 56 {
 57     /**
 58      * Relationship ('allow'/'deny')
 59      *
 60      * @var string
 61      * @see get_relationship()
 62      */
 63     var $relationship;
 64 
 65     /**
 66      * Type of restriction
 67      *
 68      * @var string
 69      * @see get_type()
 70      */
 71     var $type;
 72 
 73     /**
 74      * Restricted values
 75      *
 76      * @var string
 77      * @see get_value()
 78      */
 79     var $value;
 80 
 81     /**
 82      * Constructor, used to input the data
 83      *
 84      * For documentation on all the parameters, see the corresponding
 85      * properties and their accessors
 86      */
 87     public function __construct($relationship = null, $type = null, $value = null)
 88     {
 89         $this->relationship = $relationship;
 90         $this->type = $type;
 91         $this->value = $value;
 92     }
 93 
 94     /**
 95      * String-ified version
 96      *
 97      * @return string
 98      */
 99     public function __toString()
100     {
101         // There is no $this->data here
102         return md5(serialize($this));
103     }
104 
105     /**
106      * Get the relationship
107      *
108      * @return string|null Either 'allow' or 'deny'
109      */
110     public function get_relationship()
111     {
112         if ($this->relationship !== null)
113         {
114             return $this->relationship;
115         }
116         else
117         {
118             return null;
119         }
120     }
121 
122     /**
123      * Get the type
124      *
125      * @return string|null
126      */
127     public function get_type()
128     {
129         if ($this->type !== null)
130         {
131             return $this->type;
132         }
133         else
134         {
135             return null;
136         }
137     }
138 
139     /**
140      * Get the list of restricted things
141      *
142      * @return string|null
143      */
144     public function get_value()
145     {
146         if ($this->value !== null)
147         {
148             return $this->value;
149         }
150         else
151         {
152             return null;
153         }
154     }
155 }
156