/** * @param geo a geographic coordinate to assign to this input * @return a copy of this {@link ClarifaiInput} with its geographic coordinate set to the specified value */ @NotNull public final ClarifaiInput withGeo(@Nullable PointF geo) { return new AutoValue_ClarifaiInput(id(), createdAt(), inputValue(), metadata(), concepts(), geo, regions()); }
/** * @param metadata the metadata to attach to this input * @return a copy of this {@link ClarifaiInput} with its metadata set to the specified value */ @NotNull public final ClarifaiInput withMetadata(@NotNull JsonObject metadata) { InternalUtil.assertMetadataHasNoNulls(metadata); return new AutoValue_ClarifaiInput(id(), createdAt(), inputValue(), metadata, concepts(), geo(), regions()); }
@NotNull @Override public JsonElement serialize(@Nullable ClarifaiInput value, @NotNull Gson gson) { if (value == null) { return JsonNull.INSTANCE; } final JSONObjectBuilder builder = new JSONObjectBuilder() .add("id", value.id()); final JSONObjectBuilder data = new JSONObjectBuilder() .add("concepts", toJson(gson, value.concepts(), new TypeToken<List<Concept>>() {})) .add("metadata", value.metadata()); if (value.inputValue() instanceof ClarifaiVideo) { data.add("video", toJson(gson, (ClarifaiVideo) value.inputValue(), ClarifaiVideo.class)); } else { data.add("image", toJson(gson, (ClarifaiImage) value.inputValue(), ClarifaiImage.class)); } if (value.geo() != null) { data.add("geo", new JSONObjectBuilder() .add("geo_point", new JSONObjectBuilder() .add("latitude", value.geo().x()) .add("longitude", value.geo().y()))); } if (value.createdAt() != null) { builder.addIfNotNull("created_at", toJson(gson, value.createdAt(), Date.class)); } builder.add("data", data); return builder.build(); } };
if (inputValue() instanceof ClarifaiVideo) { ClarifaiVideo video = (ClarifaiVideo) inputValue(); dataBuilder.setVideo(video.serialize(allowDuplicateURLs)); } else { ClarifaiImage image = (ClarifaiImage) inputValue(); dataBuilder.setImage(image.serialize(allowDuplicateURLs));