001// Generated by delombok at Tue Dec 10 13:42:03 UTC 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.send;
024
025import java.util.ArrayList;
026import java.util.List;
027import java.util.Locale;
028import com.restfb.Facebook;
029import com.restfb.types.AbstractFacebookType;
030
031public class PersistentMenu extends AbstractFacebookType {
032  /**
033   * Locale of the menu.
034   *
035   * We will show this menu when user locale matches the provided locale. You must at least specify a menu for the
036   * default locale. This is the menu we will fall back to if we don't find another matching the user's locale. See the
037   * list of supported locales.
038   */
039  @Facebook
040  private String locale;
041  /**
042   * Set to true to disable user input in the menu. This means users will only be able to interact with your bot via the
043   * menu, postbacks, buttons, and webviews.
044   */
045  @Facebook("composer_input_disabled")
046  private Boolean composerInputDisabled;
047  /**
048   * Top-level menu items that user can interact with.
049   */
050  @Facebook("call_to_actions")
051  private List<MenuItem> callToActions;
052
053  public PersistentMenu() {
054    this("default");
055  }
056
057  public PersistentMenu(String locale) {
058    this.locale = locale;
059  }
060
061  public PersistentMenu(Locale locale) {
062    this(locale.toString().toLowerCase());
063  }
064
065  public void addCallToAction(MenuItem item) {
066    if (callToActions == null) {
067      callToActions = new ArrayList<>();
068    }
069    callToActions.add(item);
070  }
071
072  /**
073   * Locale of the menu.
074   *
075   * We will show this menu when user locale matches the provided locale. You must at least specify a menu for the
076   * default locale. This is the menu we will fall back to if we don't find another matching the user's locale. See the
077   * list of supported locales.
078   */
079  @java.lang.SuppressWarnings("all")
080  public String getLocale() {
081    return this.locale;
082  }
083
084  /**
085   * Set to true to disable user input in the menu. This means users will only be able to interact with your bot via the
086   * menu, postbacks, buttons, and webviews.
087   */
088  @java.lang.SuppressWarnings("all")
089  public void setComposerInputDisabled(final Boolean composerInputDisabled) {
090    this.composerInputDisabled = composerInputDisabled;
091  }
092
093  /**
094   * Set to true to disable user input in the menu. This means users will only be able to interact with your bot via the
095   * menu, postbacks, buttons, and webviews.
096   */
097  @java.lang.SuppressWarnings("all")
098  public Boolean getComposerInputDisabled() {
099    return this.composerInputDisabled;
100  }
101
102  /**
103   * Top-level menu items that user can interact with.
104   */
105  @java.lang.SuppressWarnings("all")
106  public List<MenuItem> getCallToActions() {
107    return this.callToActions;
108  }
109}