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-2016, Ryan Parman, Sam 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 * @copyright 2004-2016 Ryan Parman, Sam Sneddon, Ryan McCue
37 * @author Ryan Parman
38 * @author Sam Sneddon
39 * @author Ryan McCue
40 * @link http://simplepie.org/ SimplePie
41 * @license http://www.opensource.org/licenses/bsd-license.php BSD License
42 */
43
44/**
45 * Handles `<media:restriction>` as defined in Media RSS
46 *
47 * Used by {@see SimplePie_Enclosure::get_restriction()} and {@see SimplePie_Enclosure::get_restrictions()}
48 *
49 * This class can be overloaded with {@see SimplePie::set_restriction_class()}
50 *
51 * @package SimplePie
52 * @subpackage API
53 */
54class SimplePie_Restriction
55{
56	/**
57	 * Relationship ('allow'/'deny')
58	 *
59	 * @var string
60	 * @see get_relationship()
61	 */
62	var $relationship;
63
64	/**
65	 * Type of restriction
66	 *
67	 * @var string
68	 * @see get_type()
69	 */
70	var $type;
71
72	/**
73	 * Restricted values
74	 *
75	 * @var string
76	 * @see get_value()
77	 */
78	var $value;
79
80	/**
81	 * Constructor, used to input the data
82	 *
83	 * For documentation on all the parameters, see the corresponding
84	 * properties and their accessors
85	 */
86	public function __construct($relationship = null, $type = null, $value = null)
87	{
88		$this->relationship = $relationship;
89		$this->type = $type;
90		$this->value = $value;
91	}
92
93	/**
94	 * String-ified version
95	 *
96	 * @return string
97	 */
98	public function __toString()
99	{
100		// There is no $this->data here
101		return md5(serialize($this));
102	}
103
104	/**
105	 * Get the relationship
106	 *
107	 * @return string|null Either 'allow' or 'deny'
108	 */
109	public function get_relationship()
110	{
111		if ($this->relationship !== null)
112		{
113			return $this->relationship;
114		}
115
116		return null;
117	}
118
119	/**
120	 * Get the type
121	 *
122	 * @return string|null
123	 */
124	public function get_type()
125	{
126		if ($this->type !== null)
127		{
128			return $this->type;
129		}
130
131		return null;
132	}
133
134	/**
135	 * Get the list of restricted things
136	 *
137	 * @return string|null
138	 */
139	public function get_value()
140	{
141		if ($this->value !== null)
142		{
143			return $this->value;
144		}
145
146		return null;
147	}
148}
149