com.github.messenger4j.send.message.richmedia.UrlRichMediaAsset Maven / Gradle / Ivy
// Generated by delombok at Tue May 07 22:31:27 CEST 2019
package com.github.messenger4j.send.message.richmedia;
import static java.util.Optional.empty;
import java.net.URL;
import java.util.Optional;
import lombok.NonNull;
/**
* @author Max Grabenhorst
* @since 1.0.0
*/
public final class UrlRichMediaAsset extends RichMediaAsset {
private final URL url;
private final Optional isReusable;
private UrlRichMediaAsset(Type type, URL url, Optional isReusable) {
super(type);
this.url = url;
this.isReusable = isReusable;
}
public static UrlRichMediaAsset create(@NonNull Type type, @NonNull URL url) {
if (type == null) {
throw new java.lang.IllegalArgumentException("type is marked @NonNull but is null");
}
if (url == null) {
throw new java.lang.IllegalArgumentException("url is marked @NonNull but is null");
}
return create(type, url, empty());
}
public static UrlRichMediaAsset create(
@NonNull Type type, @NonNull URL url, @NonNull Optional isReusable) {
if (type == null) {
throw new java.lang.IllegalArgumentException("type is marked @NonNull but is null");
}
if (url == null) {
throw new java.lang.IllegalArgumentException("url is marked @NonNull but is null");
}
if (isReusable == null) {
throw new java.lang.IllegalArgumentException("isReusable is marked @NonNull but is null");
}
return new UrlRichMediaAsset(type, url, isReusable);
}
public URL url() {
return url;
}
public Optional isReusable() {
return isReusable;
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public java.lang.String toString() {
return "UrlRichMediaAsset(super="
+ super.toString()
+ ", url="
+ this.url
+ ", isReusable="
+ this.isReusable
+ ")";
}
@java.lang.Override
@java.lang.SuppressWarnings("all")
public boolean equals(final java.lang.Object o) {
if (o == this) return true;
if (!(o instanceof UrlRichMediaAsset)) return false;
final UrlRichMediaAsset other = (UrlRichMediaAsset) 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$isReusable = this.isReusable;
final java.lang.Object other$isReusable = other.isReusable;
if (this$isReusable == null
? other$isReusable != null
: !this$isReusable.equals(other$isReusable)) return false;
return true;
}
@java.lang.SuppressWarnings("all")
protected boolean canEqual(final java.lang.Object other) {
return other instanceof UrlRichMediaAsset;
}
@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 $isReusable = this.isReusable;
result = result * PRIME + ($isReusable == null ? 43 : $isReusable.hashCode());
return result;
}
}