001// Generated by delombok at Sun Apr 14 14:59:49 CEST 2024
002/*
003 * Copyright (c) 2010-2024 Mark Allen, Norbert Bartels.
004 *
005 * Permission is hereby granted, free of charge, to any person obtaining a copy
006 * of this software and associated documentation files (the "Software"), to deal
007 * in the Software without restriction, including without limitation the rights
008 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
009 * copies of the Software, and to permit persons to whom the Software is
010 * furnished to do so, subject to the following conditions:
011 *
012 * The above copyright notice and this permission notice shall be included in
013 * all copies or substantial portions of the Software.
014 *
015 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
016 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
017 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
018 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
019 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
020 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
021 * THE SOFTWARE.
022 */
023package com.restfb.types;
024
025import java.util.Date;
026import com.restfb.Facebook;
027import com.restfb.types.features.HasCover;
028
029/**
030 * Represents the <a href="http://developers.facebook.com/docs/reference/api/group">Group Graph API type</a>.
031 * 
032 * @author <a href="http://restfb.com">Mark Allen</a>
033 * @since 1.5
034 */
035public class Group extends NamedFacebookType implements HasCover {
036  /**
037   * administrator
038   */
039  @Facebook
040  private Boolean administrator;
041  /**
042   * Information about the group's cover photo.
043   *
044   */
045  @Facebook
046  private CoverPhoto cover;
047  /**
048   * The email address to upload content to the group.
049   * <p>
050   * Only current members of the group can use this.
051   * </p>
052   * 
053   */
054  @Facebook
055  private String email;
056  /**
057   * An object containing the name and ID of the user who owns the group.
058   * 
059   */
060  @Facebook
061  private NamedFacebookType owner;
062  /**
063   * The group description.
064   * 
065   */
066  @Facebook
067  private String description;
068  /**
069   * The URL for the group's website.
070   * 
071   */
072  @Facebook
073  private String link;
074  /**
075   * The number of pending member requests.
076   * <p>
077   * If the token is for an administrator, this is the total number of outstanding requests. If the token is for a group
078   * member, this will return the number of friends who have requested membership and also use the same app that is
079   * making the request.
080   * </p>
081   *
082   */
083  @Facebook("member_request_count")
084  private Long memberRequestCount;
085  /**
086   * The parent of this group, if it exists.
087   *
088   */
089  @Facebook
090  private NamedFacebookType parent;
091  /**
092   * The location of this group, a structured address object.
093   * 
094   */
095  @Facebook
096  private Location venue;
097  /**
098   * The privacy setting of the group, either 'OPEN', 'CLOSED', or 'SECRET'.
099   * 
100   */
101  @Facebook
102  private String privacy;
103  /**
104   * unread count
105   */
106  @Facebook
107  private Long unread;
108  /**
109   * The last time the group was updated.
110   * 
111   */
112  @Facebook("updated_time")
113  private Date updatedTime;
114  /**
115   * The URL of the group's icon
116   * 
117   * @since 1.6.16
118   */
119  @Facebook
120  private String icon;
121  private static final long serialVersionUID = 1L;
122
123  /**
124   * administrator
125   */
126  @java.lang.SuppressWarnings("all")
127  public Boolean getAdministrator() {
128    return this.administrator;
129  }
130
131  /**
132   * administrator
133   */
134  @java.lang.SuppressWarnings("all")
135  public void setAdministrator(final Boolean administrator) {
136    this.administrator = administrator;
137  }
138
139  /**
140   * Information about the group's cover photo.
141   *
142   * @return Information about the group's cover photo.
143   */
144  @Override
145  @java.lang.SuppressWarnings("all")
146  public CoverPhoto getCover() {
147    return this.cover;
148  }
149
150  /**
151   * Information about the group's cover photo.
152   *
153   */
154  @java.lang.SuppressWarnings("all")
155  public void setCover(final CoverPhoto cover) {
156    this.cover = cover;
157  }
158
159  /**
160   * The email address to upload content to the group.
161   * <p>
162   * Only current members of the group can use this.
163   * </p>
164   * 
165   * @return The email address to upload content to the group.
166   */
167  @java.lang.SuppressWarnings("all")
168  public String getEmail() {
169    return this.email;
170  }
171
172  /**
173   * The email address to upload content to the group.
174   * <p>
175   * Only current members of the group can use this.
176   * </p>
177   * 
178   */
179  @java.lang.SuppressWarnings("all")
180  public void setEmail(final String email) {
181    this.email = email;
182  }
183
184  /**
185   * An object containing the name and ID of the user who owns the group.
186   * 
187   * @return An object containing the name and ID of the user who owns the group.
188   */
189  @java.lang.SuppressWarnings("all")
190  public NamedFacebookType getOwner() {
191    return this.owner;
192  }
193
194  /**
195   * An object containing the name and ID of the user who owns the group.
196   * 
197   */
198  @java.lang.SuppressWarnings("all")
199  public void setOwner(final NamedFacebookType owner) {
200    this.owner = owner;
201  }
202
203  /**
204   * The group description.
205   * 
206   * @return The group description.
207   */
208  @java.lang.SuppressWarnings("all")
209  public String getDescription() {
210    return this.description;
211  }
212
213  /**
214   * The group description.
215   * 
216   */
217  @java.lang.SuppressWarnings("all")
218  public void setDescription(final String description) {
219    this.description = description;
220  }
221
222  /**
223   * The URL for the group's website.
224   * 
225   * @return The URL for the group's website.
226   */
227  @java.lang.SuppressWarnings("all")
228  public String getLink() {
229    return this.link;
230  }
231
232  /**
233   * The URL for the group's website.
234   * 
235   */
236  @java.lang.SuppressWarnings("all")
237  public void setLink(final String link) {
238    this.link = link;
239  }
240
241  /**
242   * The number of pending member requests.
243   * <p>
244   * If the token is for an administrator, this is the total number of outstanding requests. If the token is for a group
245   * member, this will return the number of friends who have requested membership and also use the same app that is
246   * making the request.
247   * </p>
248   *
249   * @return The number of pending member requests
250   */
251  @java.lang.SuppressWarnings("all")
252  public Long getMemberRequestCount() {
253    return this.memberRequestCount;
254  }
255
256  /**
257   * The number of pending member requests.
258   * <p>
259   * If the token is for an administrator, this is the total number of outstanding requests. If the token is for a group
260   * member, this will return the number of friends who have requested membership and also use the same app that is
261   * making the request.
262   * </p>
263   *
264   */
265  @java.lang.SuppressWarnings("all")
266  public void setMemberRequestCount(final Long memberRequestCount) {
267    this.memberRequestCount = memberRequestCount;
268  }
269
270  /**
271   * The parent of this group, if it exists.
272   *
273   * @return The parent of this group, if it exists
274   */
275  @java.lang.SuppressWarnings("all")
276  public NamedFacebookType getParent() {
277    return this.parent;
278  }
279
280  /**
281   * The parent of this group, if it exists.
282   *
283   */
284  @java.lang.SuppressWarnings("all")
285  public void setParent(final NamedFacebookType parent) {
286    this.parent = parent;
287  }
288
289  /**
290   * The location of this group, a structured address object.
291   * 
292   * @return The location of this group, a structured address object.
293   */
294  @java.lang.SuppressWarnings("all")
295  public Location getVenue() {
296    return this.venue;
297  }
298
299  /**
300   * The location of this group, a structured address object.
301   * 
302   */
303  @java.lang.SuppressWarnings("all")
304  public void setVenue(final Location venue) {
305    this.venue = venue;
306  }
307
308  /**
309   * The privacy setting of the group, either 'OPEN', 'CLOSED', or 'SECRET'.
310   * 
311   * @return The privacy setting of the group, either 'OPEN', 'CLOSED', or 'SECRET'.
312   */
313  @java.lang.SuppressWarnings("all")
314  public String getPrivacy() {
315    return this.privacy;
316  }
317
318  /**
319   * The privacy setting of the group, either 'OPEN', 'CLOSED', or 'SECRET'.
320   * 
321   */
322  @java.lang.SuppressWarnings("all")
323  public void setPrivacy(final String privacy) {
324    this.privacy = privacy;
325  }
326
327  /**
328   * unread count
329   */
330  @java.lang.SuppressWarnings("all")
331  public Long getUnread() {
332    return this.unread;
333  }
334
335  /**
336   * unread count
337   */
338  @java.lang.SuppressWarnings("all")
339  public void setUnread(final Long unread) {
340    this.unread = unread;
341  }
342
343  /**
344   * The last time the group was updated.
345   * 
346   * @return The last time the group was updated.
347   */
348  @java.lang.SuppressWarnings("all")
349  public Date getUpdatedTime() {
350    return this.updatedTime;
351  }
352
353  /**
354   * The last time the group was updated.
355   * 
356   */
357  @java.lang.SuppressWarnings("all")
358  public void setUpdatedTime(final Date updatedTime) {
359    this.updatedTime = updatedTime;
360  }
361
362  /**
363   * The URL of the group's icon
364   * 
365   * @return The group's icon url
366   * @since 1.6.16
367   */
368  @java.lang.SuppressWarnings("all")
369  public String getIcon() {
370    return this.icon;
371  }
372
373  /**
374   * The URL of the group's icon
375   * 
376   * @since 1.6.16
377   */
378  @java.lang.SuppressWarnings("all")
379  public void setIcon(final String icon) {
380    this.icon = icon;
381  }
382}