com.github.messenger4j.send.message.template.common.DefaultAction Maven / Gradle / Ivy
// Generated by delombok at Tue May 07 22:31:27 CEST 2019
package com.github.messenger4j.send.message.template.common;
import static com.github.messenger4j.send.message.template.button.Button.Type.WEB_URL;
import static java.util.Optional.empty;
import com.github.messenger4j.common.WebviewHeightRatio;
import com.github.messenger4j.common.WebviewShareButtonState;
import com.github.messenger4j.send.message.template.button.Button;
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 DefaultAction {
private final Button.Type type;
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 DefaultAction(
URL url,
Optional webviewHeightRatio,
Optional messengerExtensions,
Optional fallbackUrl,
Optional webviewShareButtonState) {
this.type = WEB_URL;
this.url = url;
this.webviewHeightRatio = webviewHeightRatio;
this.messengerExtensions = messengerExtensions;
this.fallbackUrl = fallbackUrl;
this.webviewShareButtonState = webviewShareButtonState;
}
public static DefaultAction create(@NonNull URL url) {
if (url == null) {
throw new java.lang.IllegalArgumentException("url is marked @NonNull but is null");
}
return create(url, empty());
}
public static DefaultAction create(
@NonNull URL url, @NonNull Optional webviewHeightRatio) {
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(url, webviewHeightRatio, empty(), empty(), empty());
}
public static DefaultAction create(
@NonNull URL url,
@NonNull Optional webviewHeightRatio,
@NonNull Optional messengerExtensions,
@NonNull Optional fallbackUrl,
@NonNull Optional webviewShareButtonState) {
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 DefaultAction(
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 "DefaultAction(type="
+ this.type
+ ", 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 DefaultAction)) return false;
final DefaultAction other = (DefaultAction) o;
final java.lang.Object this$type = this.type;
final java.lang.Object other$type = other.type;
if (this$type == null ? other$type != null : !this$type.equals(other$type)) 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.Override
@java.lang.SuppressWarnings("all")
public int hashCode() {
final int PRIME = 59;
int result = 1;
final java.lang.Object $type = this.type;
result = result * PRIME + ($type == null ? 43 : $type.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;
}
}