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 * Manages all author-related data
46 *
47 * Used by {@see SimplePie_Item::get_author()} and {@see SimplePie::get_authors()}
48 *
49 * This class can be overloaded with {@see SimplePie::set_author_class()}
50 *
51 * @package SimplePie
52 * @subpackage API
53 */
54class SimplePie_Author
55{
56	/**
57	 * Author's name
58	 *
59	 * @var string
60	 * @see get_name()
61	 */
62	var $name;
63
64	/**
65	 * Author's link
66	 *
67	 * @var string
68	 * @see get_link()
69	 */
70	var $link;
71
72	/**
73	 * Author's email address
74	 *
75	 * @var string
76	 * @see get_email()
77	 */
78	var $email;
79
80	/**
81	 * Constructor, used to input the data
82	 *
83	 * @param string $name
84	 * @param string $link
85	 * @param string $email
86	 */
87	public function __construct($name = null, $link = null, $email = null)
88	{
89		$this->name = $name;
90		$this->link = $link;
91		$this->email = $email;
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	 * Author's name
107	 *
108	 * @return string|null
109	 */
110	public function get_name()
111	{
112		if ($this->name !== null)
113		{
114			return $this->name;
115		}
116
117		return null;
118	}
119
120	/**
121	 * Author's link
122	 *
123	 * @return string|null
124	 */
125	public function get_link()
126	{
127		if ($this->link !== null)
128		{
129			return $this->link;
130		}
131
132		return null;
133	}
134
135	/**
136	 * Author's email address
137	 *
138	 * @return string|null
139	 */
140	public function get_email()
141	{
142		if ($this->email !== null)
143		{
144			return $this->email;
145		}
146
147		return null;
148	}
149}
150