001// Generated by delombok at Sun Sep 26 16:30:34 CEST 2021 002/* 003 * Copyright (c) 2010-2021 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 * @deprecated with Graph API 12 or December 13, 2021 for all versions 051 */ 052 @Facebook 053 @Deprecated 054 private FacebookType context; 055 /** 056 * The user's first name. 057 * 058 */ 059 @Facebook("first_name") 060 private String firstName; 061 /** 062 * The user's middle name. 063 * 064 */ 065 @Facebook("middle_name") 066 private String middleName; 067 /** 068 * The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering. 069 */ 070 @Facebook("name_format") 071 private String nameFormat; 072 /** 073 * The person's payment pricepoints 074 */ 075 @Facebook("payment_pricepoints") 076 private PaymentPricepoints paymentPricepoints; 077 /** 078 * The user's last name. 079 * 080 */ 081 @Facebook("last_name") 082 private String lastName; 083 /** 084 * Shortened, locale-aware name for the person. 085 */ 086 @Facebook("short_name") 087 @GraphAPI(since = "2.9") 088 private String shortName; 089 /** 090 * The person's cover photo 091 */ 092 @Facebook 093 private CoverPhoto cover; 094 /** 095 * A link to the user's profile. 096 * 097 */ 098 @Facebook 099 private String link; 100 /** 101 * The user's biographical snippet. 102 */ 103 @Facebook 104 @GraphAPI(until = "2.7") 105 private String bio; 106 /** 107 * The user's favorite quotes. 108 * 109 */ 110 @Facebook 111 private String quotes; 112 /** 113 * The user's blurb that appears under their profile picture. 114 * 115 * @deprecated since breaking change on 4 April, 2018 116 */ 117 @Facebook 118 @Deprecated 119 private String about; 120 /** 121 * The user's relationship status. 122 * 123 * @deprecated since breaking change on 4 April, 2018 124 */ 125 @Facebook("relationship_status") 126 @Deprecated 127 private String relationshipStatus; 128 /** 129 * The user's religion. 130 * 131 * @deprecated since breaking change on 4 April, 2018 132 */ 133 @Facebook 134 @Deprecated 135 private String religion; 136 /** 137 * Unspecific age range that this person's age fits into. 138 * 139 */ 140 @Facebook("age_range") 141 private AgeRange ageRange; 142 /** 143 * A link to the user's personal website. 144 * 145 * @deprecated since breaking change on 4 April, 2018 146 */ 147 @Facebook 148 @Deprecated 149 private String website; 150 /** 151 * The user's birthday as a {@code String}. 152 * <p> 153 * Will always succeed, even if the user has specified month/year format only. If you'd like to use a typed version of 154 * this accessor, call {@link #getBirthdayAsDate()} instead. 155 * 156 */ 157 @Facebook 158 private String birthday; 159 /** 160 * The proxied or contact email address granted by the user. 161 * 162 */ 163 @Facebook 164 private String email; 165 /** 166 * The user's timezone offset. 167 * 168 */ 169 @Facebook 170 private Double timezone; 171 /** 172 * Indicates whether the account has been verified. This is distinct from the <code>is_verified</code> field. Someone 173 * is considered verified if they take any of the following actions: 174 * <ul> 175 * <li>Register for mobile</li> 176 * <li>Confirm their account via SMS</li> 177 * <li>Enter a valid credit card</li> 178 * </ul> 179 * 180 */ 181 @Facebook 182 private Boolean verified; 183 /** 184 * Video upload limits 185 */ 186 @Facebook("video_upload_limits") 187 private VideoUploadLimits videoUploadLimits; 188 /** 189 * Can the viewer send a gift to this person? 190 * 191 * @deprecated Will be deprecated in all versions on Nov, 2020. 192 */ 193 @Facebook("viewer_can_send_gift") 194 @Deprecated 195 private Boolean viewerCanSendGift; 196 /** 197 * The user's gender. 198 * 199 */ 200 @Facebook 201 private String gender; 202 /** 203 * The user's political affiliation. 204 * 205 * @deprecated since breaking change on 4 April, 2018 206 */ 207 @Facebook 208 @Deprecated 209 private String political; 210 /** 211 * The user's locale. 212 * 213 */ 214 @Facebook 215 private String locale; 216 /** 217 * The user's Facebook username. 218 * 219 * @since 1.6.5 220 * @deprecated since graph api 2.0 221 */ 222 @Deprecated 223 @Facebook 224 private String username; 225 /** 226 * The person's PGP public key 227 */ 228 @Facebook("public_key") 229 private String publicKey; 230 /** 231 * The user's Likes 232 */ 233 @Facebook 234 private Likes likes; 235 @Facebook("picture") 236 private transient String rawPicture; 237 /** 238 * The user's picture, if provided. 239 * 240 * To force Facebook to fill the <code>picture</code> field you have to fetch the user with the 241 * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>. 242 * 243 * @since 1.6.16 244 */ 245 private ProfilePictureSource picture; 246 /** 247 * Duplicate mapping for "hometown" since FB can return it differently in different situations. 248 * 249 * -- GETTER -- The user's hometown. 250 * <p> 251 * Sometimes this can be {@code null} - check {@link #getHometownName()} instead in that case. 252 * 253 */ 254 @Facebook 255 private NamedFacebookType hometown; 256 /** 257 * Duplicate mapping for "hometown" since FB can return it differently in different situations. 258 */ 259 @Facebook("hometown") 260 private String hometownAsString; 261 /** 262 * The user's current location. 263 * 264 */ 265 @Facebook 266 private NamedFacebookType location; 267 /** 268 * Security settings 269 * 270 * @deprecated Will be deprecated in all versions on Nov, 2020. 271 */ 272 @Facebook("security_settings") 273 @Deprecated 274 private SecuritySettings securitySettings; 275 /** 276 * The time that the shared loginneeds to be upgraded to Business Manager by 277 */ 278 @Facebook("shared_login_upgrade_required_by") 279 private Date sharedLoginUpgradeRequiredBy; 280 /** 281 * The user's significant other. 282 * 283 */ 284 @Facebook("significant_other") 285 private NamedFacebookType significantOther; 286 /** 287 * Platform test group 288 * 289 * @deprecated Will be deprecated in all versions on Nov, 2020. 290 */ 291 @Facebook("test_group") 292 @Deprecated 293 private Long testGroup; 294 /** 295 * Date the user's profile was updated. 296 * 297 */ 298 @Facebook("updated_time") 299 private Date updatedTime; 300 /** 301 * An anonymous, but unique identifier for the user. 302 * 303 */ 304 @Facebook("third_party_id") 305 private String thirdPartyId; 306 /** 307 * The user's currency preferences. 308 * <p> 309 * Further documentation available on Facebook's 310 * <a href="https://developers.facebook.com/docs/payments/user_currency">Displaying prices in user's currency</a> 311 * page. 312 * 313 * @since 1.6.12 314 */ 315 @Facebook 316 private Currency currency; 317 /** 318 * This returns a string which is the same for this person across all the apps managed by the same Business Manager. 319 * 320 * @since 1.7.0 321 */ 322 @Facebook("token_for_business") 323 private String tokenForBusiness; 324 /** 325 * Install type. 326 */ 327 @Facebook("install_type") 328 private String installType; 329 /** 330 * Is the app making the request installed? 331 */ 332 @Facebook 333 private Boolean installed; 334 /** 335 * Is this a shared login (e.g. a gray user) 336 * 337 * @deprecated Will be deprecated in all versions on Nov, 2020. 338 */ 339 @Facebook("is_shared_login") 340 @Deprecated 341 private Boolean isSharedLogin; 342 /** 343 * People with large numbers of followers can have the authenticity of their identity manually verified by Facebook. 344 * This field indicates whether the person's profile is verified in this way. 345 * 346 * This is distinct from the <code>verified</code> field 347 */ 348 @Facebook("is_verified") 349 private Boolean isVerified; 350 /** 351 * if the current user is a guest user. should always return false. 352 */ 353 @Facebook("is_guest_user") 354 private Boolean isGuestUser; 355 @Deprecated 356 @Facebook("interested_in") 357 private List<String> interestedIn = new ArrayList<>(); 358 @Facebook("meeting_for") 359 private List<String> meetingFor = new ArrayList<>(); 360 @Facebook 361 private List<UserDevice> devices = new ArrayList<>(); 362 @Facebook 363 @Deprecated 364 private List<WorkExperience> work = new ArrayList<>(); 365 @Facebook 366 @Deprecated 367 private List<Education> education = new ArrayList<>(); 368 @Facebook 369 private List<Sport> sports = new ArrayList<>(); 370 @Facebook("favorite_teams") 371 private List<Experience> favoriteTeams = new ArrayList<>(); 372 @Facebook("favorite_athletes") 373 private List<Experience> favoriteAthletes = new ArrayList<>(); 374 @Facebook("inspirational_people") 375 private List<Experience> inspirationalPeople = new ArrayList<>(); 376 @Facebook 377 private List<Experience> languages = new ArrayList<>(); 378 @Facebook 379 private List<PageLabel> labels = new ArrayList<>(); 380 @Facebook("ids_for_apps") 381 private List<UserIDForApp> idsForApps = new ArrayList<>(); 382 @Facebook("ids_for_business") 383 private List<UserIDForApp> idsForBusiness = new ArrayList<>(); 384 @Facebook("ids_for_pages") 385 private List<UserIDForPage> idsForPages = new ArrayList<>(); 386 @Facebook("invitable_friends") 387 private List<UserInvitableFriend> invitableFriends = new ArrayList<>(); 388 private static final long serialVersionUID = 1L; 389 390 391 /** 392 * Represents the <a href="http://developers.facebook.com/docs/reference/api/user">Education Graph API type</a>. 393 * 394 * @author <a href="http://restfb.com">Mark Allen</a> 395 * @author Patrick Alberts 396 * @deprecated since breaking change on 4 April, 2018 397 */ 398 @Deprecated 399 public static class Education extends AbstractFacebookType { 400 /** 401 * The school name and ID. 402 * 403 */ 404 @Facebook 405 private NamedFacebookType school; 406 /** 407 * Graduation year. 408 * 409 */ 410 @Facebook 411 private NamedFacebookType year; 412 /** 413 * Description for this year. 414 * 415 * It is possible for Facebook to return either this value or {@link #getYear()}. If {@link #getYear()} returns 416 * {@code null}, then check this method to see if it has data, e.g. {@code "1997"}. 417 * 418 * @since 1.7.1 419 */ 420 @Facebook("year") 421 private String yearAsString; 422 /** 423 * Degree acquired. 424 * 425 */ 426 @Facebook 427 private NamedFacebookType degree; 428 /** 429 * Type of school, e.g. {@code College}. 430 * 431 */ 432 @Facebook 433 private String type; 434 @Facebook 435 private List<NamedFacebookType> concentration = new ArrayList<>(); 436 @Facebook 437 private List<NamedFacebookType> with = new ArrayList<>(); 438 @Facebook 439 private List<EducationClass> classes = new ArrayList<>(); 440 private static final long serialVersionUID = 2L; 441 442 /** 443 * Concentrations/minors. 444 * 445 * @return Concentrations/minors. 446 */ 447 public List<NamedFacebookType> getConcentration() { 448 return unmodifiableList(concentration); 449 } 450 451 public boolean addConcentration(NamedFacebookType minor) { 452 return concentration.add(minor); 453 } 454 455 public boolean removeConcentration(NamedFacebookType minor) { 456 return concentration.remove(minor); 457 } 458 459 /** 460 * Friends associated with this school. 461 * 462 * @return Friends associated with this school. 463 * @since 1.6.3 464 */ 465 public List<NamedFacebookType> getWith() { 466 return unmodifiableList(with); 467 } 468 469 public boolean addWith(NamedFacebookType friend) { 470 return with.add(friend); 471 } 472 473 public boolean removeWith(NamedFacebookType friend) { 474 return with.remove(friend); 475 } 476 477 /** 478 * Classes taken at this school. 479 * 480 * @return Classes taken at this school. 481 * @since 1.6.8 482 */ 483 public List<EducationClass> getClasses() { 484 return unmodifiableList(classes); 485 } 486 487 public boolean addClasses(EducationClass eduClass) { 488 return classes.add(eduClass); 489 } 490 491 public boolean removeClasses(EducationClass eduClass) { 492 return classes.remove(eduClass); 493 } 494 495 /** 496 * The school name and ID. 497 * 498 * @return The school name and ID. 499 */ 500 @java.lang.SuppressWarnings("all") 501 public NamedFacebookType getSchool() { 502 return this.school; 503 } 504 505 /** 506 * The school name and ID. 507 * 508 */ 509 @java.lang.SuppressWarnings("all") 510 public void setSchool(final NamedFacebookType school) { 511 this.school = school; 512 } 513 514 /** 515 * Graduation year. 516 * 517 * @return Graduation year. 518 */ 519 @java.lang.SuppressWarnings("all") 520 public NamedFacebookType getYear() { 521 return this.year; 522 } 523 524 /** 525 * Graduation year. 526 * 527 */ 528 @java.lang.SuppressWarnings("all") 529 public void setYear(final NamedFacebookType year) { 530 this.year = year; 531 } 532 533 /** 534 * Description for this year. 535 * 536 * It is possible for Facebook to return either this value or {@link #getYear()}. If {@link #getYear()} returns 537 * {@code null}, then check this method to see if it has data, e.g. {@code "1997"}. 538 * 539 * @return Description for this year. 540 * @since 1.7.1 541 */ 542 @java.lang.SuppressWarnings("all") 543 public String getYearAsString() { 544 return this.yearAsString; 545 } 546 547 /** 548 * Description for this year. 549 * 550 * It is possible for Facebook to return either this value or {@link #getYear()}. If {@link #getYear()} returns 551 * {@code null}, then check this method to see if it has data, e.g. {@code "1997"}. 552 * 553 * @since 1.7.1 554 */ 555 @java.lang.SuppressWarnings("all") 556 public void setYearAsString(final String yearAsString) { 557 this.yearAsString = yearAsString; 558 } 559 560 /** 561 * Degree acquired. 562 * 563 * @return Degree acquired. 564 */ 565 @java.lang.SuppressWarnings("all") 566 public NamedFacebookType getDegree() { 567 return this.degree; 568 } 569 570 /** 571 * Degree acquired. 572 * 573 */ 574 @java.lang.SuppressWarnings("all") 575 public void setDegree(final NamedFacebookType degree) { 576 this.degree = degree; 577 } 578 579 /** 580 * Type of school, e.g. {@code College}. 581 * 582 * @return Type of school. 583 */ 584 @java.lang.SuppressWarnings("all") 585 public String getType() { 586 return this.type; 587 } 588 589 /** 590 * Type of school, e.g. {@code College}. 591 * 592 */ 593 @java.lang.SuppressWarnings("all") 594 public void setType(final String type) { 595 this.type = type; 596 } 597 } 598 599 600 /** 601 * Represents the <a href="http://developers.facebook.com/docs/reference/api/user">Class Graph API type</a>. 602 * 603 * @author Mark Allen 604 * @since 1.6.8 605 */ 606 public static class EducationClass extends NamedFacebookType { 607 @Facebook 608 private List<NamedFacebookType> with = new ArrayList<>(); 609 /** 610 * The description of this class. 611 * 612 */ 613 @Facebook 614 private String description; 615 private static final long serialVersionUID = 1L; 616 617 /** 618 * Friends associated with this class. 619 * 620 * @return Friends associated with this class. 621 */ 622 public List<NamedFacebookType> getWith() { 623 return unmodifiableList(with); 624 } 625 626 public boolean addWith(NamedFacebookType friend) { 627 return with.add(friend); 628 } 629 630 public boolean removeWith(NamedFacebookType friend) { 631 return with.remove(friend); 632 } 633 634 /** 635 * The description of this class. 636 * 637 * @return The description of this class. 638 */ 639 @java.lang.SuppressWarnings("all") 640 public String getDescription() { 641 return this.description; 642 } 643 644 /** 645 * The description of this class. 646 * 647 */ 648 @java.lang.SuppressWarnings("all") 649 public void setDescription(final String description) { 650 this.description = description; 651 } 652 } 653 654 655 /** 656 * Represents the <a href="http://developers.facebook.com/docs/reference/api/user">Sport Graph API type</a>. 657 * 658 * @author Patrick Alberts 659 * @since 1.6.3 660 */ 661 public static class Sport extends NamedFacebookType { 662 @Facebook 663 private List<NamedFacebookType> with = new ArrayList<>(); 664 private static final long serialVersionUID = 1L; 665 666 /** 667 * Friends associated with this sport. 668 * 669 * @return Friends associated with this sport. 670 */ 671 public List<NamedFacebookType> getWith() { 672 return unmodifiableList(with); 673 } 674 675 public boolean addWith(NamedFacebookType withSport) { 676 return with.add(withSport); 677 } 678 679 public boolean removeWith(NamedFacebookType withSport) { 680 return with.remove(withSport); 681 } 682 } 683 684 685 /** 686 * Represents the <a href="https://developers.facebook.com/docs/payments/user_currency">Currency Graph API type</a>. 687 * 688 * @author <a href="http://restfb.com">Mark Allen</a> 689 * @since 1.6.12 690 */ 691 public static class Currency extends AbstractFacebookType { 692 /** 693 * The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one). 694 * 695 */ 696 @Facebook("user_currency") 697 private String userCurrency; 698 /** 699 * The number of Facebook Credits that equate in value to one unit of {@code user_currency}. 700 * 701 */ 702 @Facebook("currency_exchange") 703 private BigDecimal currencyExchange; 704 /** 705 * The number of units of {@code user_currency} that equate in value to one Credit. 706 * <p> 707 * To calculate the local currency amount based on the credits price, compute 708 * {@code credits_price * currency_exchange_inverse}. 709 * 710 */ 711 @Facebook("currency_exchange_inverse") 712 private BigDecimal currencyExchangeInverse; 713 /** 714 * The number by which a price should be divided for display in {@code user_currency} units. 715 * <p> 716 * For example, a price of $1.20 will be represented by the Facebook API as "120", which you should divide by the 717 * USD {@code currency_offset} of 100 to arrive back at 1.20. 718 * 719 */ 720 @Facebook("currency_offset") 721 private BigDecimal currencyOffset; 722 private static final long serialVersionUID = 1L; 723 724 /** 725 * The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one). 726 * 727 * @return The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one). 728 */ 729 @java.lang.SuppressWarnings("all") 730 public String getUserCurrency() { 731 return this.userCurrency; 732 } 733 734 /** 735 * The ISO-4217-3 code for the user's preferred currency (defaulting to USD if the user hasn't set one). 736 * 737 */ 738 @java.lang.SuppressWarnings("all") 739 public void setUserCurrency(final String userCurrency) { 740 this.userCurrency = userCurrency; 741 } 742 743 /** 744 * The number of Facebook Credits that equate in value to one unit of {@code user_currency}. 745 * 746 * @return The number of Facebook Credits that equate in value to one unit of {@code user_currency}. 747 */ 748 @java.lang.SuppressWarnings("all") 749 public BigDecimal getCurrencyExchange() { 750 return this.currencyExchange; 751 } 752 753 /** 754 * The number of Facebook Credits that equate in value to one unit of {@code user_currency}. 755 * 756 */ 757 @java.lang.SuppressWarnings("all") 758 public void setCurrencyExchange(final BigDecimal currencyExchange) { 759 this.currencyExchange = currencyExchange; 760 } 761 762 /** 763 * The number of units of {@code user_currency} that equate in value to one Credit. 764 * <p> 765 * To calculate the local currency amount based on the credits price, compute 766 * {@code credits_price * currency_exchange_inverse}. 767 * 768 * @return The number of units of {@code user_currency} that equate in value to one Credit. 769 */ 770 @java.lang.SuppressWarnings("all") 771 public BigDecimal getCurrencyExchangeInverse() { 772 return this.currencyExchangeInverse; 773 } 774 775 /** 776 * The number of units of {@code user_currency} that equate in value to one Credit. 777 * <p> 778 * To calculate the local currency amount based on the credits price, compute 779 * {@code credits_price * currency_exchange_inverse}. 780 * 781 */ 782 @java.lang.SuppressWarnings("all") 783 public void setCurrencyExchangeInverse(final BigDecimal currencyExchangeInverse) { 784 this.currencyExchangeInverse = currencyExchangeInverse; 785 } 786 787 /** 788 * The number by which a price should be divided for display in {@code user_currency} units. 789 * <p> 790 * For example, a price of $1.20 will be represented by the Facebook API as "120", which you should divide by the 791 * USD {@code currency_offset} of 100 to arrive back at 1.20. 792 * 793 * @return The number by which a price should be divided for display in {@code user_currency} units. 794 */ 795 @java.lang.SuppressWarnings("all") 796 public BigDecimal getCurrencyOffset() { 797 return this.currencyOffset; 798 } 799 800 /** 801 * The number by which a price should be divided for display in {@code user_currency} units. 802 * <p> 803 * For example, a price of $1.20 will be represented by the Facebook API as "120", which you should divide by the 804 * USD {@code currency_offset} of 100 to arrive back at 1.20. 805 * 806 */ 807 @java.lang.SuppressWarnings("all") 808 public void setCurrencyOffset(final BigDecimal currencyOffset) { 809 this.currencyOffset = currencyOffset; 810 } 811 } 812 813 814 /** 815 * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/user-device/">Use">User Device 816 * Graph API type</a>. 817 * 818 * @author <a href="http://restfb.com">Norbert Bartels</a> 819 */ 820 public static class UserDevice extends AbstractFacebookType { 821 private static final long serialVersionUID = 1L; 822 @Facebook 823 private String hardware; 824 @Facebook 825 private String os; 826 827 @java.lang.SuppressWarnings("all") 828 public String getHardware() { 829 return this.hardware; 830 } 831 832 @java.lang.SuppressWarnings("all") 833 public void setHardware(final String hardware) { 834 this.hardware = hardware; 835 } 836 837 @java.lang.SuppressWarnings("all") 838 public String getOs() { 839 return this.os; 840 } 841 842 @java.lang.SuppressWarnings("all") 843 public void setOs(final String os) { 844 this.os = os; 845 } 846 } 847 848 849 public static class AgeRange extends AbstractFacebookType { 850 private static final long serialVersionUID = 1L; 851 /** 852 * The lower bounds of the range for this person's age. 853 * 854 */ 855 @Facebook 856 private Integer min; 857 /** 858 * The upper bounds of the range for this person's age. 859 * 860 */ 861 @Facebook 862 private Integer max; 863 864 /** 865 * The lower bounds of the range for this person's age. 866 * 867 * @return The lower bounds of the range for this person's age. 868 */ 869 @java.lang.SuppressWarnings("all") 870 public Integer getMin() { 871 return this.min; 872 } 873 874 /** 875 * The lower bounds of the range for this person's age. 876 * 877 */ 878 @java.lang.SuppressWarnings("all") 879 public void setMin(final Integer min) { 880 this.min = min; 881 } 882 883 /** 884 * The upper bounds of the range for this person's age. 885 * 886 * @return The upper bounds of the range for this person's age. 887 */ 888 @java.lang.SuppressWarnings("all") 889 public Integer getMax() { 890 return this.max; 891 } 892 893 /** 894 * The upper bounds of the range for this person's age. 895 * 896 */ 897 @java.lang.SuppressWarnings("all") 898 public void setMax(final Integer max) { 899 this.max = max; 900 } 901 } 902 903 /** 904 * The user's birthday, typed to {@code java.util.Date} if possible. 905 * 906 * @return The user's birthday, or {@code null} if unavailable or only available in month/year format. 907 */ 908 public Date getBirthdayAsDate() { 909 if (isBlank(getBirthday()) || getBirthday().split("/").length < 2) { 910 return null; 911 } 912 return toDateFromShortFormat(birthday); 913 } 914 915 @JsonMappingCompleted 916 protected void jsonMappingCompleted(JsonMapper jsonMapper) { 917 picture = convertPicture(jsonMapper, rawPicture); 918 } 919 920 /** 921 * The user's hometown name. 922 * 923 * @return The user's hometown name. 924 */ 925 public String getHometownName() { 926 if (getHometown() != null) return getHometown().getName(); 927 return hometownAsString; 928 } 929 930 /** 931 * Businesses can claim ownership of multiple apps using Business Manager. 932 * 933 * This method returns the list of IDs that this user has in any of those other apps 934 * 935 * @return list of ids a user has in other apps 936 */ 937 public List<UserIDForApp> getIdsForApps() { 938 return unmodifiableList(idsForApps); 939 } 940 941 public boolean addIdsForApps(UserIDForApp userId) { 942 return idsForApps.add(userId); 943 } 944 945 public boolean removeIdsForApps(UserIDForApp userId) { 946 return idsForApps.remove(userId); 947 } 948 949 /** 950 * Businesses can claim ownership of multiple apps using Business Manager. 951 * 952 * This edge returns the list of IDs that this user has in any of those other apps 953 * 954 * @return list of ids a user has in other apps 955 */ 956 public List<UserIDForApp> getIdsForBusiness() { 957 return unmodifiableList(idsForBusiness); 958 } 959 960 public boolean addIdsForBusiness(UserIDForApp userId) { 961 return idsForBusiness.add(userId); 962 } 963 964 public boolean removeIdsForBusiness(UserIDForApp userId) { 965 return idsForBusiness.remove(userId); 966 } 967 968 /** 969 * Businesses can claim ownership of apps and pages using Business Manager. 970 * 971 * This edge returns the list of IDs that this user has in any of the pages owned by this business. 972 * 973 * @return list of ids a user has in other pages 974 */ 975 public List<UserIDForPage> getIdsForPages() { 976 return unmodifiableList(idsForPages); 977 } 978 979 public boolean addIdsForPages(UserIDForPage userId) { 980 return idsForPages.add(userId); 981 } 982 983 public boolean removeIdsForPages(UserIDForPage userId) { 984 return idsForPages.remove(userId); 985 } 986 987 /** 988 * The genders the user is interested in. 989 * 990 * @return The genders the user is interested in. 991 * @deprecated since breaking change on 4 April, 2018 992 */ 993 @Deprecated 994 public List<String> getInterestedIn() { 995 return unmodifiableList(interestedIn); 996 } 997 998 /** 999 * Add a gender the user is interested in. 1000 * 1001 * @param gender 1002 * the gender that should be added 1003 * @deprecated since breaking change on 4 April, 2018 1004 * @return {@code true} if the gender could be added 1005 */ 1006 @Deprecated 1007 public boolean addInterestedIn(String gender) { 1008 return interestedIn.add(gender); 1009 } 1010 1011 /** 1012 * Remove a gender the user is interested in. 1013 * 1014 * @param gender 1015 * the gender that should be removed 1016 * @deprecated since breaking change on 4 April, 2018 1017 * @return {@code true} if the gender could be removed 1018 */ 1019 @Deprecated 1020 public boolean removeInterestedIn(String gender) { 1021 return interestedIn.remove(gender); 1022 } 1023 1024 /** 1025 * What genders the user is interested in meeting. 1026 * 1027 * @return What genders the user is interested in meeting. 1028 */ 1029 public List<String> getMeetingFor() { 1030 return unmodifiableList(meetingFor); 1031 } 1032 1033 public boolean addMeetingFor(String gender) { 1034 return meetingFor.add(gender); 1035 } 1036 1037 public boolean removeMeetingFor(String gender) { 1038 return meetingFor.remove(gender); 1039 } 1040 1041 /** 1042 * A list of the work history from the user's profile. 1043 * 1044 * @return A list of the work history from the user's profile. 1045 * @deprecated since breaking change on 4 April, 2018 1046 */ 1047 @Deprecated 1048 public List<WorkExperience> getWork() { 1049 return unmodifiableList(work); 1050 } 1051 1052 /** 1053 * Adds the {@link WorkExperience} from the work experience list 1054 * 1055 * @param workHistoryItem 1056 * the WorkExperience that should be added 1057 * @deprecated since breaking change on 4 April, 2018 1058 * @return {@code true} if the {@link WorkExperience} could be added 1059 */ 1060 @Deprecated 1061 public boolean addWork(WorkExperience workHistoryItem) { 1062 return work.add(workHistoryItem); 1063 } 1064 1065 /** 1066 * Removes the {@link WorkExperience} from the work experience list 1067 * 1068 * @param workHistoryItem 1069 * the WorkExperience that should be removed 1070 * @deprecated since breaking change on 4 April, 2018 1071 * @return {@code true} if the {@link WorkExperience} could be removed 1072 */ 1073 @Deprecated 1074 public boolean removeWork(WorkExperience workHistoryItem) { 1075 return work.remove(workHistoryItem); 1076 } 1077 1078 /** 1079 * The list of devices the person is using. 1080 * 1081 * This will return only iOS and Android devices 1082 * 1083 * @return The list of devices the person is using. 1084 */ 1085 public List<UserDevice> getDevices() { 1086 return unmodifiableList(devices); 1087 } 1088 1089 public boolean addDevice(UserDevice device) { 1090 return devices.add(device); 1091 } 1092 1093 public boolean removeDevice(UserDevice device) { 1094 return devices.remove(device); 1095 } 1096 1097 /** 1098 * A list of the education history from the user's profile. 1099 * 1100 * @return A list of the education history from the user's profile. 1101 * @deprecated since breaking change on 4 April, 2018 1102 */ 1103 @Deprecated 1104 public List<Education> getEducation() { 1105 return unmodifiableList(education); 1106 } 1107 1108 /** 1109 * Adds the {@link Education} from the education list 1110 * 1111 * @param educationHistoryItem 1112 * the Education that should be added 1113 * @deprecated since breaking change on 4 April, 2018 1114 * @return {@code true} if the {@link Education} could be added 1115 */ 1116 @Deprecated 1117 public boolean addEducation(Education educationHistoryItem) { 1118 return education.add(educationHistoryItem); 1119 } 1120 1121 /** 1122 * Removes the {@link Education} from the education list 1123 * 1124 * @param educationHistoryItem 1125 * the Education that should be removed 1126 * @deprecated since breaking change on 4 April, 2018 1127 * @return {@code true} if the {@link Education} could be removed 1128 */ 1129 @Deprecated 1130 public boolean removeEducation(Education educationHistoryItem) { 1131 return education.remove(educationHistoryItem); 1132 } 1133 1134 /** 1135 * A list of the sports from the user's profile. 1136 * 1137 * @return A list of the sports from this user's profile. 1138 */ 1139 public List<Sport> getSports() { 1140 return unmodifiableList(sports); 1141 } 1142 1143 public boolean addSport(Sport sportItem) { 1144 return sports.add(sportItem); 1145 } 1146 1147 public boolean removeSport(Sport sportItem) { 1148 return sports.remove(sportItem); 1149 } 1150 1151 /** 1152 * A list of the favorite sports teams from the user's profile. 1153 * 1154 * @return A list of the favorite sports teams from the user's profile. 1155 */ 1156 public List<Experience> getFavoriteTeams() { 1157 return unmodifiableList(favoriteTeams); 1158 } 1159 1160 public boolean addFavoriteTeam(Experience team) { 1161 return favoriteTeams.add(team); 1162 } 1163 1164 public boolean removeFavoriteTeam(Experience team) { 1165 return favoriteTeams.remove(team); 1166 } 1167 1168 /** 1169 * A list of the favorite athletes from the user's profile. 1170 * 1171 * @return A list of the favorite athletes from the user's profile. 1172 */ 1173 public List<Experience> getFavoriteAthletes() { 1174 return unmodifiableList(favoriteAthletes); 1175 } 1176 1177 public boolean addFavoriteAthlete(Experience athlet) { 1178 return favoriteAthletes.add(athlet); 1179 } 1180 1181 public boolean removeFavoriteAthlete(Experience athlet) { 1182 return favoriteAthletes.remove(athlet); 1183 } 1184 1185 /** 1186 * The person's inspirational people. 1187 * 1188 * @return The person's inspirational people. 1189 */ 1190 public List<Experience> getInspirationalPeople() { 1191 return unmodifiableList(inspirationalPeople); 1192 } 1193 1194 public boolean addInspirationalPeople(Experience person) { 1195 return inspirationalPeople.add(person); 1196 } 1197 1198 public boolean removeInspirationalPeople(Experience person) { 1199 return inspirationalPeople.remove(person); 1200 } 1201 1202 /** 1203 * A list of the languages from the user's profile. 1204 * 1205 * @return A list of the languages from the user's profile. 1206 */ 1207 public List<Experience> getLanguages() { 1208 return unmodifiableList(languages); 1209 } 1210 1211 public boolean addLanguage(Experience language) { 1212 return languages.add(language); 1213 } 1214 1215 public boolean removeLanguage(Experience language) { 1216 return languages.remove(language); 1217 } 1218 1219 /** 1220 * Page labels of this user 1221 * 1222 * @return labels of this user 1223 */ 1224 @GraphAPI(since = "2.6") 1225 public List<PageLabel> getLabels() { 1226 return unmodifiableList(labels); 1227 } 1228 1229 public boolean addLabel(PageLabel label) { 1230 return labels.add(label); 1231 } 1232 1233 public boolean removeLabels(PageLabel label) { 1234 return labels.remove(label); 1235 } 1236 1237 /** 1238 * A list of friends that can be invited to install a Facebook Canvas app 1239 * 1240 * @return A list of friends that can be invited to install a Facebook Canvas app 1241 */ 1242 public List<UserInvitableFriend> getInvitableFriends() { 1243 return unmodifiableList(invitableFriends); 1244 } 1245 1246 public boolean addInvitableFriend(UserInvitableFriend friend) { 1247 return invitableFriends.add(friend); 1248 } 1249 1250 public boolean removeInvitableFriend(UserInvitableFriend friend) { 1251 return invitableFriends.remove(friend); 1252 } 1253 1254 1255 /** 1256 * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/security-settings/">Security 1257 * Settings Graph API type</a> 1258 */ 1259 public static class SecuritySettings extends AbstractFacebookType { 1260 /** 1261 * Secure browsing settings 1262 */ 1263 @Facebook("secure_browsing") 1264 private SecureBrowsing secureBrowsing; 1265 1266 /** 1267 * Secure browsing settings 1268 * 1269 * @return Secure browsing settings 1270 */ 1271 @java.lang.SuppressWarnings("all") 1272 public SecureBrowsing getSecureBrowsing() { 1273 return this.secureBrowsing; 1274 } 1275 1276 /** 1277 * Secure browsing settings 1278 */ 1279 @java.lang.SuppressWarnings("all") 1280 public void setSecureBrowsing(final SecureBrowsing secureBrowsing) { 1281 this.secureBrowsing = secureBrowsing; 1282 } 1283 } 1284 1285 1286 /** 1287 * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/secure-browsing/">Secure Browsing 1288 * Graph API type</a>. 1289 */ 1290 public static class SecureBrowsing extends AbstractFacebookType { 1291 /** 1292 * Enabled 1293 */ 1294 @Facebook 1295 private Boolean enabled; 1296 1297 /** 1298 * Enabled 1299 * 1300 * @return Enabled 1301 */ 1302 @java.lang.SuppressWarnings("all") 1303 public Boolean getEnabled() { 1304 return this.enabled; 1305 } 1306 1307 /** 1308 * Enabled 1309 */ 1310 @java.lang.SuppressWarnings("all") 1311 public void setEnabled(final Boolean enabled) { 1312 this.enabled = enabled; 1313 } 1314 } 1315 1316 1317 /** 1318 * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/payment-pricepoints/">Payment 1319 * Pricepoints Graph API type</a>. 1320 */ 1321 public static class PaymentPricepoints extends AbstractFacebookType { 1322 @Facebook 1323 private List<PaymentPricepoint> mobile = new ArrayList<>(); 1324 1325 /** 1326 * Mobile payment pricepoints 1327 * 1328 * @return Mobile payment pricepoints 1329 */ 1330 public List<PaymentPricepoint> getMobile() { 1331 return unmodifiableList(mobile); 1332 } 1333 1334 public boolean addMobile(PaymentPricepoint language) { 1335 return mobile.add(language); 1336 } 1337 1338 public boolean removeMobile(PaymentPricepoint language) { 1339 return mobile.remove(language); 1340 } 1341 } 1342 1343 1344 /** 1345 * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/payment-pricepoint/">Payment 1346 * Pricepoint Graph API type</a>. 1347 */ 1348 public static class PaymentPricepoint extends AbstractFacebookType { 1349 @Facebook 1350 private Double credits; 1351 @Facebook("local_currency") 1352 private String localCurrency; 1353 @Facebook("user_price") 1354 private String userPrice; 1355 1356 @java.lang.SuppressWarnings("all") 1357 public Double getCredits() { 1358 return this.credits; 1359 } 1360 1361 @java.lang.SuppressWarnings("all") 1362 public void setCredits(final Double credits) { 1363 this.credits = credits; 1364 } 1365 1366 @java.lang.SuppressWarnings("all") 1367 public String getLocalCurrency() { 1368 return this.localCurrency; 1369 } 1370 1371 @java.lang.SuppressWarnings("all") 1372 public void setLocalCurrency(final String localCurrency) { 1373 this.localCurrency = localCurrency; 1374 } 1375 1376 @java.lang.SuppressWarnings("all") 1377 public String getUserPrice() { 1378 return this.userPrice; 1379 } 1380 1381 @java.lang.SuppressWarnings("all") 1382 public void setUserPrice(final String userPrice) { 1383 this.userPrice = userPrice; 1384 } 1385 } 1386 1387 1388 /** 1389 * Represents the <a href="https://developers.facebook.com/docs/graph-api/reference/video-upload-limits/">Video Upload 1390 * Limits Graph API type</a>. 1391 */ 1392 public static class VideoUploadLimits extends AbstractFacebookType { 1393 @Facebook 1394 private Long length; 1395 @Facebook 1396 private Long size; 1397 1398 @java.lang.SuppressWarnings("all") 1399 public Long getLength() { 1400 return this.length; 1401 } 1402 1403 @java.lang.SuppressWarnings("all") 1404 public void setLength(final Long length) { 1405 this.length = length; 1406 } 1407 1408 @java.lang.SuppressWarnings("all") 1409 public Long getSize() { 1410 return this.size; 1411 } 1412 1413 @java.lang.SuppressWarnings("all") 1414 public void setSize(final Long size) { 1415 this.size = size; 1416 } 1417 } 1418 1419 1420 public static class Experience extends NamedFacebookType { 1421 @Facebook 1422 private String description; 1423 @Facebook 1424 private User from; 1425 @Facebook 1426 private List<User> with = new ArrayList<>(); 1427 1428 /** 1429 * Tagged users 1430 * 1431 * @return Tagged users 1432 */ 1433 public List<User> getWith() { 1434 return unmodifiableList(with); 1435 } 1436 1437 public boolean addWith(User with) { 1438 return this.with.add(with); 1439 } 1440 1441 public boolean removeWith(User with) { 1442 return this.with.remove(with); 1443 } 1444 1445 @java.lang.SuppressWarnings("all") 1446 public String getDescription() { 1447 return this.description; 1448 } 1449 1450 @java.lang.SuppressWarnings("all") 1451 public void setDescription(final String description) { 1452 this.description = description; 1453 } 1454 1455 @java.lang.SuppressWarnings("all") 1456 public User getFrom() { 1457 return this.from; 1458 } 1459 1460 @java.lang.SuppressWarnings("all") 1461 public void setFrom(final User from) { 1462 this.from = from; 1463 } 1464 } 1465 1466 /** 1467 * Social context for this person 1468 * 1469 * @deprecated with Graph API 12 or December 13, 2021 for all versions 1470 * @return Social context for this person 1471 */ 1472 @java.lang.Deprecated 1473 @java.lang.SuppressWarnings("all") 1474 public FacebookType getContext() { 1475 return this.context; 1476 } 1477 1478 /** 1479 * Social context for this person 1480 * 1481 * @deprecated with Graph API 12 or December 13, 2021 for all versions 1482 */ 1483 @java.lang.Deprecated 1484 @java.lang.SuppressWarnings("all") 1485 public void setContext(final FacebookType context) { 1486 this.context = context; 1487 } 1488 1489 /** 1490 * The user's first name. 1491 * 1492 * @return The user's first name. 1493 */ 1494 @java.lang.SuppressWarnings("all") 1495 public String getFirstName() { 1496 return this.firstName; 1497 } 1498 1499 /** 1500 * The user's first name. 1501 * 1502 */ 1503 @java.lang.SuppressWarnings("all") 1504 public void setFirstName(final String firstName) { 1505 this.firstName = firstName; 1506 } 1507 1508 /** 1509 * The user's middle name. 1510 * 1511 * @return The user's middle name. 1512 */ 1513 @java.lang.SuppressWarnings("all") 1514 public String getMiddleName() { 1515 return this.middleName; 1516 } 1517 1518 /** 1519 * The user's middle name. 1520 * 1521 */ 1522 @java.lang.SuppressWarnings("all") 1523 public void setMiddleName(final String middleName) { 1524 this.middleName = middleName; 1525 } 1526 1527 /** 1528 * The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering. 1529 * 1530 * @return The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering 1531 */ 1532 @java.lang.SuppressWarnings("all") 1533 public String getNameFormat() { 1534 return this.nameFormat; 1535 } 1536 1537 /** 1538 * The person's name formatted to correctly handle Chinese, Japanese, or Korean ordering. 1539 */ 1540 @java.lang.SuppressWarnings("all") 1541 public void setNameFormat(final String nameFormat) { 1542 this.nameFormat = nameFormat; 1543 } 1544 1545 /** 1546 * The person's payment pricepoints 1547 * 1548 * @return The person's payment pricepoints 1549 */ 1550 @java.lang.SuppressWarnings("all") 1551 public PaymentPricepoints getPaymentPricepoints() { 1552 return this.paymentPricepoints; 1553 } 1554 1555 /** 1556 * The person's payment pricepoints 1557 */ 1558 @java.lang.SuppressWarnings("all") 1559 public void setPaymentPricepoints(final PaymentPricepoints paymentPricepoints) { 1560 this.paymentPricepoints = paymentPricepoints; 1561 } 1562 1563 /** 1564 * The user's last name. 1565 * 1566 * @return The user's last name. 1567 */ 1568 @java.lang.SuppressWarnings("all") 1569 public String getLastName() { 1570 return this.lastName; 1571 } 1572 1573 /** 1574 * The user's last name. 1575 * 1576 */ 1577 @java.lang.SuppressWarnings("all") 1578 public void setLastName(final String lastName) { 1579 this.lastName = lastName; 1580 } 1581 1582 /** 1583 * Shortened, locale-aware name for the person. 1584 * 1585 * @return Shortened, locale-aware name for the person 1586 */ 1587 @GraphAPI(since = "2.9") 1588 @java.lang.SuppressWarnings("all") 1589 public String getShortName() { 1590 return this.shortName; 1591 } 1592 1593 /** 1594 * Shortened, locale-aware name for the person. 1595 */ 1596 @java.lang.SuppressWarnings("all") 1597 public void setShortName(final String shortName) { 1598 this.shortName = shortName; 1599 } 1600 1601 /** 1602 * The person's cover photo 1603 * 1604 * @return The person's cover photo 1605 */ 1606 @Override 1607 @java.lang.SuppressWarnings("all") 1608 public CoverPhoto getCover() { 1609 return this.cover; 1610 } 1611 1612 /** 1613 * The person's cover photo 1614 */ 1615 @java.lang.SuppressWarnings("all") 1616 public void setCover(final CoverPhoto cover) { 1617 this.cover = cover; 1618 } 1619 1620 /** 1621 * A link to the user's profile. 1622 * 1623 * @return A link to the user's profile. 1624 */ 1625 @java.lang.SuppressWarnings("all") 1626 public String getLink() { 1627 return this.link; 1628 } 1629 1630 /** 1631 * A link to the user's profile. 1632 * 1633 */ 1634 @java.lang.SuppressWarnings("all") 1635 public void setLink(final String link) { 1636 this.link = link; 1637 } 1638 1639 /** 1640 * The user's biographical snippet. 1641 * 1642 * @return The user's biographical snippet. 1643 */ 1644 @GraphAPI(until = "2.7") 1645 @java.lang.SuppressWarnings("all") 1646 public String getBio() { 1647 return this.bio; 1648 } 1649 1650 /** 1651 * The user's biographical snippet. 1652 */ 1653 @java.lang.SuppressWarnings("all") 1654 public void setBio(final String bio) { 1655 this.bio = bio; 1656 } 1657 1658 /** 1659 * The user's favorite quotes. 1660 * 1661 * @return The user's favorite quotes. 1662 */ 1663 @java.lang.SuppressWarnings("all") 1664 public String getQuotes() { 1665 return this.quotes; 1666 } 1667 1668 /** 1669 * The user's favorite quotes. 1670 * 1671 */ 1672 @java.lang.SuppressWarnings("all") 1673 public void setQuotes(final String quotes) { 1674 this.quotes = quotes; 1675 } 1676 1677 /** 1678 * The user's blurb that appears under their profile picture. 1679 * 1680 * @deprecated since breaking change on 4 April, 2018 1681 * 1682 * @return The user's blurb that appears under their profile picture. 1683 */ 1684 @java.lang.Deprecated 1685 @java.lang.SuppressWarnings("all") 1686 public String getAbout() { 1687 return this.about; 1688 } 1689 1690 /** 1691 * The user's blurb that appears under their profile picture. 1692 * 1693 * @deprecated since breaking change on 4 April, 2018 1694 */ 1695 @java.lang.Deprecated 1696 @java.lang.SuppressWarnings("all") 1697 public void setAbout(final String about) { 1698 this.about = about; 1699 } 1700 1701 /** 1702 * The user's relationship status. 1703 * 1704 * @return The user's relationship status. 1705 * @deprecated since breaking change on 4 April, 2018 1706 */ 1707 @java.lang.Deprecated 1708 @java.lang.SuppressWarnings("all") 1709 public String getRelationshipStatus() { 1710 return this.relationshipStatus; 1711 } 1712 1713 /** 1714 * The user's relationship status. 1715 * 1716 * @deprecated since breaking change on 4 April, 2018 1717 */ 1718 @java.lang.Deprecated 1719 @java.lang.SuppressWarnings("all") 1720 public void setRelationshipStatus(final String relationshipStatus) { 1721 this.relationshipStatus = relationshipStatus; 1722 } 1723 1724 /** 1725 * The user's religion. 1726 * 1727 * @return The user's religion. 1728 * @deprecated since breaking change on 4 April, 2018 1729 */ 1730 @java.lang.Deprecated 1731 @java.lang.SuppressWarnings("all") 1732 public String getReligion() { 1733 return this.religion; 1734 } 1735 1736 /** 1737 * The user's religion. 1738 * 1739 * @deprecated since breaking change on 4 April, 2018 1740 */ 1741 @java.lang.Deprecated 1742 @java.lang.SuppressWarnings("all") 1743 public void setReligion(final String religion) { 1744 this.religion = religion; 1745 } 1746 1747 /** 1748 * Unspecific age range that this person's age fits into. 1749 * 1750 * @return The user's age range 1751 */ 1752 @java.lang.SuppressWarnings("all") 1753 public AgeRange getAgeRange() { 1754 return this.ageRange; 1755 } 1756 1757 /** 1758 * Unspecific age range that this person's age fits into. 1759 * 1760 */ 1761 @java.lang.SuppressWarnings("all") 1762 public void setAgeRange(final AgeRange ageRange) { 1763 this.ageRange = ageRange; 1764 } 1765 1766 /** 1767 * A link to the user's personal website. 1768 * 1769 * @return A link to the user's personal website. 1770 * @deprecated since breaking change on 4 April, 2018 1771 */ 1772 @java.lang.Deprecated 1773 @java.lang.SuppressWarnings("all") 1774 public String getWebsite() { 1775 return this.website; 1776 } 1777 1778 /** 1779 * A link to the user's personal website. 1780 * 1781 * @deprecated since breaking change on 4 April, 2018 1782 */ 1783 @java.lang.Deprecated 1784 @java.lang.SuppressWarnings("all") 1785 public void setWebsite(final String website) { 1786 this.website = website; 1787 } 1788 1789 /** 1790 * The user's birthday as a {@code String}. 1791 * <p> 1792 * Will always succeed, even if the user has specified month/year format only. If you'd like to use a typed version of 1793 * this accessor, call {@link #getBirthdayAsDate()} instead. 1794 * 1795 * @return The user's birthday as a {@code String}. 1796 */ 1797 @java.lang.SuppressWarnings("all") 1798 public String getBirthday() { 1799 return this.birthday; 1800 } 1801 1802 /** 1803 * The user's birthday as a {@code String}. 1804 * <p> 1805 * Will always succeed, even if the user has specified month/year format only. If you'd like to use a typed version of 1806 * this accessor, call {@link #getBirthdayAsDate()} instead. 1807 * 1808 */ 1809 @java.lang.SuppressWarnings("all") 1810 public void setBirthday(final String birthday) { 1811 this.birthday = birthday; 1812 } 1813 1814 /** 1815 * The proxied or contact email address granted by the user. 1816 * 1817 * @return The proxied or contact email address granted by the user. 1818 */ 1819 @java.lang.SuppressWarnings("all") 1820 public String getEmail() { 1821 return this.email; 1822 } 1823 1824 /** 1825 * The proxied or contact email address granted by the user. 1826 * 1827 */ 1828 @java.lang.SuppressWarnings("all") 1829 public void setEmail(final String email) { 1830 this.email = email; 1831 } 1832 1833 /** 1834 * The user's timezone offset. 1835 * 1836 * @return The user's timezone offset. 1837 */ 1838 @java.lang.SuppressWarnings("all") 1839 public Double getTimezone() { 1840 return this.timezone; 1841 } 1842 1843 /** 1844 * The user's timezone offset. 1845 * 1846 */ 1847 @java.lang.SuppressWarnings("all") 1848 public void setTimezone(final Double timezone) { 1849 this.timezone = timezone; 1850 } 1851 1852 /** 1853 * Indicates whether the account has been verified. This is distinct from the <code>is_verified</code> field. Someone 1854 * is considered verified if they take any of the following actions: 1855 * <ul> 1856 * <li>Register for mobile</li> 1857 * <li>Confirm their account via SMS</li> 1858 * <li>Enter a valid credit card</li> 1859 * </ul> 1860 * 1861 * @return User verification status. 1862 */ 1863 @java.lang.SuppressWarnings("all") 1864 public Boolean getVerified() { 1865 return this.verified; 1866 } 1867 1868 /** 1869 * Indicates whether the account has been verified. This is distinct from the <code>is_verified</code> field. Someone 1870 * is considered verified if they take any of the following actions: 1871 * <ul> 1872 * <li>Register for mobile</li> 1873 * <li>Confirm their account via SMS</li> 1874 * <li>Enter a valid credit card</li> 1875 * </ul> 1876 * 1877 */ 1878 @java.lang.SuppressWarnings("all") 1879 public void setVerified(final Boolean verified) { 1880 this.verified = verified; 1881 } 1882 1883 /** 1884 * Video upload limits 1885 * 1886 * @return Video upload limits 1887 */ 1888 @java.lang.SuppressWarnings("all") 1889 public VideoUploadLimits getVideoUploadLimits() { 1890 return this.videoUploadLimits; 1891 } 1892 1893 /** 1894 * Video upload limits 1895 */ 1896 @java.lang.SuppressWarnings("all") 1897 public void setVideoUploadLimits(final VideoUploadLimits videoUploadLimits) { 1898 this.videoUploadLimits = videoUploadLimits; 1899 } 1900 1901 /** 1902 * Can the viewer send a gift to this person? 1903 * 1904 * @deprecated Will be deprecated in all versions on Nov, 2020. 1905 * @return Can the viewer send a gift to this person? 1906 */ 1907 @java.lang.Deprecated 1908 @java.lang.SuppressWarnings("all") 1909 public Boolean getViewerCanSendGift() { 1910 return this.viewerCanSendGift; 1911 } 1912 1913 /** 1914 * Can the viewer send a gift to this person? 1915 * 1916 * @deprecated Will be deprecated in all versions on Nov, 2020. 1917 */ 1918 @java.lang.Deprecated 1919 @java.lang.SuppressWarnings("all") 1920 public void setViewerCanSendGift(final Boolean viewerCanSendGift) { 1921 this.viewerCanSendGift = viewerCanSendGift; 1922 } 1923 1924 /** 1925 * The user's gender. 1926 * 1927 * @return The user's gender. 1928 */ 1929 @java.lang.SuppressWarnings("all") 1930 public String getGender() { 1931 return this.gender; 1932 } 1933 1934 /** 1935 * The user's gender. 1936 * 1937 */ 1938 @java.lang.SuppressWarnings("all") 1939 public void setGender(final String gender) { 1940 this.gender = gender; 1941 } 1942 1943 /** 1944 * The user's political affiliation. 1945 * 1946 * @return The user's political affiliation. 1947 * @deprecated since breaking change on 4 April, 2018 1948 */ 1949 @java.lang.Deprecated 1950 @java.lang.SuppressWarnings("all") 1951 public String getPolitical() { 1952 return this.political; 1953 } 1954 1955 /** 1956 * The user's political affiliation. 1957 * 1958 * @deprecated since breaking change on 4 April, 2018 1959 */ 1960 @java.lang.Deprecated 1961 @java.lang.SuppressWarnings("all") 1962 public void setPolitical(final String political) { 1963 this.political = political; 1964 } 1965 1966 /** 1967 * The user's locale. 1968 * 1969 * @return The user's locale. 1970 */ 1971 @java.lang.SuppressWarnings("all") 1972 public String getLocale() { 1973 return this.locale; 1974 } 1975 1976 /** 1977 * The user's locale. 1978 * 1979 */ 1980 @java.lang.SuppressWarnings("all") 1981 public void setLocale(final String locale) { 1982 this.locale = locale; 1983 } 1984 1985 /** 1986 * The user's Facebook username. 1987 * 1988 * @return The user's Facebook username. 1989 * @since 1.6.5 1990 * @deprecated since graph api 2.0 1991 */ 1992 @java.lang.Deprecated 1993 @java.lang.SuppressWarnings("all") 1994 public String getUsername() { 1995 return this.username; 1996 } 1997 1998 /** 1999 * The user's Facebook username. 2000 * 2001 * @since 1.6.5 2002 * @deprecated since graph api 2.0 2003 */ 2004 @java.lang.Deprecated 2005 @java.lang.SuppressWarnings("all") 2006 public void setUsername(final String username) { 2007 this.username = username; 2008 } 2009 2010 /** 2011 * The person's PGP public key 2012 * 2013 * @return The person's PGP public key 2014 */ 2015 @java.lang.SuppressWarnings("all") 2016 public String getPublicKey() { 2017 return this.publicKey; 2018 } 2019 2020 /** 2021 * The person's PGP public key 2022 */ 2023 @java.lang.SuppressWarnings("all") 2024 public void setPublicKey(final String publicKey) { 2025 this.publicKey = publicKey; 2026 } 2027 2028 /** 2029 * The user's Likes 2030 * 2031 * @return the user's Likes 2032 */ 2033 @java.lang.SuppressWarnings("all") 2034 public Likes getLikes() { 2035 return this.likes; 2036 } 2037 2038 /** 2039 * The user's Likes 2040 */ 2041 @java.lang.SuppressWarnings("all") 2042 public void setLikes(final Likes likes) { 2043 this.likes = likes; 2044 } 2045 2046 /** 2047 * The user's picture, if provided. 2048 * 2049 * To force Facebook to fill the <code>picture</code> field you have to fetch the user with the 2050 * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>. 2051 * 2052 * @return the user's picture as ProfilePictureSource object 2053 * @since 1.6.16 2054 */ 2055 @Override 2056 @java.lang.SuppressWarnings("all") 2057 public ProfilePictureSource getPicture() { 2058 return this.picture; 2059 } 2060 2061 /** 2062 * The user's picture, if provided. 2063 * 2064 * To force Facebook to fill the <code>picture</code> field you have to fetch the user with the 2065 * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>. 2066 * 2067 * @since 1.6.16 2068 */ 2069 @java.lang.SuppressWarnings("all") 2070 public void setPicture(final ProfilePictureSource picture) { 2071 this.picture = picture; 2072 } 2073 2074 /** 2075 * Duplicate mapping for "hometown" since FB can return it differently in different situations. 2076 * 2077 * -- GETTER -- The user's hometown. 2078 * <p> 2079 * Sometimes this can be {@code null} - check {@link #getHometownName()} instead in that case. 2080 * 2081 * @return The user's hometown. 2082 */ 2083 @java.lang.SuppressWarnings("all") 2084 public NamedFacebookType getHometown() { 2085 return this.hometown; 2086 } 2087 2088 /** 2089 * Duplicate mapping for "hometown" since FB can return it differently in different situations. 2090 * 2091 * -- GETTER -- The user's hometown. 2092 * <p> 2093 * Sometimes this can be {@code null} - check {@link #getHometownName()} instead in that case. 2094 * 2095 */ 2096 @java.lang.SuppressWarnings("all") 2097 public void setHometown(final NamedFacebookType hometown) { 2098 this.hometown = hometown; 2099 } 2100 2101 /** 2102 * The user's current location. 2103 * 2104 * @return The user's current location. 2105 */ 2106 @java.lang.SuppressWarnings("all") 2107 public NamedFacebookType getLocation() { 2108 return this.location; 2109 } 2110 2111 /** 2112 * The user's current location. 2113 * 2114 */ 2115 @java.lang.SuppressWarnings("all") 2116 public void setLocation(final NamedFacebookType location) { 2117 this.location = location; 2118 } 2119 2120 /** 2121 * Security settings 2122 * 2123 * @deprecated Will be deprecated in all versions on Nov, 2020. 2124 * @return Security settings 2125 */ 2126 @java.lang.Deprecated 2127 @java.lang.SuppressWarnings("all") 2128 public SecuritySettings getSecuritySettings() { 2129 return this.securitySettings; 2130 } 2131 2132 /** 2133 * Security settings 2134 * 2135 * @deprecated Will be deprecated in all versions on Nov, 2020. 2136 */ 2137 @java.lang.Deprecated 2138 @java.lang.SuppressWarnings("all") 2139 public void setSecuritySettings(final SecuritySettings securitySettings) { 2140 this.securitySettings = securitySettings; 2141 } 2142 2143 /** 2144 * The time that the shared loginneeds to be upgraded to Business Manager by 2145 * 2146 * @return The time that the shared loginneeds to be upgraded to Business Manager by 2147 */ 2148 @java.lang.SuppressWarnings("all") 2149 public Date getSharedLoginUpgradeRequiredBy() { 2150 return this.sharedLoginUpgradeRequiredBy; 2151 } 2152 2153 /** 2154 * The time that the shared loginneeds to be upgraded to Business Manager by 2155 */ 2156 @java.lang.SuppressWarnings("all") 2157 public void setSharedLoginUpgradeRequiredBy(final Date sharedLoginUpgradeRequiredBy) { 2158 this.sharedLoginUpgradeRequiredBy = sharedLoginUpgradeRequiredBy; 2159 } 2160 2161 /** 2162 * The user's significant other. 2163 * 2164 * @return The user's significant other. 2165 */ 2166 @java.lang.SuppressWarnings("all") 2167 public NamedFacebookType getSignificantOther() { 2168 return this.significantOther; 2169 } 2170 2171 /** 2172 * The user's significant other. 2173 * 2174 */ 2175 @java.lang.SuppressWarnings("all") 2176 public void setSignificantOther(final NamedFacebookType significantOther) { 2177 this.significantOther = significantOther; 2178 } 2179 2180 /** 2181 * Platform test group 2182 * 2183 * @return Platform test group 2184 * @deprecated Will be deprecated in all versions on Nov, 2020. 2185 */ 2186 @java.lang.Deprecated 2187 @java.lang.SuppressWarnings("all") 2188 public Long getTestGroup() { 2189 return this.testGroup; 2190 } 2191 2192 /** 2193 * Platform test group 2194 * 2195 * @deprecated Will be deprecated in all versions on Nov, 2020. 2196 */ 2197 @java.lang.Deprecated 2198 @java.lang.SuppressWarnings("all") 2199 public void setTestGroup(final Long testGroup) { 2200 this.testGroup = testGroup; 2201 } 2202 2203 /** 2204 * Date the user's profile was updated. 2205 * 2206 * @return Date the user's profile was updated. 2207 */ 2208 @java.lang.SuppressWarnings("all") 2209 public Date getUpdatedTime() { 2210 return this.updatedTime; 2211 } 2212 2213 /** 2214 * Date the user's profile was updated. 2215 * 2216 */ 2217 @java.lang.SuppressWarnings("all") 2218 public void setUpdatedTime(final Date updatedTime) { 2219 this.updatedTime = updatedTime; 2220 } 2221 2222 /** 2223 * An anonymous, but unique identifier for the user. 2224 * 2225 * @return An anonymous, but unique identifier for the user. 2226 */ 2227 @java.lang.SuppressWarnings("all") 2228 public String getThirdPartyId() { 2229 return this.thirdPartyId; 2230 } 2231 2232 /** 2233 * An anonymous, but unique identifier for the user. 2234 * 2235 */ 2236 @java.lang.SuppressWarnings("all") 2237 public void setThirdPartyId(final String thirdPartyId) { 2238 this.thirdPartyId = thirdPartyId; 2239 } 2240 2241 /** 2242 * The user's currency preferences. 2243 * <p> 2244 * Further documentation available on Facebook's 2245 * <a href="https://developers.facebook.com/docs/payments/user_currency">Displaying prices in user's currency</a> 2246 * page. 2247 * 2248 * @return The user's currency preferences. 2249 * @since 1.6.12 2250 */ 2251 @java.lang.SuppressWarnings("all") 2252 public Currency getCurrency() { 2253 return this.currency; 2254 } 2255 2256 /** 2257 * The user's currency preferences. 2258 * <p> 2259 * Further documentation available on Facebook's 2260 * <a href="https://developers.facebook.com/docs/payments/user_currency">Displaying prices in user's currency</a> 2261 * page. 2262 * 2263 * @since 1.6.12 2264 */ 2265 @java.lang.SuppressWarnings("all") 2266 public void setCurrency(final Currency currency) { 2267 this.currency = currency; 2268 } 2269 2270 /** 2271 * This returns a string which is the same for this person across all the apps managed by the same Business Manager. 2272 * 2273 * @return string which is the same for a person across all apps managed by one company 2274 * @since 1.7.0 2275 */ 2276 @java.lang.SuppressWarnings("all") 2277 public String getTokenForBusiness() { 2278 return this.tokenForBusiness; 2279 } 2280 2281 /** 2282 * This returns a string which is the same for this person across all the apps managed by the same Business Manager. 2283 * 2284 * @since 1.7.0 2285 */ 2286 @java.lang.SuppressWarnings("all") 2287 public void setTokenForBusiness(final String tokenForBusiness) { 2288 this.tokenForBusiness = tokenForBusiness; 2289 } 2290 2291 /** 2292 * Install type. 2293 * 2294 * @return Install type. 2295 */ 2296 @java.lang.SuppressWarnings("all") 2297 public String getInstallType() { 2298 return this.installType; 2299 } 2300 2301 /** 2302 * Install type. 2303 */ 2304 @java.lang.SuppressWarnings("all") 2305 public void setInstallType(final String installType) { 2306 this.installType = installType; 2307 } 2308 2309 /** 2310 * Is the app making the request installed? 2311 * 2312 * @return Is the app making the request installed? 2313 */ 2314 @java.lang.SuppressWarnings("all") 2315 public Boolean getInstalled() { 2316 return this.installed; 2317 } 2318 2319 /** 2320 * Is the app making the request installed? 2321 */ 2322 @java.lang.SuppressWarnings("all") 2323 public void setInstalled(final Boolean installed) { 2324 this.installed = installed; 2325 } 2326 2327 /** 2328 * Is this a shared login (e.g. a gray user) 2329 * 2330 * @deprecated Will be deprecated in all versions on Nov, 2020. 2331 * @return Is this a shared login (e.g. a gray user) 2332 */ 2333 @java.lang.Deprecated 2334 @java.lang.SuppressWarnings("all") 2335 public Boolean getIsSharedLogin() { 2336 return this.isSharedLogin; 2337 } 2338 2339 /** 2340 * Is this a shared login (e.g. a gray user) 2341 * 2342 * @deprecated Will be deprecated in all versions on Nov, 2020. 2343 */ 2344 @java.lang.Deprecated 2345 @java.lang.SuppressWarnings("all") 2346 public void setIsSharedLogin(final Boolean isSharedLogin) { 2347 this.isSharedLogin = isSharedLogin; 2348 } 2349 2350 /** 2351 * People with large numbers of followers can have the authenticity of their identity manually verified by Facebook. 2352 * This field indicates whether the person's profile is verified in this way. 2353 * 2354 * This is distinct from the <code>verified</code> field 2355 * 2356 * @return Is the user verified 2357 */ 2358 @java.lang.SuppressWarnings("all") 2359 public Boolean getIsVerified() { 2360 return this.isVerified; 2361 } 2362 2363 /** 2364 * People with large numbers of followers can have the authenticity of their identity manually verified by Facebook. 2365 * This field indicates whether the person's profile is verified in this way. 2366 * 2367 * This is distinct from the <code>verified</code> field 2368 */ 2369 @java.lang.SuppressWarnings("all") 2370 public void setIsVerified(final Boolean isVerified) { 2371 this.isVerified = isVerified; 2372 } 2373 2374 /** 2375 * if the current user is a guest user. should always return false. 2376 */ 2377 @java.lang.SuppressWarnings("all") 2378 public Boolean getIsGuestUser() { 2379 return this.isGuestUser; 2380 } 2381 2382 /** 2383 * if the current user is a guest user. should always return false. 2384 */ 2385 @java.lang.SuppressWarnings("all") 2386 public void setIsGuestUser(final Boolean isGuestUser) { 2387 this.isGuestUser = isGuestUser; 2388 } 2389}