]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - Zend/Gdata/Photos/UserQuery.php
Release 6.5.0
[Github/sugarcrm.git] / Zend / Gdata / Photos / UserQuery.php
1 <?php
2
3 /**
4  * Zend Framework
5  *
6  * LICENSE
7  *
8  * This source file is subject to the new BSD license that is bundled
9  * with this package in the file LICENSE.txt.
10  * It is also available through the world-wide-web at this URL:
11  * http://framework.zend.com/license/new-bsd
12  * If you did not receive a copy of the license and are unable to
13  * obtain it through the world-wide-web, please send an email
14  * to license@zend.com so we can send you a copy immediately.
15  *
16  * @category   Zend
17  * @package    Zend_Gdata
18  * @subpackage Photos
19  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
20  * @license    http://framework.zend.com/license/new-bsd     New BSD License
21
22  */
23
24 /**
25  * @see Zend_Gdata_Gapps_Query
26  */
27 require_once('Zend/Gdata/Gapps/Query.php');
28
29 /**
30  * Assists in constructing queries for user entries.
31  * Instances of this class can be provided in many places where a URL is
32  * required.
33  *
34  * For information on submitting queries to a server, see the
35  * service class, Zend_Gdata_Photos.
36  *
37  * @category   Zend
38  * @package    Zend_Gdata
39  * @subpackage Photos
40  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
41  * @license    http://framework.zend.com/license/new-bsd     New BSD License
42  */
43 class Zend_Gdata_Photos_UserQuery extends Zend_Gdata_Query
44 {
45
46     /**
47      * Indicates the format of data returned in Atom feeds. Can be either
48      * 'api' or 'base'. Default value is 'api'.
49      *
50      * @var string
51      */
52     protected $_projection = 'api';
53
54     /**
55      * Indicates whether to request a feed or entry in queries. Default
56      * value is 'feed';
57      *
58      * @var string
59      */
60     protected $_type = 'feed';
61
62     /**
63      * A string which, if not null, indicates which user should
64      * be retrieved by this query. If null, the default user will be used
65      * instead.
66      *
67      * @var string
68      */
69     protected $_user = Zend_Gdata_Photos::DEFAULT_USER;
70
71     /**
72      * Create a new Query object with default values.
73      */
74     public function __construct()
75     {
76         parent::__construct();
77     }
78
79     /**
80      * Set's the format of data returned in Atom feeds. Can be either
81      * 'api' or 'base'. Normally, 'api' will be desired. Default is 'api'.
82      *
83      * @param string $value
84      * @return Zend_Gdata_Photos_UserQuery Provides a fluent interface
85      */
86     public function setProjection($value)
87     {
88         $this->_projection = $value;
89         return $this;
90     }
91
92     /**
93      * Gets the format of data in returned in Atom feeds.
94      *
95      * @see setProjection
96      * @return string projection
97      */
98     public function getProjection()
99     {
100         return $this->_projection;
101     }
102
103     /**
104      * Set's the type of data returned in queries. Can be either
105      * 'feed' or 'entry'. Normally, 'feed' will be desired. Default is 'feed'.
106      *
107      * @param string $value
108      * @return Zend_Gdata_Photos_UserQuery Provides a fluent interface
109      */
110     public function setType($value)
111     {
112         $this->_type = $value;
113         return $this;
114     }
115
116     /**
117      * Gets the type of data in returned in queries.
118      *
119      * @see setType
120      * @return string type
121      */
122     public function getType()
123     {
124         return $this->_type;
125     }
126
127     /**
128      * Set the user to query for. When set, this user's feed will be
129      * returned. If not set or null, the default user's feed will be returned
130      * instead.
131      *
132      * @param string $value The user to retrieve, or null for the default
133      *          user.
134      */
135      public function setUser($value)
136      {
137          if ($value !== null) {
138              $this->_user = $value;
139          } else {
140              $this->_user = Zend_Gdata_Photos::DEFAULT_USER;
141          }
142      }
143
144     /**
145      * Get the user which is to be returned.
146      *
147      * @see setUser
148      * @return string The visibility to retrieve.
149      */
150     public function getUser()
151     {
152         return $this->_user;
153     }
154
155     /**
156      * Set the visibility filter for entries returned. Only entries which
157      * match this value will be returned. If null or unset, the default
158      * value will be used instead.
159      *
160      * Valid values are 'all' (default), 'public', and 'private'.
161      *
162      * @param string $value The visibility to filter by, or null to use the
163      *          default value.
164      */
165      public function setAccess($value)
166      {
167          if ($value !== null) {
168              $this->_params['access'] = $value;
169          } else {
170              unset($this->_params['access']);
171          }
172      }
173
174     /**
175      * Get the visibility filter for entries returned.
176      *
177      * @see setAccess
178      * @return string The visibility to filter by, or null for the default
179      *          user.
180      */
181     public function getAccess()
182     {
183         return $this->_params['access'];
184     }
185
186     /**
187      * Set the tag for entries that are returned. Only entries which
188      * match this value will be returned. If null or unset, this filter will
189      * not be applied.
190      *
191      * See http://code.google.com/apis/picasaweb/reference.html#Parameters
192      * for a list of valid values.
193      *
194      * @param string $value The tag to filter by, or null if no
195      *          filter is to be applied.
196      */
197      public function setTag($value)
198      {
199          if ($value !== null) {
200              $this->_params['tag'] = $value;
201          } else {
202              unset($this->_params['tag']);
203          }
204      }
205
206     /**
207      * Get the tag filter for entries returned.
208      *
209      * @see setTag
210      * @return string The tag to filter by, or null if no filter
211      *          is to be applied.
212      */
213     public function getTag()
214     {
215         return $this->_params['tag'];
216     }
217
218     /**
219      * Set the kind of entries that are returned. Only entries which
220      * match this value will be returned. If null or unset, this filter will
221      * not be applied.
222      *
223      * See http://code.google.com/apis/picasaweb/reference.html#Parameters
224      * for a list of valid values.
225      *
226      * @param string $value The kind to filter by, or null if no
227      *          filter is to be applied.
228      */
229      public function setKind($value)
230      {
231          if ($value !== null) {
232              $this->_params['kind'] = $value;
233          } else {
234              unset($this->_params['kind']);
235          }
236      }
237
238     /**
239      * Get the kind of entries to be returned.
240      *
241      * @see setKind
242      * @return string The kind to filter by, or null if no filter
243      *          is to be applied.
244      */
245     public function getKind()
246     {
247         return $this->_params['kind'];
248     }
249
250     /**
251      * Set the maximum image size for entries returned. Only entries which
252      * match this value will be returned. If null or unset, this filter will
253      * not be applied.
254      *
255      * See http://code.google.com/apis/picasaweb/reference.html#Parameters
256      * for a list of valid values.
257      *
258      * @param string $value The image size to filter by, or null if no
259      *          filter is to be applied.
260      */
261      public function setImgMax($value)
262      {
263          if ($value !== null) {
264              $this->_params['imgmax'] = $value;
265          } else {
266              unset($this->_params['imgmax']);
267          }
268      }
269
270     /**
271      * Get the maximum image size filter for entries returned.
272      *
273      * @see setImgMax
274      * @return string The image size size to filter by, or null if no filter
275      *          is to be applied.
276      */
277     public function getImgMax()
278     {
279         return $this->_params['imgmax'];
280     }
281
282     /**
283      * Set the thumbnail size filter for entries returned. Only entries which
284      * match this value will be returned. If null or unset, this filter will
285      * not be applied.
286      *
287      * See http://code.google.com/apis/picasaweb/reference.html#Parameters
288      * for a list of valid values.
289      *
290      * @param string $value The thumbnail size to filter by, or null if no
291      *          filter is to be applied.
292      */
293      public function setThumbsize($value)
294      {
295          if ($value !== null) {
296              $this->_params['thumbsize'] = $value;
297          } else {
298              unset($this->_params['thumbsize']);
299          }
300      }
301
302     /**
303      * Get the thumbnail size filter for entries returned.
304      *
305      * @see setThumbsize
306      * @return string The thumbnail size to filter by, or null if no filter
307      *          is to be applied.
308      */
309     public function getThumbsize()
310     {
311         return $this->_params['thumbsize'];
312     }
313
314     /**
315      * Returns the URL generated for this query, based on it's current
316      * parameters.
317      *
318      * @return string A URL generated based on the state of this query.
319      * @throws Zend_Gdata_App_InvalidArgumentException
320      */
321     public function getQueryUrl($incomingUri = null)
322     {
323         $uri = Zend_Gdata_Photos::PICASA_BASE_URI;
324
325         if ($this->getType() !== null) {
326             $uri .= '/' . $this->getType();
327         } else {
328             require_once 'Zend/Gdata/App/InvalidArgumentException.php';
329             throw new Zend_Gdata_App_InvalidArgumentException(
330                     'Type must be feed or entry, not null');
331         }
332
333         if ($this->getProjection() !== null) {
334             $uri .= '/' . $this->getProjection();
335         } else {
336             require_once 'Zend/Gdata/App/InvalidArgumentException.php';
337             throw new Zend_Gdata_App_InvalidArgumentException(
338                     'Projection must not be null');
339         }
340
341         if ($this->getUser() !== null) {
342             $uri .= '/user/' . $this->getUser();
343         } else {
344             // Should never occur due to setter behavior
345             require_once 'Zend/Gdata/App/InvalidArgumentException.php';
346             throw new Zend_Gdata_App_InvalidArgumentException(
347                     'User must not be null');
348         }
349
350         $uri .= $incomingUri;
351         $uri .= $this->getQueryString();
352         return $uri;
353     }
354
355 }