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 java.util.Collections.unmodifiableList; 026import java.util.ArrayList; 027import java.util.List; 028import com.restfb.Facebook; 029import com.restfb.JsonMapper; 030import com.restfb.types.ads.AppLinks; 031import com.restfb.types.features.HasCover; 032import com.restfb.types.features.HasProfilePicture; 033 034/** 035 * Represents the <a href="https://developers.facebook.com/docs/places/fields">SearchPlace</a> 036 */ 037public class SearchPlace extends NamedFacebookType implements HasProfilePicture, HasCover { 038 /** 039 * Information about the Place provided by the Page administrator. 040 */ 041 @Facebook 042 private String about; 043 /** 044 * AppLinks to the Place on various devices. 045 */ 046 @Facebook("app_links") 047 private AppLinks appLinks; 048 @Facebook("category_list") 049 private List<Category> categoryList = new ArrayList<>(); 050 /** 051 * The number of checkins at this Place. 052 */ 053 @Facebook 054 private Long checkins; 055 /** 056 * Information about the cover photo. 057 */ 058 @Facebook 059 private CoverPhoto cover; 060 /** 061 * The description of the Place provided by the Page administrator. 062 */ 063 @Facebook 064 private String description; 065 /** 066 * The social sentence and the like count information for this Place. This is the same information used for the like 067 * button. 068 */ 069 @Facebook 070 private Page.Engagement engagement; 071 /** 072 */ 073 @Facebook 074 private String hours; 075 /** 076 * Indicates whether this Place is always open. 077 */ 078 @Facebook("is_always_open") 079 private Boolean isAlwaysOpen; 080 /** 081 * Indicates whether this Place is permanently closed. 082 */ 083 @Facebook("is_permanently_closed") 084 private Boolean isPermanentlyClosed; 085 /** 086 * Pages with a large number of followers can be manually verified by Facebook as having an authentic identity. This 087 * field indicates whether the Page has been verified by this process. 088 */ 089 @Facebook("is_verified") 090 private Boolean isVerified; 091 /** 092 * The URL of the Facebook Page. 093 */ 094 @Facebook 095 private String link; 096 /** 097 * Location information about the Place. E.g., latitude and longitude, and address. 098 */ 099 @Facebook 100 private Location location; 101 /** 102 * The overall page rating, based on rating survey from users, on a scale of 1-5. 103 * 104 * This value is normalized, and is not guaranteed to be a strict average of user ratings. 105 */ 106 @Facebook("overall_star_rating") 107 private Double overallStarRating; 108 /** 109 * The Page node corresponding to the Place. 110 */ 111 @Facebook 112 private Page page; 113 /** 114 * Parking information about the Place. 115 */ 116 @Facebook 117 private Page.PageParking parking; 118 /** 119 * Payment options accepted by the Place. Applicable to restaurants and nightlife. 120 */ 121 @Facebook("payment_options") 122 private Page.PagePaymentOptions paymentOptions; 123 /** 124 * The Place's telephone number. 125 */ 126 @Facebook 127 private String phone; 128 /** 129 * The pages's profile picture, if provided. 130 * 131 * To force Facebook to fill the <code>picture</code> field you have to fetch the page with the 132 * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>. 133 */ 134 private ProfilePictureSource picture; 135 @Facebook("picture") 136 private transient String rawPicture; 137 /** 138 * Price range of the business. 139 * 140 * Applicable to Restaurants or Nightlife. Can be one of $ (0-10), $$ (10-30), $$$ (30-50), $$$$ (50+), or Unspecified 141 */ 142 @Facebook("price_range") 143 private String priceRange; 144 /** 145 * Number of ratings for the Place 146 */ 147 @Facebook("rating_count") 148 private Long ratingCount; 149 /** 150 * The services that the restaurant provides. 151 */ 152 @Facebook("restaurant_services") 153 private Page.PageRestaurantServices restaurantServices; 154 /** 155 * The restaurant's specialties. 156 */ 157 @Facebook("restaurant_specialties") 158 private Page.PageRestaurantSpecialties restaurantSpecialties; 159 /** 160 * The Place's complete postal address, on a single line. 161 */ 162 @Facebook("single_line_address") 163 private String singleLineAddress; 164 /** 165 * The URL of the Place's website. 166 */ 167 @Facebook 168 private String website; 169 /** 170 * Photos for the Place. 171 * 172 * By default, this edge returns the profile photos for the Place. You can also use an optional type parameter with 173 * the value uploaded to get the photos uploaded by the Place. 174 */ 175 @Facebook 176 private List<Photo> photos = new ArrayList<>(); 177 /** 178 * The native component workflows for this Place. 179 * 180 * Workflows allow people to perform actions like requesting appointments, buying tickets, and ordering from 181 * restaurants on Facebook 182 */ 183 @Facebook 184 private List<PagesPlatformComponentFlowServiceConfig> workflows = new ArrayList<>(); 185 186 @JsonMapper.JsonMappingCompleted 187 protected void fillProfilePicture(JsonMapper jsonMapper) { 188 picture = convertPicture(jsonMapper, rawPicture); 189 } 190 191 /** 192 * The Place's categories. 193 * 194 * @return The Place's categories. 195 */ 196 public List<Category> getCategoryList() { 197 return unmodifiableList(categoryList); 198 } 199 200 public boolean addCategory(Category category) { 201 return categoryList.add(category); 202 } 203 204 public boolean removeCategory(Category category) { 205 return categoryList.remove(category); 206 } 207 208 209 public static class PagesPlatformComponentFlowServiceConfig extends FacebookType { 210 @Facebook 211 private String deeplink; 212 @Facebook 213 private String label; 214 @Facebook("flow_category") 215 private String flowCategory; 216 217 @java.lang.SuppressWarnings("all") 218 public String getDeeplink() { 219 return this.deeplink; 220 } 221 222 @java.lang.SuppressWarnings("all") 223 public void setDeeplink(final String deeplink) { 224 this.deeplink = deeplink; 225 } 226 227 @java.lang.SuppressWarnings("all") 228 public String getLabel() { 229 return this.label; 230 } 231 232 @java.lang.SuppressWarnings("all") 233 public void setLabel(final String label) { 234 this.label = label; 235 } 236 237 @java.lang.SuppressWarnings("all") 238 public String getFlowCategory() { 239 return this.flowCategory; 240 } 241 242 @java.lang.SuppressWarnings("all") 243 public void setFlowCategory(final String flowCategory) { 244 this.flowCategory = flowCategory; 245 } 246 } 247 248 /** 249 * Information about the Place provided by the Page administrator. 250 * 251 * @return Information about the Place provided by the Page administrator. 252 */ 253 @java.lang.SuppressWarnings("all") 254 public String getAbout() { 255 return this.about; 256 } 257 258 /** 259 * Information about the Place provided by the Page administrator. 260 */ 261 @java.lang.SuppressWarnings("all") 262 public void setAbout(final String about) { 263 this.about = about; 264 } 265 266 /** 267 * AppLinks to the Place on various devices. 268 * 269 * @return AppLinks to the Place on various devices. 270 */ 271 @java.lang.SuppressWarnings("all") 272 public AppLinks getAppLinks() { 273 return this.appLinks; 274 } 275 276 /** 277 * AppLinks to the Place on various devices. 278 */ 279 @java.lang.SuppressWarnings("all") 280 public void setAppLinks(final AppLinks appLinks) { 281 this.appLinks = appLinks; 282 } 283 284 /** 285 * The number of checkins at this Place. 286 * 287 * @return The number of checkins at this Place. 288 */ 289 @java.lang.SuppressWarnings("all") 290 public Long getCheckins() { 291 return this.checkins; 292 } 293 294 /** 295 * The number of checkins at this Place. 296 */ 297 @java.lang.SuppressWarnings("all") 298 public void setCheckins(final Long checkins) { 299 this.checkins = checkins; 300 } 301 302 /** 303 * Information about the cover photo. 304 * 305 * @return Information about the cover photo. 306 */ 307 @Override 308 @java.lang.SuppressWarnings("all") 309 public CoverPhoto getCover() { 310 return this.cover; 311 } 312 313 /** 314 * Information about the cover photo. 315 */ 316 @java.lang.SuppressWarnings("all") 317 public void setCover(final CoverPhoto cover) { 318 this.cover = cover; 319 } 320 321 /** 322 * The description of the Place provided by the Page administrator. 323 * 324 * @return The description of the Place provided by the Page administrator. 325 */ 326 @java.lang.SuppressWarnings("all") 327 public String getDescription() { 328 return this.description; 329 } 330 331 /** 332 * The description of the Place provided by the Page administrator. 333 */ 334 @java.lang.SuppressWarnings("all") 335 public void setDescription(final String description) { 336 this.description = description; 337 } 338 339 /** 340 * The social sentence and the like count information for this Place. This is the same information used for the like 341 * button. 342 * 343 * @return The social sentence and the like count information for this Place. 344 */ 345 @java.lang.SuppressWarnings("all") 346 public Page.Engagement getEngagement() { 347 return this.engagement; 348 } 349 350 /** 351 * The social sentence and the like count information for this Place. This is the same information used for the like 352 * button. 353 */ 354 @java.lang.SuppressWarnings("all") 355 public void setEngagement(final Page.Engagement engagement) { 356 this.engagement = engagement; 357 } 358 359 /** 360 */ 361 @java.lang.SuppressWarnings("all") 362 public String getHours() { 363 return this.hours; 364 } 365 366 /** 367 */ 368 @java.lang.SuppressWarnings("all") 369 public void setHours(final String hours) { 370 this.hours = hours; 371 } 372 373 /** 374 * Indicates whether this Place is always open. 375 * 376 * @return Indicates whether this Place is always open. 377 */ 378 @java.lang.SuppressWarnings("all") 379 public Boolean getIsAlwaysOpen() { 380 return this.isAlwaysOpen; 381 } 382 383 /** 384 * Indicates whether this Place is always open. 385 */ 386 @java.lang.SuppressWarnings("all") 387 public void setIsAlwaysOpen(final Boolean isAlwaysOpen) { 388 this.isAlwaysOpen = isAlwaysOpen; 389 } 390 391 /** 392 * Indicates whether this Place is permanently closed. 393 * 394 * @return Indicates whether this Place is permanently closed. 395 */ 396 @java.lang.SuppressWarnings("all") 397 public Boolean getIsPermanentlyClosed() { 398 return this.isPermanentlyClosed; 399 } 400 401 /** 402 * Indicates whether this Place is permanently closed. 403 */ 404 @java.lang.SuppressWarnings("all") 405 public void setIsPermanentlyClosed(final Boolean isPermanentlyClosed) { 406 this.isPermanentlyClosed = isPermanentlyClosed; 407 } 408 409 /** 410 * Pages with a large number of followers can be manually verified by Facebook as having an authentic identity. This 411 * field indicates whether the Page has been verified by this process. 412 */ 413 @java.lang.SuppressWarnings("all") 414 public Boolean getIsVerified() { 415 return this.isVerified; 416 } 417 418 /** 419 * Pages with a large number of followers can be manually verified by Facebook as having an authentic identity. This 420 * field indicates whether the Page has been verified by this process. 421 */ 422 @java.lang.SuppressWarnings("all") 423 public void setIsVerified(final Boolean isVerified) { 424 this.isVerified = isVerified; 425 } 426 427 /** 428 * The URL of the Facebook Page. 429 * 430 * @return The URL of the Facebook Page. 431 */ 432 @java.lang.SuppressWarnings("all") 433 public String getLink() { 434 return this.link; 435 } 436 437 /** 438 * The URL of the Facebook Page. 439 */ 440 @java.lang.SuppressWarnings("all") 441 public void setLink(final String link) { 442 this.link = link; 443 } 444 445 /** 446 * Location information about the Place. E.g., latitude and longitude, and address. 447 * 448 * @return Location information about the Place. E.g., latitude and longitude, and address. 449 */ 450 @java.lang.SuppressWarnings("all") 451 public Location getLocation() { 452 return this.location; 453 } 454 455 /** 456 * Location information about the Place. E.g., latitude and longitude, and address. 457 */ 458 @java.lang.SuppressWarnings("all") 459 public void setLocation(final Location location) { 460 this.location = location; 461 } 462 463 /** 464 * The overall page rating, based on rating survey from users, on a scale of 1-5. 465 * 466 * This value is normalized, and is not guaranteed to be a strict average of user ratings. 467 * 468 * @return The overall page rating, based on rating survey from users, on a scale of 1-5. 469 */ 470 @java.lang.SuppressWarnings("all") 471 public Double getOverallStarRating() { 472 return this.overallStarRating; 473 } 474 475 /** 476 * The overall page rating, based on rating survey from users, on a scale of 1-5. 477 * 478 * This value is normalized, and is not guaranteed to be a strict average of user ratings. 479 */ 480 @java.lang.SuppressWarnings("all") 481 public void setOverallStarRating(final Double overallStarRating) { 482 this.overallStarRating = overallStarRating; 483 } 484 485 /** 486 * The Page node corresponding to the Place. 487 * 488 * @return The Page node corresponding to the Place. 489 */ 490 @java.lang.SuppressWarnings("all") 491 public Page getPage() { 492 return this.page; 493 } 494 495 /** 496 * The Page node corresponding to the Place. 497 */ 498 @java.lang.SuppressWarnings("all") 499 public void setPage(final Page page) { 500 this.page = page; 501 } 502 503 /** 504 * Parking information about the Place. 505 * 506 * @return Parking information about the Place. 507 */ 508 @java.lang.SuppressWarnings("all") 509 public Page.PageParking getParking() { 510 return this.parking; 511 } 512 513 /** 514 * Parking information about the Place. 515 */ 516 @java.lang.SuppressWarnings("all") 517 public void setParking(final Page.PageParking parking) { 518 this.parking = parking; 519 } 520 521 /** 522 * Payment options accepted by the Place. Applicable to restaurants and nightlife. 523 * 524 * @return Payment options accepted by the Place. 525 */ 526 @java.lang.SuppressWarnings("all") 527 public Page.PagePaymentOptions getPaymentOptions() { 528 return this.paymentOptions; 529 } 530 531 /** 532 * Payment options accepted by the Place. Applicable to restaurants and nightlife. 533 */ 534 @java.lang.SuppressWarnings("all") 535 public void setPaymentOptions(final Page.PagePaymentOptions paymentOptions) { 536 this.paymentOptions = paymentOptions; 537 } 538 539 /** 540 * The Place's telephone number. 541 * 542 * @return The Place's telephone number. 543 */ 544 @java.lang.SuppressWarnings("all") 545 public String getPhone() { 546 return this.phone; 547 } 548 549 /** 550 * The Place's telephone number. 551 */ 552 @java.lang.SuppressWarnings("all") 553 public void setPhone(final String phone) { 554 this.phone = phone; 555 } 556 557 /** 558 * The pages's profile picture, if provided. 559 * 560 * To force Facebook to fill the <code>picture</code> field you have to fetch the page with the 561 * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>. 562 * 563 * @return the page's profile picture as ProfilePictureSource object 564 */ 565 @Override 566 @java.lang.SuppressWarnings("all") 567 public ProfilePictureSource getPicture() { 568 return this.picture; 569 } 570 571 /** 572 * The pages's profile picture, if provided. 573 * 574 * To force Facebook to fill the <code>picture</code> field you have to fetch the page with the 575 * <code>fields=picture</code> parameter, otherwise the picture is <code>null</code>. 576 */ 577 @java.lang.SuppressWarnings("all") 578 public void setPicture(final ProfilePictureSource picture) { 579 this.picture = picture; 580 } 581 582 /** 583 * Price range of the business. 584 * 585 * Applicable to Restaurants or Nightlife. Can be one of $ (0-10), $$ (10-30), $$$ (30-50), $$$$ (50+), or Unspecified 586 * 587 * @return Price range of the business. 588 */ 589 @java.lang.SuppressWarnings("all") 590 public String getPriceRange() { 591 return this.priceRange; 592 } 593 594 /** 595 * Price range of the business. 596 * 597 * Applicable to Restaurants or Nightlife. Can be one of $ (0-10), $$ (10-30), $$$ (30-50), $$$$ (50+), or Unspecified 598 */ 599 @java.lang.SuppressWarnings("all") 600 public void setPriceRange(final String priceRange) { 601 this.priceRange = priceRange; 602 } 603 604 /** 605 * Number of ratings for the Place 606 * 607 * @return Number of ratings for the Place 608 */ 609 @java.lang.SuppressWarnings("all") 610 public Long getRatingCount() { 611 return this.ratingCount; 612 } 613 614 /** 615 * Number of ratings for the Place 616 */ 617 @java.lang.SuppressWarnings("all") 618 public void setRatingCount(final Long ratingCount) { 619 this.ratingCount = ratingCount; 620 } 621 622 /** 623 * The services that the restaurant provides. 624 * 625 * @return The services that the restaurant provides. 626 */ 627 @java.lang.SuppressWarnings("all") 628 public Page.PageRestaurantServices getRestaurantServices() { 629 return this.restaurantServices; 630 } 631 632 /** 633 * The services that the restaurant provides. 634 */ 635 @java.lang.SuppressWarnings("all") 636 public void setRestaurantServices(final Page.PageRestaurantServices restaurantServices) { 637 this.restaurantServices = restaurantServices; 638 } 639 640 /** 641 * The restaurant's specialties. 642 * 643 * @return The restaurant's specialties. 644 */ 645 @java.lang.SuppressWarnings("all") 646 public Page.PageRestaurantSpecialties getRestaurantSpecialties() { 647 return this.restaurantSpecialties; 648 } 649 650 /** 651 * The restaurant's specialties. 652 */ 653 @java.lang.SuppressWarnings("all") 654 public void setRestaurantSpecialties(final Page.PageRestaurantSpecialties restaurantSpecialties) { 655 this.restaurantSpecialties = restaurantSpecialties; 656 } 657 658 /** 659 * The Place's complete postal address, on a single line. 660 * 661 * @return The Place's complete postal address, on a single line. 662 */ 663 @java.lang.SuppressWarnings("all") 664 public String getSingleLineAddress() { 665 return this.singleLineAddress; 666 } 667 668 /** 669 * The Place's complete postal address, on a single line. 670 */ 671 @java.lang.SuppressWarnings("all") 672 public void setSingleLineAddress(final String singleLineAddress) { 673 this.singleLineAddress = singleLineAddress; 674 } 675 676 /** 677 * The URL of the Place's website. 678 * 679 * @return The URL of the Place's website. 680 */ 681 @java.lang.SuppressWarnings("all") 682 public String getWebsite() { 683 return this.website; 684 } 685 686 /** 687 * The URL of the Place's website. 688 */ 689 @java.lang.SuppressWarnings("all") 690 public void setWebsite(final String website) { 691 this.website = website; 692 } 693 694 /** 695 * Photos for the Place. 696 * 697 * By default, this edge returns the profile photos for the Place. You can also use an optional type parameter with 698 * the value uploaded to get the photos uploaded by the Place. 699 */ 700 @java.lang.SuppressWarnings("all") 701 public List<Photo> getPhotos() { 702 return this.photos; 703 } 704 705 /** 706 * Photos for the Place. 707 * 708 * By default, this edge returns the profile photos for the Place. You can also use an optional type parameter with 709 * the value uploaded to get the photos uploaded by the Place. 710 */ 711 @java.lang.SuppressWarnings("all") 712 public void setPhotos(final List<Photo> photos) { 713 this.photos = photos; 714 } 715 716 /** 717 * The native component workflows for this Place. 718 * 719 * Workflows allow people to perform actions like requesting appointments, buying tickets, and ordering from 720 * restaurants on Facebook 721 */ 722 @java.lang.SuppressWarnings("all") 723 public List<PagesPlatformComponentFlowServiceConfig> getWorkflows() { 724 return this.workflows; 725 } 726 727 /** 728 * The native component workflows for this Place. 729 * 730 * Workflows allow people to perform actions like requesting appointments, buying tickets, and ordering from 731 * restaurants on Facebook 732 */ 733 @java.lang.SuppressWarnings("all") 734 public void setWorkflows(final List<PagesPlatformComponentFlowServiceConfig> workflows) { 735 this.workflows = workflows; 736 } 737}