001// Generated by delombok at Fri Oct 04 16:05:59 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 static com.restfb.util.DateUtils.toDateFromShortFormat;
026import static com.restfb.util.StringUtils.isBlank;
027import static java.util.Collections.unmodifiableList;
028import java.math.BigDecimal;
029import java.util.ArrayList;
030import java.util.Date;
031import java.util.List;
032import com.restfb.Facebook;
033import com.restfb.JsonMapper;
034import com.restfb.JsonMapper.JsonMappingCompleted;
035import com.restfb.annotation.GraphAPI;
036import com.restfb.types.features.HasCover;
037import com.restfb.types.features.HasProfilePicture;
038
039/**
040 * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/user">User Graph API type</a>.
041 * 
042 * @author <a href="http://restfb.com">Mark Allen</a>
043 * @author Patrick Alberts
044 * @since 1.5
045 */
046public class User extends NamedFacebookType implements HasProfilePicture, HasCover {
047  /**
048   * Social context for this person
049   */
050  @Facebook
051  private FacebookType context;
052  /**
053   * The user's first name.
054   * 
055   */
056  @Facebook("first_name")
057  private String firstName;
058  /**
059   * The user's middle name.
060   * 
061   */
062  @Facebook("middle_name")
063  private String middleName;
064  /**
065   * The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering.
066   */
067  @Facebook("name_format")
068  private String nameFormat;
069  /**
070   * The person's payment pricepoints
071   */
072  @Facebook("payment_pricepoints")
073  private PaymentPricepoints paymentPricepoints;
074  /**
075   * The profile picture URL of the Messenger user. The URL will expire.
076   */
077  @Facebook("profile_pic")
078  private String profilePic;
079  /**
080   * The user's last name.
081   * 
082   */
083  @Facebook("last_name")
084  private String lastName;
085  /**
086   * Shortened, locale-aware name for the person.
087   */
088  @Facebook("short_name")
089  @GraphAPI(since = "2.9")
090  private String shortName;
091  /**
092   * The person's cover photo
093   */
094  @Facebook
095  private CoverPhoto cover;
096  /**
097   * A link to the person's Timeline.
098   *
099   * The link will only resolve if the person clicking the link is logged
100   * into Facebook and is a friend of the person whose profile is being viewed.
101   * 
102   */
103  @Facebook
104  private String link;
105  /**
106   * The user's biographical snippet.
107   */
108  @Facebook
109  @GraphAPI(until = "2.7")
110  private String bio;
111  /**
112   * The user's favorite quotes.
113   * 
114   */
115  @Facebook
116  private String quotes;
117  /**
118   * Unspecific age range that this person's age fits into.
119   * 
120   */
121  @Facebook("age_range")
122  private AgeRange ageRange;
123  /**
124   * The user's birthday as a {@code String}.
125   * <p>
126   * Will always succeed, even if the user has specified month/year format only.
127   * If you'd like to use a typed version of this accessor,
128   * call {@link #getBirthdayAsDate()} instead.
129   *
130   * "The person's birthday. This is a fixed format string, like `MM/DD/YYYY`.
131   * However, people can control who can see the year they were
132   * born separately from the month and day so this string can be
133   * only the year (YYYY) or the month + day (MM/DD)",
134   * 
135   */
136  @Facebook
137  private String birthday;
138  /**
139   * The proxied or contact email address granted by the user.
140   * 
141   */
142  @Facebook
143  private String email;
144  /**
145   * The user's timezone offset.
146   * 
147   */
148  @Facebook
149  private Double timezone;
150  /**
151   * Indicates whether the account has been verified. This is distinct from the <code>is_verified</code> field. Someone
152   * is considered verified if they take any of the following actions:
153   * <ul>
154   * <li>Register for mobile</li>
155   * <li>Confirm their account via SMS</li>
156   * <li>Enter a valid credit card</li>
157   * </ul>
158   * 
159   */
160  @Facebook
161  private Boolean verified;
162  /**
163   * Video upload limits
164   */
165  @Facebook("video_upload_limits")
166  private VideoUploadLimits videoUploadLimits;
167  /**
168   * The user's gender.
169   * 
170   */
171  @Facebook
172  private String gender;
173  /**
174   * The user's locale.
175   * 
176   */
177  @Facebook
178  private String locale;
179  /**
180   * The person's PGP public key
181   */
182  @Facebook("public_key")
183  private String publicKey;
184  /**
185   * The user's Likes
186   */
187  @Facebook
188  private Likes likes;
189  @Facebook("picture")
190  private transient String rawPicture;
191  /**
192   * The user's picture, if provided.
193   * 
194   * To force Facebook to fill the <code>picture</code> field you have to fetch the user with the
195   * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>.
196   * 
197   * @since 1.6.16
198   */
199  private ProfilePictureSource picture;
200  /**
201   * Duplicate mapping for "hometown" since FB can return it differently in different situations.
202   * 
203   * -- GETTER -- The user's hometown.
204   * <p>
205   * Sometimes this can be {@code null} - check {@link #getHometownName()} instead in that case.
206   * 
207   */
208  @Facebook
209  private NamedFacebookType hometown;
210  /**
211   * Duplicate mapping for "hometown" since FB can return it differently in different situations.
212   */
213  @Facebook("hometown")
214  private String hometownAsString;
215  /**
216   * A profile based app scoped ID. It is used to query avatars
217   */
218  @Facebook("id_for_avatars")
219  private String idForAvatars;
220  /**
221   * he person's current location as entered by them on their profile.
222   *
223   * This field requires the `user_location` permission.
224   */
225  @Facebook
226  private NamedFacebookType location;
227  /**
228   * The time that the shared loginneeds to be upgraded to Business Manager by
229   */
230  @Facebook("shared_login_upgrade_required_by")
231  private Date sharedLoginUpgradeRequiredBy;
232  /**
233   * The user's significant other.
234   * 
235   */
236  @Facebook("significant_other")
237  private User significantOther;
238  /**
239   * Whether the user can add a Donate Button to their Live Videos
240   */
241  @Facebook("supports_donate_button_in_live_video")
242  private Boolean supportsDonateButtonInLiveVideo;
243  /**
244   * Date the user's profile was updated.
245   * 
246   */
247  @Facebook("updated_time")
248  private Date updatedTime;
249  /**
250   * An anonymous, but unique identifier for the user.
251   * 
252   */
253  @Facebook("third_party_id")
254  private String thirdPartyId;
255  /**
256   * The user's currency preferences.
257   * <p>
258   * Further documentation available on Facebook's
259   * <a href="https://developers.facebook.com/docs/payments/user_currency">Displaying prices in user's currency</a>
260   * page.
261   * 
262   * @since 1.6.12
263   */
264  @Facebook
265  private Currency currency;
266  /**
267   * This returns a string which is the same for this person across all the apps managed by the same Business Manager.
268   * 
269   * @since 1.7.0
270   */
271  @Facebook("token_for_business")
272  private String tokenForBusiness;
273  /**
274   * Install type.
275   */
276  @Facebook("install_type")
277  private String installType;
278  /**
279   * Is the app making the request installed?
280   */
281  @Facebook
282  private Boolean installed;
283  /**
284   * People with large numbers of followers can have the authenticity of their identity manually verified by Facebook.
285   * This field indicates whether the person's profile is verified in this way.
286   *
287   * This is distinct from the <code>verified</code> field
288   */
289  @Facebook("is_verified")
290  private Boolean isVerified;
291  @Facebook("is_work_account")
292  private Boolean isWorkAccount;
293  /**
294   * if the current user is a guest user. should always return false.
295   */
296  @Facebook("is_guest_user")
297  private Boolean isGuestUser;
298  @Facebook("meeting_for")
299  private List<String> meetingFor = new ArrayList<>();
300  @Facebook
301  private List<UserDevice> devices = new ArrayList<>();
302  @Facebook
303  private List<Sport> sports = new ArrayList<>();
304  @Facebook("favorite_teams")
305  private List<Experience> favoriteTeams = new ArrayList<>();
306  @Facebook("favorite_athletes")
307  private List<Experience> favoriteAthletes = new ArrayList<>();
308  @Facebook("inspirational_people")
309  private List<Experience> inspirationalPeople = new ArrayList<>();
310  @Facebook
311  private List<Experience> languages = new ArrayList<>();
312  @Facebook
313  private List<PageLabel> labels = new ArrayList<>();
314  @Facebook("ids_for_apps")
315  private List<UserIDForApp> idsForApps = new ArrayList<>();
316  @Facebook("ids_for_business")
317  private List<UserIDForApp> idsForBusiness = new ArrayList<>();
318  @Facebook("ids_for_pages")
319  private List<UserIDForPage> idsForPages = new ArrayList<>();
320  @Facebook("invitable_friends")
321  private List<UserInvitableFriend> invitableFriends = new ArrayList<>();
322  private static final long serialVersionUID = 1L;
323
324
325  /**
326   * Represents the <a href="http://developers.facebook.com/docs/reference/api/user">Sport Graph API type</a>.
327   * 
328   * @author Patrick Alberts
329   * @since 1.6.3
330   */
331  public static class Sport extends NamedFacebookType {
332    @Facebook
333    private List<NamedFacebookType> with = new ArrayList<>();
334    private static final long serialVersionUID = 1L;
335
336    /**
337     * Friends associated with this sport.
338     * 
339     * @return Friends associated with this sport.
340     */
341    public List<NamedFacebookType> getWith() {
342      return unmodifiableList(with);
343    }
344
345    public boolean addWith(NamedFacebookType withSport) {
346      return with.add(withSport);
347    }
348
349    public boolean removeWith(NamedFacebookType withSport) {
350      return with.remove(withSport);
351    }
352  }
353
354
355  /**
356   * Represents the <a href="https://developers.facebook.com/docs/payments/user_currency">Currency Graph API type</a>.
357   * 
358   * @author <a href="http://restfb.com">Mark Allen</a>
359   * @since 1.6.12
360   */
361  public static class Currency extends AbstractFacebookType {
362    /**
363     * The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one).
364     * 
365     */
366    @Facebook("user_currency")
367    private String userCurrency;
368    /**
369     * The number of Facebook Credits that equate in value to one unit of {@code user_currency}.
370     * 
371     */
372    @Facebook("currency_exchange")
373    private BigDecimal currencyExchange;
374    /**
375     * The number of units of {@code user_currency} that equate in value to one Credit.
376     * <p>
377     * To calculate the local currency amount based on the credits price, compute
378     * {@code credits_price * currency_exchange_inverse}.
379     * 
380     */
381    @Facebook("currency_exchange_inverse")
382    private BigDecimal currencyExchangeInverse;
383    /**
384     * The number by which a price should be divided for display in {@code user_currency} units.
385     * <p>
386     * For example, a price of $1.20 will be represented by the Facebook API as "120", which you should divide by the
387     * USD {@code currency_offset} of 100 to arrive back at 1.20.
388     * 
389     */
390    @Facebook("currency_offset")
391    private BigDecimal currencyOffset;
392    private static final long serialVersionUID = 1L;
393
394    /**
395     * The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one).
396     * 
397     * @return The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one).
398     */
399    @java.lang.SuppressWarnings("all")
400    public String getUserCurrency() {
401      return this.userCurrency;
402    }
403
404    /**
405     * The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one).
406     * 
407     */
408    @java.lang.SuppressWarnings("all")
409    public void setUserCurrency(final String userCurrency) {
410      this.userCurrency = userCurrency;
411    }
412
413    /**
414     * The number of Facebook Credits that equate in value to one unit of {@code user_currency}.
415     * 
416     * @return The number of Facebook Credits that equate in value to one unit of {@code user_currency}.
417     */
418    @java.lang.SuppressWarnings("all")
419    public BigDecimal getCurrencyExchange() {
420      return this.currencyExchange;
421    }
422
423    /**
424     * The number of Facebook Credits that equate in value to one unit of {@code user_currency}.
425     * 
426     */
427    @java.lang.SuppressWarnings("all")
428    public void setCurrencyExchange(final BigDecimal currencyExchange) {
429      this.currencyExchange = currencyExchange;
430    }
431
432    /**
433     * The number of units of {@code user_currency} that equate in value to one Credit.
434     * <p>
435     * To calculate the local currency amount based on the credits price, compute
436     * {@code credits_price * currency_exchange_inverse}.
437     * 
438     * @return The number of units of {@code user_currency} that equate in value to one Credit.
439     */
440    @java.lang.SuppressWarnings("all")
441    public BigDecimal getCurrencyExchangeInverse() {
442      return this.currencyExchangeInverse;
443    }
444
445    /**
446     * The number of units of {@code user_currency} that equate in value to one Credit.
447     * <p>
448     * To calculate the local currency amount based on the credits price, compute
449     * {@code credits_price * currency_exchange_inverse}.
450     * 
451     */
452    @java.lang.SuppressWarnings("all")
453    public void setCurrencyExchangeInverse(final BigDecimal currencyExchangeInverse) {
454      this.currencyExchangeInverse = currencyExchangeInverse;
455    }
456
457    /**
458     * The number by which a price should be divided for display in {@code user_currency} units.
459     * <p>
460     * For example, a price of $1.20 will be represented by the Facebook API as "120", which you should divide by the
461     * USD {@code currency_offset} of 100 to arrive back at 1.20.
462     * 
463     * @return The number by which a price should be divided for display in {@code user_currency} units.
464     */
465    @java.lang.SuppressWarnings("all")
466    public BigDecimal getCurrencyOffset() {
467      return this.currencyOffset;
468    }
469
470    /**
471     * The number by which a price should be divided for display in {@code user_currency} units.
472     * <p>
473     * For example, a price of $1.20 will be represented by the Facebook API as "120", which you should divide by the
474     * USD {@code currency_offset} of 100 to arrive back at 1.20.
475     * 
476     */
477    @java.lang.SuppressWarnings("all")
478    public void setCurrencyOffset(final BigDecimal currencyOffset) {
479      this.currencyOffset = currencyOffset;
480    }
481  }
482
483
484  /**
485   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/user-device/">User Device
486   * Graph API type</a>.
487   * 
488   * @author <a href="http://restfb.com">Norbert Bartels</a>
489   */
490  public static class UserDevice extends AbstractFacebookType {
491    private static final long serialVersionUID = 1L;
492    @Facebook
493    private String hardware;
494    @Facebook
495    private String os;
496
497    @java.lang.SuppressWarnings("all")
498    public String getHardware() {
499      return this.hardware;
500    }
501
502    @java.lang.SuppressWarnings("all")
503    public void setHardware(final String hardware) {
504      this.hardware = hardware;
505    }
506
507    @java.lang.SuppressWarnings("all")
508    public String getOs() {
509      return this.os;
510    }
511
512    @java.lang.SuppressWarnings("all")
513    public void setOs(final String os) {
514      this.os = os;
515    }
516  }
517
518
519  public static class AgeRange extends AbstractFacebookType {
520    private static final long serialVersionUID = 1L;
521    /**
522     * The lower bounds of the range for this person's age.
523     * 
524     */
525    @Facebook
526    private Integer min;
527    /**
528     * The upper bounds of the range for this person's age.
529     * 
530     */
531    @Facebook
532    private Integer max;
533
534    /**
535     * The lower bounds of the range for this person's age.
536     * 
537     * @return The lower bounds of the range for this person's age.
538     */
539    @java.lang.SuppressWarnings("all")
540    public Integer getMin() {
541      return this.min;
542    }
543
544    /**
545     * The lower bounds of the range for this person's age.
546     * 
547     */
548    @java.lang.SuppressWarnings("all")
549    public void setMin(final Integer min) {
550      this.min = min;
551    }
552
553    /**
554     * The upper bounds of the range for this person's age.
555     * 
556     * @return The upper bounds of the range for this person's age.
557     */
558    @java.lang.SuppressWarnings("all")
559    public Integer getMax() {
560      return this.max;
561    }
562
563    /**
564     * The upper bounds of the range for this person's age.
565     * 
566     */
567    @java.lang.SuppressWarnings("all")
568    public void setMax(final Integer max) {
569      this.max = max;
570    }
571  }
572
573  /**
574   * The user's birthday, typed to {@code java.util.Date} if possible.
575   * 
576   * @return The user's birthday, or {@code null} if unavailable or only available in month/year format.
577   */
578  public Date getBirthdayAsDate() {
579    if (isBlank(getBirthday()) || getBirthday().split("/").length < 2) {
580      return null;
581    }
582    return toDateFromShortFormat(birthday);
583  }
584
585  @JsonMappingCompleted
586  protected void jsonMappingCompleted(JsonMapper jsonMapper) {
587    picture = convertPicture(jsonMapper, rawPicture);
588  }
589
590  /**
591   * The user's hometown name.
592   * 
593   * @return The user's hometown name.
594   */
595  public String getHometownName() {
596    if (getHometown() != null) return getHometown().getName();
597    return hometownAsString;
598  }
599
600  /**
601   * Businesses can claim ownership of multiple apps using Business Manager.
602   *
603   * This method returns the list of IDs that this user has in any of those other apps
604   * 
605   * @return list of ids a user has in other apps
606   */
607  public List<UserIDForApp> getIdsForApps() {
608    return unmodifiableList(idsForApps);
609  }
610
611  public boolean addIdsForApps(UserIDForApp userId) {
612    return idsForApps.add(userId);
613  }
614
615  public boolean removeIdsForApps(UserIDForApp userId) {
616    return idsForApps.remove(userId);
617  }
618
619  /**
620   * Businesses can claim ownership of multiple apps using Business Manager.
621   *
622   * This edge returns the list of IDs that this user has in any of those other apps
623   *
624   * @return list of ids a user has in other apps
625   */
626  public List<UserIDForApp> getIdsForBusiness() {
627    return unmodifiableList(idsForBusiness);
628  }
629
630  public boolean addIdsForBusiness(UserIDForApp userId) {
631    return idsForBusiness.add(userId);
632  }
633
634  public boolean removeIdsForBusiness(UserIDForApp userId) {
635    return idsForBusiness.remove(userId);
636  }
637
638  /**
639   * Businesses can claim ownership of apps and pages using Business Manager.
640   *
641   * This edge returns the list of IDs that this user has in any of the pages owned by this business.
642   *
643   * @return list of ids a user has in other pages
644   */
645  public List<UserIDForPage> getIdsForPages() {
646    return unmodifiableList(idsForPages);
647  }
648
649  public boolean addIdsForPages(UserIDForPage userId) {
650    return idsForPages.add(userId);
651  }
652
653  public boolean removeIdsForPages(UserIDForPage userId) {
654    return idsForPages.remove(userId);
655  }
656
657  /**
658   * What genders the user is interested in meeting.
659   * 
660   * @return What genders the user is interested in meeting.
661   */
662  public List<String> getMeetingFor() {
663    return unmodifiableList(meetingFor);
664  }
665
666  public boolean addMeetingFor(String gender) {
667    return meetingFor.add(gender);
668  }
669
670  public boolean removeMeetingFor(String gender) {
671    return meetingFor.remove(gender);
672  }
673
674  /**
675   * The list of devices the person is using.
676   * 
677   * This will return only iOS and Android devices
678   * 
679   * @return The list of devices the person is using.
680   */
681  public List<UserDevice> getDevices() {
682    return unmodifiableList(devices);
683  }
684
685  public boolean addDevice(UserDevice device) {
686    return devices.add(device);
687  }
688
689  public boolean removeDevice(UserDevice device) {
690    return devices.remove(device);
691  }
692
693  /**
694   * A list of the sports from the user's profile.
695   * 
696   * @return A list of the sports from this user's profile.
697   */
698  public List<Sport> getSports() {
699    return unmodifiableList(sports);
700  }
701
702  public boolean addSport(Sport sportItem) {
703    return sports.add(sportItem);
704  }
705
706  public boolean removeSport(Sport sportItem) {
707    return sports.remove(sportItem);
708  }
709
710  /**
711   * A list of the favorite sports teams from the user's profile.
712   * 
713   * @return A list of the favorite sports teams from the user's profile.
714   */
715  public List<Experience> getFavoriteTeams() {
716    return unmodifiableList(favoriteTeams);
717  }
718
719  public boolean addFavoriteTeam(Experience team) {
720    return favoriteTeams.add(team);
721  }
722
723  public boolean removeFavoriteTeam(Experience team) {
724    return favoriteTeams.remove(team);
725  }
726
727  /**
728   * A list of the favorite athletes from the user's profile.
729   * 
730   * @return A list of the favorite athletes from the user's profile.
731   */
732  public List<Experience> getFavoriteAthletes() {
733    return unmodifiableList(favoriteAthletes);
734  }
735
736  public boolean addFavoriteAthlete(Experience athlet) {
737    return favoriteAthletes.add(athlet);
738  }
739
740  public boolean removeFavoriteAthlete(Experience athlet) {
741    return favoriteAthletes.remove(athlet);
742  }
743
744  /**
745   * The person's inspirational people.
746   *
747   * @return The person's inspirational people.
748   */
749  public List<Experience> getInspirationalPeople() {
750    return unmodifiableList(inspirationalPeople);
751  }
752
753  public boolean addInspirationalPeople(Experience person) {
754    return inspirationalPeople.add(person);
755  }
756
757  public boolean removeInspirationalPeople(Experience person) {
758    return inspirationalPeople.remove(person);
759  }
760
761  /**
762   * A list of the languages from the user's profile.
763   * 
764   * @return A list of the languages from the user's profile.
765   */
766  public List<Experience> getLanguages() {
767    return unmodifiableList(languages);
768  }
769
770  public boolean addLanguage(Experience language) {
771    return languages.add(language);
772  }
773
774  public boolean removeLanguage(Experience language) {
775    return languages.remove(language);
776  }
777
778  /**
779   * Page labels of this user
780   *
781   * @return labels of this user
782   */
783  @GraphAPI(since = "2.6")
784  public List<PageLabel> getLabels() {
785    return unmodifiableList(labels);
786  }
787
788  public boolean addLabel(PageLabel label) {
789    return labels.add(label);
790  }
791
792  public boolean removeLabels(PageLabel label) {
793    return labels.remove(label);
794  }
795
796  /**
797   * A list of friends that can be invited to install a Facebook Canvas app
798   * 
799   * @return A list of friends that can be invited to install a Facebook Canvas app
800   */
801  public List<UserInvitableFriend> getInvitableFriends() {
802    return unmodifiableList(invitableFriends);
803  }
804
805  public boolean addInvitableFriend(UserInvitableFriend friend) {
806    return invitableFriends.add(friend);
807  }
808
809  public boolean removeInvitableFriend(UserInvitableFriend friend) {
810    return invitableFriends.remove(friend);
811  }
812
813
814  /**
815   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/secure-browsing/">Secure Browsing
816   * Graph API type</a>.
817   */
818  public static class SecureBrowsing extends AbstractFacebookType {
819    /**
820     * Enabled
821     */
822    @Facebook
823    private Boolean enabled;
824
825    /**
826     * Enabled
827     *
828     * @return Enabled
829     */
830    @java.lang.SuppressWarnings("all")
831    public Boolean getEnabled() {
832      return this.enabled;
833    }
834
835    /**
836     * Enabled
837     */
838    @java.lang.SuppressWarnings("all")
839    public void setEnabled(final Boolean enabled) {
840      this.enabled = enabled;
841    }
842  }
843
844
845  /**
846   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/payment-pricepoints/">Payment
847   * Pricepoints Graph API type</a>.
848   */
849  public static class PaymentPricepoints extends AbstractFacebookType {
850    @Facebook
851    private List<PaymentPricepoint> mobile = new ArrayList<>();
852
853    /**
854     * Mobile payment pricepoints
855     * 
856     * @return Mobile payment pricepoints
857     */
858    public List<PaymentPricepoint> getMobile() {
859      return unmodifiableList(mobile);
860    }
861
862    public boolean addMobile(PaymentPricepoint language) {
863      return mobile.add(language);
864    }
865
866    public boolean removeMobile(PaymentPricepoint language) {
867      return mobile.remove(language);
868    }
869  }
870
871
872  /**
873   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/payment-pricepoint/">Payment
874   * Pricepoint Graph API type</a>.
875   */
876  public static class PaymentPricepoint extends AbstractFacebookType {
877    @Facebook
878    private Double credits;
879    @Facebook("local_currency")
880    private String localCurrency;
881    @Facebook("user_price")
882    private String userPrice;
883
884    @java.lang.SuppressWarnings("all")
885    public Double getCredits() {
886      return this.credits;
887    }
888
889    @java.lang.SuppressWarnings("all")
890    public void setCredits(final Double credits) {
891      this.credits = credits;
892    }
893
894    @java.lang.SuppressWarnings("all")
895    public String getLocalCurrency() {
896      return this.localCurrency;
897    }
898
899    @java.lang.SuppressWarnings("all")
900    public void setLocalCurrency(final String localCurrency) {
901      this.localCurrency = localCurrency;
902    }
903
904    @java.lang.SuppressWarnings("all")
905    public String getUserPrice() {
906      return this.userPrice;
907    }
908
909    @java.lang.SuppressWarnings("all")
910    public void setUserPrice(final String userPrice) {
911      this.userPrice = userPrice;
912    }
913  }
914
915
916  /**
917   * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/video-upload-limits/">Video Upload
918   * Limits Graph API type</a>.
919   */
920  public static class VideoUploadLimits extends AbstractFacebookType {
921    @Facebook
922    private Long length;
923    @Facebook
924    private Long size;
925
926    @java.lang.SuppressWarnings("all")
927    public Long getLength() {
928      return this.length;
929    }
930
931    @java.lang.SuppressWarnings("all")
932    public void setLength(final Long length) {
933      this.length = length;
934    }
935
936    @java.lang.SuppressWarnings("all")
937    public Long getSize() {
938      return this.size;
939    }
940
941    @java.lang.SuppressWarnings("all")
942    public void setSize(final Long size) {
943      this.size = size;
944    }
945  }
946
947
948  public static class Experience extends NamedFacebookType {
949    @Facebook
950    private String description;
951    @Facebook
952    private User from;
953    @Facebook
954    private List<User> with = new ArrayList<>();
955
956    /**
957     * Tagged users
958     * 
959     * @return Tagged users
960     */
961    public List<User> getWith() {
962      return unmodifiableList(with);
963    }
964
965    public boolean addWith(User with) {
966      return this.with.add(with);
967    }
968
969    public boolean removeWith(User with) {
970      return this.with.remove(with);
971    }
972
973    @java.lang.SuppressWarnings("all")
974    public String getDescription() {
975      return this.description;
976    }
977
978    @java.lang.SuppressWarnings("all")
979    public void setDescription(final String description) {
980      this.description = description;
981    }
982
983    @java.lang.SuppressWarnings("all")
984    public User getFrom() {
985      return this.from;
986    }
987
988    @java.lang.SuppressWarnings("all")
989    public void setFrom(final User from) {
990      this.from = from;
991    }
992  }
993
994  /**
995   * Social context for this person
996   *
997   * @return Social context for this person
998   */
999  @java.lang.SuppressWarnings("all")
1000  public FacebookType getContext() {
1001    return this.context;
1002  }
1003
1004  /**
1005   * Social context for this person
1006   */
1007  @java.lang.SuppressWarnings("all")
1008  public void setContext(final FacebookType context) {
1009    this.context = context;
1010  }
1011
1012  /**
1013   * The user's first name.
1014   * 
1015   * @return The user's first name.
1016   */
1017  @java.lang.SuppressWarnings("all")
1018  public String getFirstName() {
1019    return this.firstName;
1020  }
1021
1022  /**
1023   * The user's first name.
1024   * 
1025   */
1026  @java.lang.SuppressWarnings("all")
1027  public void setFirstName(final String firstName) {
1028    this.firstName = firstName;
1029  }
1030
1031  /**
1032   * The user's middle name.
1033   * 
1034   * @return The user's middle name.
1035   */
1036  @java.lang.SuppressWarnings("all")
1037  public String getMiddleName() {
1038    return this.middleName;
1039  }
1040
1041  /**
1042   * The user's middle name.
1043   * 
1044   */
1045  @java.lang.SuppressWarnings("all")
1046  public void setMiddleName(final String middleName) {
1047    this.middleName = middleName;
1048  }
1049
1050  /**
1051   * The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering.
1052   *
1053   * @return The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering
1054   */
1055  @java.lang.SuppressWarnings("all")
1056  public String getNameFormat() {
1057    return this.nameFormat;
1058  }
1059
1060  /**
1061   * The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering.
1062   */
1063  @java.lang.SuppressWarnings("all")
1064  public void setNameFormat(final String nameFormat) {
1065    this.nameFormat = nameFormat;
1066  }
1067
1068  /**
1069   * The person's payment pricepoints
1070   *
1071   * @return The person's payment pricepoints
1072   */
1073  @java.lang.SuppressWarnings("all")
1074  public PaymentPricepoints getPaymentPricepoints() {
1075    return this.paymentPricepoints;
1076  }
1077
1078  /**
1079   * The person's payment pricepoints
1080   */
1081  @java.lang.SuppressWarnings("all")
1082  public void setPaymentPricepoints(final PaymentPricepoints paymentPricepoints) {
1083    this.paymentPricepoints = paymentPricepoints;
1084  }
1085
1086  /**
1087   * The user's last name.
1088   * 
1089   * @return The user's last name.
1090   */
1091  @java.lang.SuppressWarnings("all")
1092  public String getLastName() {
1093    return this.lastName;
1094  }
1095
1096  /**
1097   * The user's last name.
1098   * 
1099   */
1100  @java.lang.SuppressWarnings("all")
1101  public void setLastName(final String lastName) {
1102    this.lastName = lastName;
1103  }
1104
1105  /**
1106   * Shortened, locale-aware name for the person.
1107   *
1108   * @return Shortened, locale-aware name for the person
1109   */
1110  @GraphAPI(since = "2.9")
1111  @java.lang.SuppressWarnings("all")
1112  public String getShortName() {
1113    return this.shortName;
1114  }
1115
1116  /**
1117   * Shortened, locale-aware name for the person.
1118   */
1119  @java.lang.SuppressWarnings("all")
1120  public void setShortName(final String shortName) {
1121    this.shortName = shortName;
1122  }
1123
1124  /**
1125   * The person's cover photo
1126   *
1127   * @return The person's cover photo
1128   */
1129  @Override
1130  @java.lang.SuppressWarnings("all")
1131  public CoverPhoto getCover() {
1132    return this.cover;
1133  }
1134
1135  /**
1136   * The person's cover photo
1137   */
1138  @java.lang.SuppressWarnings("all")
1139  public void setCover(final CoverPhoto cover) {
1140    this.cover = cover;
1141  }
1142
1143  /**
1144   * A link to the person's Timeline.
1145   *
1146   * The link will only resolve if the person clicking the link is logged
1147   * into Facebook and is a friend of the person whose profile is being viewed.
1148   * 
1149   * @return A link to the user's profile.
1150   */
1151  @java.lang.SuppressWarnings("all")
1152  public String getLink() {
1153    return this.link;
1154  }
1155
1156  /**
1157   * A link to the person's Timeline.
1158   *
1159   * The link will only resolve if the person clicking the link is logged
1160   * into Facebook and is a friend of the person whose profile is being viewed.
1161   * 
1162   */
1163  @java.lang.SuppressWarnings("all")
1164  public void setLink(final String link) {
1165    this.link = link;
1166  }
1167
1168  /**
1169   * The user's biographical snippet.
1170   *
1171   * @return The user's biographical snippet.
1172   */
1173  @GraphAPI(until = "2.7")
1174  @java.lang.SuppressWarnings("all")
1175  public String getBio() {
1176    return this.bio;
1177  }
1178
1179  /**
1180   * The user's biographical snippet.
1181   */
1182  @java.lang.SuppressWarnings("all")
1183  public void setBio(final String bio) {
1184    this.bio = bio;
1185  }
1186
1187  /**
1188   * The user's favorite quotes.
1189   * 
1190   * @return The user's favorite quotes.
1191   */
1192  @java.lang.SuppressWarnings("all")
1193  public String getQuotes() {
1194    return this.quotes;
1195  }
1196
1197  /**
1198   * The user's favorite quotes.
1199   * 
1200   */
1201  @java.lang.SuppressWarnings("all")
1202  public void setQuotes(final String quotes) {
1203    this.quotes = quotes;
1204  }
1205
1206  /**
1207   * Unspecific age range that this person's age fits into.
1208   * 
1209   * @return The user's age range
1210   */
1211  @java.lang.SuppressWarnings("all")
1212  public AgeRange getAgeRange() {
1213    return this.ageRange;
1214  }
1215
1216  /**
1217   * Unspecific age range that this person's age fits into.
1218   * 
1219   */
1220  @java.lang.SuppressWarnings("all")
1221  public void setAgeRange(final AgeRange ageRange) {
1222    this.ageRange = ageRange;
1223  }
1224
1225  /**
1226   * The user's birthday as a {@code String}.
1227   * <p>
1228   * Will always succeed, even if the user has specified month/year format only.
1229   * If you'd like to use a typed version of this accessor,
1230   * call {@link #getBirthdayAsDate()} instead.
1231   *
1232   * "The person's birthday. This is a fixed format string, like `MM/DD/YYYY`.
1233   * However, people can control who can see the year they were
1234   * born separately from the month and day so this string can be
1235   * only the year (YYYY) or the month + day (MM/DD)",
1236   * 
1237   * @return The user's birthday as a {@code String}.
1238   */
1239  @java.lang.SuppressWarnings("all")
1240  public String getBirthday() {
1241    return this.birthday;
1242  }
1243
1244  /**
1245   * The user's birthday as a {@code String}.
1246   * <p>
1247   * Will always succeed, even if the user has specified month/year format only.
1248   * If you'd like to use a typed version of this accessor,
1249   * call {@link #getBirthdayAsDate()} instead.
1250   *
1251   * "The person's birthday. This is a fixed format string, like `MM/DD/YYYY`.
1252   * However, people can control who can see the year they were
1253   * born separately from the month and day so this string can be
1254   * only the year (YYYY) or the month + day (MM/DD)",
1255   * 
1256   */
1257  @java.lang.SuppressWarnings("all")
1258  public void setBirthday(final String birthday) {
1259    this.birthday = birthday;
1260  }
1261
1262  /**
1263   * The proxied or contact email address granted by the user.
1264   * 
1265   * @return The proxied or contact email address granted by the user.
1266   */
1267  @java.lang.SuppressWarnings("all")
1268  public String getEmail() {
1269    return this.email;
1270  }
1271
1272  /**
1273   * The proxied or contact email address granted by the user.
1274   * 
1275   */
1276  @java.lang.SuppressWarnings("all")
1277  public void setEmail(final String email) {
1278    this.email = email;
1279  }
1280
1281  /**
1282   * The user's timezone offset.
1283   * 
1284   * @return The user's timezone offset.
1285   */
1286  @java.lang.SuppressWarnings("all")
1287  public Double getTimezone() {
1288    return this.timezone;
1289  }
1290
1291  /**
1292   * The user's timezone offset.
1293   * 
1294   */
1295  @java.lang.SuppressWarnings("all")
1296  public void setTimezone(final Double timezone) {
1297    this.timezone = timezone;
1298  }
1299
1300  /**
1301   * Indicates whether the account has been verified. This is distinct from the <code>is_verified</code> field. Someone
1302   * is considered verified if they take any of the following actions:
1303   * <ul>
1304   * <li>Register for mobile</li>
1305   * <li>Confirm their account via SMS</li>
1306   * <li>Enter a valid credit card</li>
1307   * </ul>
1308   * 
1309   * @return User verification status.
1310   */
1311  @java.lang.SuppressWarnings("all")
1312  public Boolean getVerified() {
1313    return this.verified;
1314  }
1315
1316  /**
1317   * Indicates whether the account has been verified. This is distinct from the <code>is_verified</code> field. Someone
1318   * is considered verified if they take any of the following actions:
1319   * <ul>
1320   * <li>Register for mobile</li>
1321   * <li>Confirm their account via SMS</li>
1322   * <li>Enter a valid credit card</li>
1323   * </ul>
1324   * 
1325   */
1326  @java.lang.SuppressWarnings("all")
1327  public void setVerified(final Boolean verified) {
1328    this.verified = verified;
1329  }
1330
1331  /**
1332   * Video upload limits
1333   *
1334   * @return Video upload limits
1335   */
1336  @java.lang.SuppressWarnings("all")
1337  public VideoUploadLimits getVideoUploadLimits() {
1338    return this.videoUploadLimits;
1339  }
1340
1341  /**
1342   * Video upload limits
1343   */
1344  @java.lang.SuppressWarnings("all")
1345  public void setVideoUploadLimits(final VideoUploadLimits videoUploadLimits) {
1346    this.videoUploadLimits = videoUploadLimits;
1347  }
1348
1349  /**
1350   * The user's gender.
1351   * 
1352   * @return The user's gender.
1353   */
1354  @java.lang.SuppressWarnings("all")
1355  public String getGender() {
1356    return this.gender;
1357  }
1358
1359  /**
1360   * The user's gender.
1361   * 
1362   */
1363  @java.lang.SuppressWarnings("all")
1364  public void setGender(final String gender) {
1365    this.gender = gender;
1366  }
1367
1368  /**
1369   * The user's locale.
1370   * 
1371   * @return The user's locale.
1372   */
1373  @java.lang.SuppressWarnings("all")
1374  public String getLocale() {
1375    return this.locale;
1376  }
1377
1378  /**
1379   * The user's locale.
1380   * 
1381   */
1382  @java.lang.SuppressWarnings("all")
1383  public void setLocale(final String locale) {
1384    this.locale = locale;
1385  }
1386
1387  /**
1388   * The person's PGP public key
1389   *
1390   * @return The person's PGP public key
1391   */
1392  @java.lang.SuppressWarnings("all")
1393  public String getPublicKey() {
1394    return this.publicKey;
1395  }
1396
1397  /**
1398   * The person's PGP public key
1399   */
1400  @java.lang.SuppressWarnings("all")
1401  public void setPublicKey(final String publicKey) {
1402    this.publicKey = publicKey;
1403  }
1404
1405  /**
1406   * The user's Likes
1407   *
1408   * @return the user's Likes
1409   */
1410  @java.lang.SuppressWarnings("all")
1411  public Likes getLikes() {
1412    return this.likes;
1413  }
1414
1415  /**
1416   * The user's Likes
1417   */
1418  @java.lang.SuppressWarnings("all")
1419  public void setLikes(final Likes likes) {
1420    this.likes = likes;
1421  }
1422
1423  /**
1424   * The user's picture, if provided.
1425   * 
1426   * To force Facebook to fill the <code>picture</code> field you have to fetch the user with the
1427   * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>.
1428   * 
1429   * @return the user's picture as ProfilePictureSource object
1430   * @since 1.6.16
1431   */
1432  @Override
1433  @java.lang.SuppressWarnings("all")
1434  public ProfilePictureSource getPicture() {
1435    return this.picture;
1436  }
1437
1438  /**
1439   * The user's picture, if provided.
1440   * 
1441   * To force Facebook to fill the <code>picture</code> field you have to fetch the user with the
1442   * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>.
1443   * 
1444   * @since 1.6.16
1445   */
1446  @java.lang.SuppressWarnings("all")
1447  public void setPicture(final ProfilePictureSource picture) {
1448    this.picture = picture;
1449  }
1450
1451  /**
1452   * Duplicate mapping for "hometown" since FB can return it differently in different situations.
1453   * 
1454   * -- GETTER -- The user's hometown.
1455   * <p>
1456   * Sometimes this can be {@code null} - check {@link #getHometownName()} instead in that case.
1457   * 
1458   * @return The user's hometown.
1459   */
1460  @java.lang.SuppressWarnings("all")
1461  public NamedFacebookType getHometown() {
1462    return this.hometown;
1463  }
1464
1465  /**
1466   * Duplicate mapping for "hometown" since FB can return it differently in different situations.
1467   * 
1468   * -- GETTER -- The user's hometown.
1469   * <p>
1470   * Sometimes this can be {@code null} - check {@link #getHometownName()} instead in that case.
1471   * 
1472   */
1473  @java.lang.SuppressWarnings("all")
1474  public void setHometown(final NamedFacebookType hometown) {
1475    this.hometown = hometown;
1476  }
1477
1478  /**
1479   * A profile based app scoped ID. It is used to query avatars
1480   */
1481  @java.lang.SuppressWarnings("all")
1482  public String getIdForAvatars() {
1483    return this.idForAvatars;
1484  }
1485
1486  /**
1487   * A profile based app scoped ID. It is used to query avatars
1488   */
1489  @java.lang.SuppressWarnings("all")
1490  public void setIdForAvatars(final String idForAvatars) {
1491    this.idForAvatars = idForAvatars;
1492  }
1493
1494  /**
1495   * he person's current location as entered by them on their profile.
1496   *
1497   * This field requires the `user_location` permission.
1498   *
1499   * @return The user's current location.
1500   */
1501  @java.lang.SuppressWarnings("all")
1502  public NamedFacebookType getLocation() {
1503    return this.location;
1504  }
1505
1506  /**
1507   * he person's current location as entered by them on their profile.
1508   *
1509   * This field requires the `user_location` permission.
1510   */
1511  @java.lang.SuppressWarnings("all")
1512  public void setLocation(final NamedFacebookType location) {
1513    this.location = location;
1514  }
1515
1516  /**
1517   * The time that the shared loginneeds to be upgraded to Business Manager by
1518   *
1519   * @return The time that the shared loginneeds to be upgraded to Business Manager by
1520   */
1521  @java.lang.SuppressWarnings("all")
1522  public Date getSharedLoginUpgradeRequiredBy() {
1523    return this.sharedLoginUpgradeRequiredBy;
1524  }
1525
1526  /**
1527   * The time that the shared loginneeds to be upgraded to Business Manager by
1528   */
1529  @java.lang.SuppressWarnings("all")
1530  public void setSharedLoginUpgradeRequiredBy(final Date sharedLoginUpgradeRequiredBy) {
1531    this.sharedLoginUpgradeRequiredBy = sharedLoginUpgradeRequiredBy;
1532  }
1533
1534  /**
1535   * The user's significant other.
1536   * 
1537   * @return The user's significant other.
1538   */
1539  @java.lang.SuppressWarnings("all")
1540  public User getSignificantOther() {
1541    return this.significantOther;
1542  }
1543
1544  /**
1545   * The user's significant other.
1546   * 
1547   */
1548  @java.lang.SuppressWarnings("all")
1549  public void setSignificantOther(final User significantOther) {
1550    this.significantOther = significantOther;
1551  }
1552
1553  /**
1554   * Whether the user can add a Donate Button to their Live Videos
1555   */
1556  @java.lang.SuppressWarnings("all")
1557  public Boolean getSupportsDonateButtonInLiveVideo() {
1558    return this.supportsDonateButtonInLiveVideo;
1559  }
1560
1561  /**
1562   * Whether the user can add a Donate Button to their Live Videos
1563   */
1564  @java.lang.SuppressWarnings("all")
1565  public void setSupportsDonateButtonInLiveVideo(final Boolean supportsDonateButtonInLiveVideo) {
1566    this.supportsDonateButtonInLiveVideo = supportsDonateButtonInLiveVideo;
1567  }
1568
1569  /**
1570   * Date the user's profile was updated.
1571   * 
1572   * @return Date the user's profile was updated.
1573   */
1574  @java.lang.SuppressWarnings("all")
1575  public Date getUpdatedTime() {
1576    return this.updatedTime;
1577  }
1578
1579  /**
1580   * Date the user's profile was updated.
1581   * 
1582   */
1583  @java.lang.SuppressWarnings("all")
1584  public void setUpdatedTime(final Date updatedTime) {
1585    this.updatedTime = updatedTime;
1586  }
1587
1588  /**
1589   * An anonymous, but unique identifier for the user.
1590   * 
1591   * @return An anonymous, but unique identifier for the user.
1592   */
1593  @java.lang.SuppressWarnings("all")
1594  public String getThirdPartyId() {
1595    return this.thirdPartyId;
1596  }
1597
1598  /**
1599   * An anonymous, but unique identifier for the user.
1600   * 
1601   */
1602  @java.lang.SuppressWarnings("all")
1603  public void setThirdPartyId(final String thirdPartyId) {
1604    this.thirdPartyId = thirdPartyId;
1605  }
1606
1607  /**
1608   * The user's currency preferences.
1609   * <p>
1610   * Further documentation available on Facebook's
1611   * <a href="https://developers.facebook.com/docs/payments/user_currency">Displaying prices in user's currency</a>
1612   * page.
1613   * 
1614   * @return The user's currency preferences.
1615   * @since 1.6.12
1616   */
1617  @java.lang.SuppressWarnings("all")
1618  public Currency getCurrency() {
1619    return this.currency;
1620  }
1621
1622  /**
1623   * The user's currency preferences.
1624   * <p>
1625   * Further documentation available on Facebook's
1626   * <a href="https://developers.facebook.com/docs/payments/user_currency">Displaying prices in user's currency</a>
1627   * page.
1628   * 
1629   * @since 1.6.12
1630   */
1631  @java.lang.SuppressWarnings("all")
1632  public void setCurrency(final Currency currency) {
1633    this.currency = currency;
1634  }
1635
1636  /**
1637   * This returns a string which is the same for this person across all the apps managed by the same Business Manager.
1638   * 
1639   * @return string which is the same for a person across all apps managed by one company
1640   * @since 1.7.0
1641   */
1642  @java.lang.SuppressWarnings("all")
1643  public String getTokenForBusiness() {
1644    return this.tokenForBusiness;
1645  }
1646
1647  /**
1648   * This returns a string which is the same for this person across all the apps managed by the same Business Manager.
1649   * 
1650   * @since 1.7.0
1651   */
1652  @java.lang.SuppressWarnings("all")
1653  public void setTokenForBusiness(final String tokenForBusiness) {
1654    this.tokenForBusiness = tokenForBusiness;
1655  }
1656
1657  /**
1658   * Install type.
1659   *
1660   * @return Install type.
1661   */
1662  @java.lang.SuppressWarnings("all")
1663  public String getInstallType() {
1664    return this.installType;
1665  }
1666
1667  /**
1668   * Install type.
1669   */
1670  @java.lang.SuppressWarnings("all")
1671  public void setInstallType(final String installType) {
1672    this.installType = installType;
1673  }
1674
1675  /**
1676   * Is the app making the request installed?
1677   *
1678   * @return Is the app making the request installed?
1679   */
1680  @java.lang.SuppressWarnings("all")
1681  public Boolean getInstalled() {
1682    return this.installed;
1683  }
1684
1685  /**
1686   * Is the app making the request installed?
1687   */
1688  @java.lang.SuppressWarnings("all")
1689  public void setInstalled(final Boolean installed) {
1690    this.installed = installed;
1691  }
1692
1693  /**
1694   * People with large numbers of followers can have the authenticity of their identity manually verified by Facebook.
1695   * This field indicates whether the person's profile is verified in this way.
1696   *
1697   * This is distinct from the <code>verified</code> field
1698   *
1699   * @return Is the user verified
1700   */
1701  @java.lang.SuppressWarnings("all")
1702  public Boolean getIsVerified() {
1703    return this.isVerified;
1704  }
1705
1706  /**
1707   * People with large numbers of followers can have the authenticity of their identity manually verified by Facebook.
1708   * This field indicates whether the person's profile is verified in this way.
1709   *
1710   * This is distinct from the <code>verified</code> field
1711   */
1712  @java.lang.SuppressWarnings("all")
1713  public void setIsVerified(final Boolean isVerified) {
1714    this.isVerified = isVerified;
1715  }
1716
1717  @java.lang.SuppressWarnings("all")
1718  public Boolean getIsWorkAccount() {
1719    return this.isWorkAccount;
1720  }
1721
1722  @java.lang.SuppressWarnings("all")
1723  public void setIsWorkAccount(final Boolean isWorkAccount) {
1724    this.isWorkAccount = isWorkAccount;
1725  }
1726
1727  /**
1728   * if the current user is a guest user. should always return false.
1729   */
1730  @java.lang.SuppressWarnings("all")
1731  public Boolean getIsGuestUser() {
1732    return this.isGuestUser;
1733  }
1734
1735  /**
1736   * if the current user is a guest user. should always return false.
1737   */
1738  @java.lang.SuppressWarnings("all")
1739  public void setIsGuestUser(final Boolean isGuestUser) {
1740    this.isGuestUser = isGuestUser;
1741  }
1742}