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

com.github.messenger4j.messengerprofile.persistentmenu.action.UrlCallToAction Maven / Gradle / Ivy

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

import static java.util.Optional.empty;

import com.github.messenger4j.common.WebviewHeightRatio;
import com.github.messenger4j.common.WebviewShareButtonState;
import com.google.gson.annotations.SerializedName;
import java.net.URL;
import java.util.Optional;
import lombok.NonNull;

/**
 * @author Max Grabenhorst
 * @since 1.0.0
 */
public final class UrlCallToAction extends CallToAction {
  private final URL url;
  private final Optional webviewHeightRatio;
  private final Optional messengerExtensions;
  private final Optional fallbackUrl;

  @SerializedName("webview_share_button")
  private final Optional webviewShareButtonState;

  private UrlCallToAction(
      String title,
      URL url,
      Optional webviewHeightRatio,
      Optional messengerExtensions,
      Optional fallbackUrl,
      Optional webviewShareButtonState) {
    super(Type.WEB_URL, title);
    this.url = url;
    this.webviewHeightRatio = webviewHeightRatio;
    this.messengerExtensions = messengerExtensions;
    this.fallbackUrl = fallbackUrl;
    this.webviewShareButtonState = webviewShareButtonState;
  }

  public static UrlCallToAction create(@NonNull String title, @NonNull URL url) {
    if (title == null) {
      throw new java.lang.IllegalArgumentException("title is marked @NonNull but is null");
    }
    if (url == null) {
      throw new java.lang.IllegalArgumentException("url is marked @NonNull but is null");
    }
    return create(title, url, empty());
  }

  public static UrlCallToAction create(
      @NonNull String title,
      @NonNull URL url,
      @NonNull Optional webviewHeightRatio) {
    if (title == null) {
      throw new java.lang.IllegalArgumentException("title is marked @NonNull but is null");
    }
    if (url == null) {
      throw new java.lang.IllegalArgumentException("url is marked @NonNull but is null");
    }
    if (webviewHeightRatio == null) {
      throw new java.lang.IllegalArgumentException(
          "webviewHeightRatio is marked @NonNull but is null");
    }
    return create(title, url, webviewHeightRatio, empty(), empty(), empty());
  }

  public static UrlCallToAction create(
      @NonNull String title,
      @NonNull URL url,
      @NonNull Optional webviewHeightRatio,
      @NonNull Optional messengerExtensions,
      @NonNull Optional fallbackUrl,
      @NonNull Optional webviewShareButtonState) {
    if (title == null) {
      throw new java.lang.IllegalArgumentException("title is marked @NonNull but is null");
    }
    if (url == null) {
      throw new java.lang.IllegalArgumentException("url is marked @NonNull but is null");
    }
    if (webviewHeightRatio == null) {
      throw new java.lang.IllegalArgumentException(
          "webviewHeightRatio is marked @NonNull but is null");
    }
    if (messengerExtensions == null) {
      throw new java.lang.IllegalArgumentException(
          "messengerExtensions is marked @NonNull but is null");
    }
    if (fallbackUrl == null) {
      throw new java.lang.IllegalArgumentException("fallbackUrl is marked @NonNull but is null");
    }
    if (webviewShareButtonState == null) {
      throw new java.lang.IllegalArgumentException(
          "webviewShareButtonState is marked @NonNull but is null");
    }
    return new UrlCallToAction(
        title, url, webviewHeightRatio, messengerExtensions, fallbackUrl, webviewShareButtonState);
  }

  public URL url() {
    return url;
  }

  public Optional webviewHeightRatio() {
    return webviewHeightRatio;
  }

  public Optional messengerExtensions() {
    return messengerExtensions;
  }

  public Optional fallbackUrl() {
    return fallbackUrl;
  }

  public Optional webviewShareButtonState() {
    return webviewShareButtonState;
  }

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public java.lang.String toString() {
    return "UrlCallToAction(super="
        + super.toString()
        + ", url="
        + this.url
        + ", webviewHeightRatio="
        + this.webviewHeightRatio
        + ", messengerExtensions="
        + this.messengerExtensions
        + ", fallbackUrl="
        + this.fallbackUrl
        + ", webviewShareButtonState="
        + this.webviewShareButtonState
        + ")";
  }

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public boolean equals(final java.lang.Object o) {
    if (o == this) return true;
    if (!(o instanceof UrlCallToAction)) return false;
    final UrlCallToAction other = (UrlCallToAction) o;
    if (!other.canEqual((java.lang.Object) this)) return false;
    if (!super.equals(o)) return false;
    final java.lang.Object this$url = this.url;
    final java.lang.Object other$url = other.url;
    if (this$url == null ? other$url != null : !this$url.equals(other$url)) return false;
    final java.lang.Object this$webviewHeightRatio = this.webviewHeightRatio;
    final java.lang.Object other$webviewHeightRatio = other.webviewHeightRatio;
    if (this$webviewHeightRatio == null
        ? other$webviewHeightRatio != null
        : !this$webviewHeightRatio.equals(other$webviewHeightRatio)) return false;
    final java.lang.Object this$messengerExtensions = this.messengerExtensions;
    final java.lang.Object other$messengerExtensions = other.messengerExtensions;
    if (this$messengerExtensions == null
        ? other$messengerExtensions != null
        : !this$messengerExtensions.equals(other$messengerExtensions)) return false;
    final java.lang.Object this$fallbackUrl = this.fallbackUrl;
    final java.lang.Object other$fallbackUrl = other.fallbackUrl;
    if (this$fallbackUrl == null
        ? other$fallbackUrl != null
        : !this$fallbackUrl.equals(other$fallbackUrl)) return false;
    final java.lang.Object this$webviewShareButtonState = this.webviewShareButtonState;
    final java.lang.Object other$webviewShareButtonState = other.webviewShareButtonState;
    if (this$webviewShareButtonState == null
        ? other$webviewShareButtonState != null
        : !this$webviewShareButtonState.equals(other$webviewShareButtonState)) return false;
    return true;
  }

  @java.lang.SuppressWarnings("all")
  protected boolean canEqual(final java.lang.Object other) {
    return other instanceof UrlCallToAction;
  }

  @java.lang.Override
  @java.lang.SuppressWarnings("all")
  public int hashCode() {
    final int PRIME = 59;
    int result = super.hashCode();
    final java.lang.Object $url = this.url;
    result = result * PRIME + ($url == null ? 43 : $url.hashCode());
    final java.lang.Object $webviewHeightRatio = this.webviewHeightRatio;
    result = result * PRIME + ($webviewHeightRatio == null ? 43 : $webviewHeightRatio.hashCode());
    final java.lang.Object $messengerExtensions = this.messengerExtensions;
    result = result * PRIME + ($messengerExtensions == null ? 43 : $messengerExtensions.hashCode());
    final java.lang.Object $fallbackUrl = this.fallbackUrl;
    result = result * PRIME + ($fallbackUrl == null ? 43 : $fallbackUrl.hashCode());
    final java.lang.Object $webviewShareButtonState = this.webviewShareButtonState;
    result =
        result * PRIME
            + ($webviewShareButtonState == null ? 43 : $webviewShareButtonState.hashCode());
    return result;
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy