All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.messenger4j.messengerprofile.MessengerSettings Maven / Gradle / Ivy

// Generated by delombok at Tue May 07 22:31:27 CEST 2019
package com.github.messenger4j.messengerprofile;

import com.github.messenger4j.internal.Lists;
import com.github.messenger4j.messengerprofile.getstarted.StartButton;
import com.github.messenger4j.messengerprofile.greeting.Greeting;
import com.github.messenger4j.messengerprofile.homeurl.HomeUrl;
import com.github.messenger4j.messengerprofile.persistentmenu.PersistentMenu;
import com.github.messenger4j.messengerprofile.targetaudience.TargetAudience;
import java.net.URL;
import java.util.List;
import java.util.Optional;
import lombok.NonNull;

/**
 * @author Max Grabenhorst
 * @since 1.0.0
 */
public final class MessengerSettings {
  private final Optional startButton;
  private final Optional greeting;
  private final Optional persistentMenu;
  private final Optional> whitelistedDomains;
  private final Optional accountLinkingUrl;
  private final Optional homeUrl;
  private final Optional targetAudience;

  private MessengerSettings(
      Optional startButton,
      Optional greeting,
      Optional persistentMenu,
      Optional> whitelistedDomains,
      Optional accountLinkingUrl,
      Optional homeUrl,
      Optional targetAudience) {
    this.startButton = startButton;
    this.greeting = greeting;
    this.persistentMenu = persistentMenu;
    this.whitelistedDomains = whitelistedDomains.map(Lists::immutableList);
    this.accountLinkingUrl = accountLinkingUrl;
    this.homeUrl = homeUrl;
    this.targetAudience = targetAudience;
  }

  public static MessengerSettings create(
      @NonNull Optional startButton,
      @NonNull Optional greeting,
      @NonNull Optional persistentMenu,
      @NonNull Optional> whitelistedDomains,
      @NonNull Optional accountLinkingUrl,
      @NonNull Optional homeUrl,
      @NonNull Optional targetAudience) {
    if (startButton == null) {
      throw new java.lang.IllegalArgumentException("startButton is marked @NonNull but is null");
    }
    if (greeting == null) {
      throw new java.lang.IllegalArgumentException("greeting is marked @NonNull but is null");
    }
    if (persistentMenu == null) {
      throw new java.lang.IllegalArgumentException("persistentMenu is marked @NonNull but is null");
    }
    if (whitelistedDomains == null) {
      throw new java.lang.IllegalArgumentException(
          "whitelistedDomains is marked @NonNull but is null");
    }
    if (accountLinkingUrl == null) {
      throw new java.lang.IllegalArgumentException(
          "accountLinkingUrl is marked @NonNull but is null");
    }
    if (homeUrl == null) {
      throw new java.lang.IllegalArgumentException("homeUrl is marked @NonNull but is null");
    }
    if (targetAudience == null) {
      throw new java.lang.IllegalArgumentException("targetAudience is marked @NonNull but is null");
    }
    return new MessengerSettings(
        startButton,
        greeting,
        persistentMenu,
        whitelistedDomains,
        accountLinkingUrl,
        homeUrl,
        targetAudience);
  }

  public Optional startButton() {
    return startButton;
  }

  public Optional greeting() {
    return greeting;
  }

  public Optional persistentMenu() {
    return persistentMenu;
  }

  public Optional> whitelistedDomains() {
    return whitelistedDomains;
  }

  public Optional accountLinkingUrl() {
    return accountLinkingUrl;
  }

  public Optional homeUrl() {
    return homeUrl;
  }

  public Optional targetAudience() {
    return targetAudience;
  }

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public java.lang.String toString() {
    return "MessengerSettings(startButton="
        + this.startButton
        + ", greeting="
        + this.greeting
        + ", persistentMenu="
        + this.persistentMenu
        + ", whitelistedDomains="
        + this.whitelistedDomains
        + ", accountLinkingUrl="
        + this.accountLinkingUrl
        + ", homeUrl="
        + this.homeUrl
        + ", targetAudience="
        + this.targetAudience
        + ")";
  }

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public boolean equals(final java.lang.Object o) {
    if (o == this) return true;
    if (!(o instanceof MessengerSettings)) return false;
    final MessengerSettings other = (MessengerSettings) o;
    final java.lang.Object this$startButton = this.startButton;
    final java.lang.Object other$startButton = other.startButton;
    if (this$startButton == null
        ? other$startButton != null
        : !this$startButton.equals(other$startButton)) return false;
    final java.lang.Object this$greeting = this.greeting;
    final java.lang.Object other$greeting = other.greeting;
    if (this$greeting == null ? other$greeting != null : !this$greeting.equals(other$greeting))
      return false;
    final java.lang.Object this$persistentMenu = this.persistentMenu;
    final java.lang.Object other$persistentMenu = other.persistentMenu;
    if (this$persistentMenu == null
        ? other$persistentMenu != null
        : !this$persistentMenu.equals(other$persistentMenu)) return false;
    final java.lang.Object this$whitelistedDomains = this.whitelistedDomains;
    final java.lang.Object other$whitelistedDomains = other.whitelistedDomains;
    if (this$whitelistedDomains == null
        ? other$whitelistedDomains != null
        : !this$whitelistedDomains.equals(other$whitelistedDomains)) return false;
    final java.lang.Object this$accountLinkingUrl = this.accountLinkingUrl;
    final java.lang.Object other$accountLinkingUrl = other.accountLinkingUrl;
    if (this$accountLinkingUrl == null
        ? other$accountLinkingUrl != null
        : !this$accountLinkingUrl.equals(other$accountLinkingUrl)) return false;
    final java.lang.Object this$homeUrl = this.homeUrl;
    final java.lang.Object other$homeUrl = other.homeUrl;
    if (this$homeUrl == null ? other$homeUrl != null : !this$homeUrl.equals(other$homeUrl))
      return false;
    final java.lang.Object this$targetAudience = this.targetAudience;
    final java.lang.Object other$targetAudience = other.targetAudience;
    if (this$targetAudience == null
        ? other$targetAudience != null
        : !this$targetAudience.equals(other$targetAudience)) return false;
    return true;
  }

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public int hashCode() {
    final int PRIME = 59;
    int result = 1;
    final java.lang.Object $startButton = this.startButton;
    result = result * PRIME + ($startButton == null ? 43 : $startButton.hashCode());
    final java.lang.Object $greeting = this.greeting;
    result = result * PRIME + ($greeting == null ? 43 : $greeting.hashCode());
    final java.lang.Object $persistentMenu = this.persistentMenu;
    result = result * PRIME + ($persistentMenu == null ? 43 : $persistentMenu.hashCode());
    final java.lang.Object $whitelistedDomains = this.whitelistedDomains;
    result = result * PRIME + ($whitelistedDomains == null ? 43 : $whitelistedDomains.hashCode());
    final java.lang.Object $accountLinkingUrl = this.accountLinkingUrl;
    result = result * PRIME + ($accountLinkingUrl == null ? 43 : $accountLinkingUrl.hashCode());
    final java.lang.Object $homeUrl = this.homeUrl;
    result = result * PRIME + ($homeUrl == null ? 43 : $homeUrl.hashCode());
    final java.lang.Object $targetAudience = this.targetAudience;
    result = result * PRIME + ($targetAudience == null ? 43 : $targetAudience.hashCode());
    return result;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy