Another attempt to fix the http blog redirects.
[WebKit-https.git] / Websites / webkit.org / blog / wp-includes / SimplePie / Category.php
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  * Manages all category-related data
47  *
48  * Used by {@see SimplePie_Item::get_category()} and {@see SimplePie_Item::get_categories()}
49  *
50  * This class can be overloaded with {@see SimplePie::set_category_class()}
51  *
52  * @package SimplePie
53  * @subpackage API
54  */
55 class SimplePie_Category
56 {
57         /**
58          * Category identifier
59          *
60          * @var string
61          * @see get_term
62          */
63         var $term;
64
65         /**
66          * Categorization scheme identifier
67          *
68          * @var string
69          * @see get_scheme()
70          */
71         var $scheme;
72
73         /**
74          * Human readable label
75          *
76          * @var string
77          * @see get_label()
78          */
79         var $label;
80
81         /**
82          * Constructor, used to input the data
83          *
84          * @param string $term
85          * @param string $scheme
86          * @param string $label
87          */
88         public function __construct($term = null, $scheme = null, $label = null)
89         {
90                 $this->term = $term;
91                 $this->scheme = $scheme;
92                 $this->label = $label;
93         }
94
95         /**
96          * String-ified version
97          *
98          * @return string
99          */
100         public function __toString()
101         {
102                 // There is no $this->data here
103                 return md5(serialize($this));
104         }
105
106         /**
107          * Get the category identifier
108          *
109          * @return string|null
110          */
111         public function get_term()
112         {
113                 if ($this->term !== null)
114                 {
115                         return $this->term;
116                 }
117                 else
118                 {
119                         return null;
120                 }
121         }
122
123         /**
124          * Get the categorization scheme identifier
125          *
126          * @return string|null
127          */
128         public function get_scheme()
129         {
130                 if ($this->scheme !== null)
131                 {
132                         return $this->scheme;
133                 }
134                 else
135                 {
136                         return null;
137                 }
138         }
139
140         /**
141          * Get the human readable label
142          *
143          * @return string|null
144          */
145         public function get_label()
146         {
147                 if ($this->label !== null)
148                 {
149                         return $this->label;
150                 }
151                 else
152                 {
153                         return $this->get_term();
154                 }
155         }
156 }
157