
clarifai2.dto.input.ClarifaiURLImage Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of core Show documentation
Show all versions of core Show documentation
Clarifai Java API Client
The newest version!
package clarifai2.dto.input;
import clarifai2.internal.grpc.api.ImageOuterClass;
import clarifai2.internal.InternalUtil;
import clarifai2.internal.JSONAdapterFactory;
import clarifai2.internal.JSONObjectBuilder;
import com.google.auto.value.AutoValue;
import com.google.gson.Gson;
import com.google.gson.JsonElement;
import com.google.gson.JsonNull;
import com.google.gson.JsonObject;
import com.google.gson.annotations.JsonAdapter;
import com.google.gson.reflect.TypeToken;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.net.URL;
import static clarifai2.internal.InternalUtil.toJson;
@SuppressWarnings("NullableProblems")
@AutoValue
@JsonAdapter(ClarifaiURLImage.Adapter.class)
public abstract class ClarifaiURLImage extends ClarifaiImage {
@Nullable private Boolean allowDuplicateUrl = null;
ClarifaiURLImage() {} // AutoValue instances only
@NotNull public abstract URL url();
/**
* @param allowDuplicateUrl should allow duplicate url
* @return a {@link ClarifaiInput}
*/
@NotNull public final ClarifaiURLImage withAllowDuplicateUrl(@NotNull boolean allowDuplicateUrl) {
this.allowDuplicateUrl = allowDuplicateUrl;
return this;
}
/**
* @return should allow duplicate url
*/
@Nullable public Boolean allowDuplicateUrl() {
return allowDuplicateUrl;
}
@NotNull @Override public ImageOuterClass.Image serialize(boolean allowDuplicateUrl) {
ImageOuterClass.Image image = ImageOuterClass.Image.newBuilder()
.setUrl(url().toString())
.setAllowDuplicateUrl(allowDuplicateUrl)
.build();
return image;
}
@NotNull public static ClarifaiURLImage deserializeInner(ImageOuterClass.Image imageResponse) {
ClarifaiURLImage image = ClarifaiURLImage.of(imageResponse.getUrl());
return image;
}
static class Adapter extends JSONAdapterFactory {
@Nullable @Override protected Serializer serializer() {
return new Serializer() {
@NotNull @Override public JsonElement serialize(@Nullable ClarifaiURLImage value, @NotNull Gson gson) {
if (value == null) {
return JsonNull.INSTANCE;
}
return new JSONObjectBuilder()
.add("url", value.url().toString())
.addIfNotNull("allow_duplicate_url", value.allowDuplicateUrl()).build();
}
};
}
@Nullable @Override protected Deserializer deserializer() {
return new Deserializer() {
@Nullable @Override
public ClarifaiURLImage deserialize(
@NotNull JsonElement json,
@NotNull TypeToken type,
@NotNull Gson gson) {
final JsonObject root = InternalUtil.assertJsonIs(json, JsonObject.class);
return ClarifaiImage.of(root.get("url").getAsString());
}
};
}
@NotNull @Override protected TypeToken typeToken() {
return new TypeToken() {};
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy