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;
}
}