source: extensions/Google2Piwigo/include/Zend/Gdata/Photos/UserQuery.php @ 17475

Last change on this file since 17475 was 17475, checked in by mistic100, 12 years ago

new extension: Google2Piwigo

File size: 9.8 KB
RevLine 
[17475]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-2012 Zend Technologies USA Inc. (http://www.zend.com)
20 * @license    http://framework.zend.com/license/new-bsd     New BSD License
21 * @version    $Id: UserQuery.php 24594 2012-01-05 21:27:01Z matthew $
22 */
23
24/**
25 * @see Zend_Gdata_Gapps_Query
26 */
27require_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-2012 Zend Technologies USA Inc. (http://www.zend.com)
41 * @license    http://framework.zend.com/license/new-bsd     New BSD License
42 */
43class 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}
Note: See TracBrowser for help on using the repository browser.