
com.criteo.api.retailmedia.v2024_07.JSON Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of criteo-api-retailmedia-sdk Show documentation
Show all versions of criteo-api-retailmedia-sdk Show documentation
JAVA SDK for Criteo API retailmedia for 2022_10 version
/*
* Criteo API
* Criteo API - RetailMedia
*
* The version of the OpenAPI document: 2024-07
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
package com.criteo.api.retailmedia.v2024_07;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonParseException;
import com.google.gson.TypeAdapter;
import com.google.gson.internal.bind.util.ISO8601Utils;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;
import com.google.gson.JsonElement;
import io.gsonfire.GsonFireBuilder;
import io.gsonfire.TypeSelector;
import okio.ByteString;
import java.io.IOException;
import java.io.StringReader;
import java.lang.reflect.Type;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.ParsePosition;
import java.time.LocalDate;
import java.time.OffsetDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
import java.util.Locale;
import java.util.Map;
import java.util.HashMap;
/*
* A JSON utility class
*
* NOTE: in the future, this class may be converted to static, which may break
* backward-compatibility
*/
public class JSON {
private static Gson gson;
private static boolean isLenientOnJson = false;
private static DateTypeAdapter dateTypeAdapter = new DateTypeAdapter();
private static SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter();
private static OffsetDateTimeTypeAdapter offsetDateTimeTypeAdapter = new OffsetDateTimeTypeAdapter();
private static LocalDateTypeAdapter localDateTypeAdapter = new LocalDateTypeAdapter();
private static ByteArrayAdapter byteArrayAdapter = new ByteArrayAdapter();
@SuppressWarnings("unchecked")
public static GsonBuilder createGson() {
GsonFireBuilder fireBuilder = new GsonFireBuilder()
;
GsonBuilder builder = fireBuilder.createGsonBuilder();
return builder;
}
private static String getDiscriminatorValue(JsonElement readElement, String discriminatorField) {
JsonElement element = readElement.getAsJsonObject().get(discriminatorField);
if (null == element) {
throw new IllegalArgumentException("missing discriminator field: <" + discriminatorField + ">");
}
return element.getAsString();
}
/**
* Returns the Java class that implements the OpenAPI schema for the specified discriminator value.
*
* @param classByDiscriminatorValue The map of discriminator values to Java classes.
* @param discriminatorValue The value of the OpenAPI discriminator in the input data.
* @return The Java class that implements the OpenAPI schema
*/
private static Class getClassByDiscriminator(Map classByDiscriminatorValue, String discriminatorValue) {
Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue);
if (null == clazz) {
throw new IllegalArgumentException("cannot determine model class of name: <" + discriminatorValue + ">");
}
return clazz;
}
{
GsonBuilder gsonBuilder = createGson();
gsonBuilder.registerTypeAdapter(Date.class, dateTypeAdapter);
gsonBuilder.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter);
gsonBuilder.registerTypeAdapter(OffsetDateTime.class, offsetDateTimeTypeAdapter);
gsonBuilder.registerTypeAdapter(LocalDate.class, localDateTypeAdapter);
gsonBuilder.registerTypeAdapter(byte[].class, byteArrayAdapter);
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AddFundsToBalanceV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AddFundsToBalanceV2Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AddRemoveKeywordModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AddRemoveKeywordsModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AddRemoveKeywordsModelRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AddRemoveKeywordsModelResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AddToBasketIdsUpdateModel202110Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AddToBasketTarget202110Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AddToBasketTarget202110Response.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ApplicationSummaryModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ApplicationSummaryModelResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ApplicationSummaryModelResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Asset.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AssetResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AssetResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AsyncCampaignsReport.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AsyncCampaignsReportRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AsyncCampaignsReportResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AsyncLineItemsReport.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AsyncLineItemsReportRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AsyncLineItemsReportResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AsyncReportResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AsyncRevenueReport.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AsyncRevenueReportRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AsyncRevenueReportResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AuctionLineItemCreateModelRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AuctionLineItemPagedListResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AuctionLineItemResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AuctionLineItemUpdateModelRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AudienceIdsUpdateModel202110Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AudienceTarget202110Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.AudienceTarget202110Response.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.BalanceCampaign202110ListRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.BalanceCampaign202110PagedListResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.BalanceHistoryChangeDataCaptureV1.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.BalanceResponseV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.BalanceResponseV2Response.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CampaignAttributesV202301.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CampaignBudgetOverrides.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CampaignDailyBudgetOverride.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CampaignMonthlyBudgetOverride.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CampaignV202301.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Category202204.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Category202204ListResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ChangeDatesOfBalanceV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ChangeDatesOfBalanceV2Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ChangeDetailsV1.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ChoiceOption.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ChoiceVariableSpecification.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ChoiceVariableValue.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ColorVariableValue.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CommonError.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CommonLineItemPagedListResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CommonLineItemResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CommonProblem.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CommonWarning.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CreateBalanceV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CreateBalanceV2Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Creative202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Creative202110ListResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Creative202210.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Creative202210ListResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Creative202210Response.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CreativeCreateModel202207.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.CreativeUpdateModel202207.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.DailyLineItemBudgetOverride.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.EditableCampaignAttributesV202301.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalAccount.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalAddToBasketIdsUpdateModel202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalAddToBasketTarget202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalAuctionLineItem.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalAuctionLineItemCreateModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalAuctionLineItemUpdateModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalAudienceIdsUpdateModel202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalAudienceTarget202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalBrand.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalCatalogRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalCatalogStatus.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalCommonLineItem.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalKeywordTarget202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalLineItemCapping202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalLineItemPage202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalLineItemPageCategory202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalPreferredLineItem202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalPreferredLineItemCreateModel202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalPreferredLineItemUpdateModel202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalRetailer.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalRetailerPages202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalStoreIdsUpdateModel202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ExternalStoreTarget202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.FilesVariableValue.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.FilesVariablesSpecification.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.HyperlinkVariableValue.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.InputKeywordsModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.InputResourceOfAuctionLineItemCreateModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.InputResourceOfPreferredLineItemCreateModel202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiBodyWithExternalIdOfEditableCampaignAttributesV202301AndCampaignV202301.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiBodyWithIdOfInt64AndAccountAndAccount.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiBodyWithIdOfInt64AndBrandAndBrand.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiBodyWithIdOfInt64AndCampaignV202301AndCampaignV202301.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiBodyWithIdOfInt64AndCatalogStatusAndCatalogStatus.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiBodyWithIdOfInt64AndLineItemBidMultipliersAndLineItemBidMultipliers.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiBodyWithIdOfInt64AndRetailerAndRetailer.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiBodyWithoutIdOfCampaignAttributesV202301AndCampaignV202301.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiBodyWithoutIdOfCatalogRequestAndCatalogRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiPageResponseOfAccount.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiPageResponseOfBrand.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiPageResponseOfCampaignV202301.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiPageResponseOfRetailer.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiRequestOfCatalogRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiSingleResponseOfCampaignV202301.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiSingleResponseOfCatalogStatus.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.JsonApiSingleResponseOfLineItemBidMultipliers.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.KeywordDataModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.KeywordTarget202110Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.KeywordTarget202110Response.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.KeywordsModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.KeywordsModelResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.KeywordsModelResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.LineItemBidMultipliers.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.LineItemBidMultipliersRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.LineItemBidMultipliersResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.LineItemBudgetOverrides.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Metadata.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.MonthlyLineItemBudegetOverride.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PageMetadata.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PageOfBalanceHistoryChangeDataCaptureV1.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PageTypeEnvironment.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PagedResourceCollectionOutcomeOfBalanceResponseV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PostCampaignV202301.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PreferredLineItem202110PagedListResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PreferredLineItem202110Response.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PreferredLineItemCreateModel202110Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PreferredLineItemUpdateModel202110Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ProblemDetails.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ProductMetadata.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ProductResourceOutcome.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PromotedProduct.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PromotedProductResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PromotedProductResourceCollectionInput.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PromotedProductResourceCollectionOutcome.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ProposalStatusModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ProposalStatusModelResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ProposalStatusModelResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.PutCampaignV202301.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ReportOutcome.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfAddFundsToBalanceV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfAuctionLineItem.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfAuctionLineItemUpdateModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfBalanceCampaign202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfBalanceResponseV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfCategory202204.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfChangeDatesOfBalanceV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfCommonLineItem.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfCreateBalanceV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfCreative202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfCreative202210.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfLineItemBidMultipliers.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfPreferredLineItem202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfPreferredLineItemUpdateModel202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfRetailMediaAccount.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfTemplate.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOfUpdateBalanceModelV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOutcome.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ResourceOutcomeOfRetailMediaAccount.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RetailMediaAccount.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RetailMediaBrandAccountCreation.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RetailMediaBrands.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RetailMediaSeller.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RetailMediaSellerAccountCreation.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceCreateEntityV1.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceCreateEntityV1Resource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceCreateEntityV1Response.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceCreateEntityV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceCreateEntityV2Resource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceCreateEntityV2Response.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceCreateInputEntityV1.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceCreateInputEntityV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceGetEntityV1.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceGetEntityV1ListResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceGetEntityV1Resource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceGetEntityV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceGetEntityV2ListResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceGetEntityV2Resource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceUserBehaviorCreateV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacyAudienceUserBehaviorDetailsV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacySegmentCustomerList.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacySegmentUserBehaviorCreateV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacySegmentUserBehaviorV1.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmLegacySegmentUserBehaviorV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.RmcaCommonProblem.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Section.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.SetBidModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.SetBidsModel.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.SetBidsModelRequest.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.SetBidsModelResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.StatusResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.StatusResponseResource.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.StoreIdsUpdateModel202110Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.StoreTarget202110Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.StoreTarget202110Response.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.Template.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.TemplateListResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.TemplateResponse.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.TemplateVariable.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.TemplateVariableValue.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.TextVariableSpecification.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.TextVariableValue.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.UpdateBalanceModelV2.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.UpdateBalanceModelV2Request.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceCollectionInputOfRetailMediaSeller.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceCollectionOutcomeOfRetailMediaSeller.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceInputOfCampaignBudgetOverrides.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceInputOfLineItemBudgetOverrides.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceInputOfRetailMediaBrandAccountCreation.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceInputOfRetailMediaBrands.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceInputOfRetailMediaSellerAccountCreation.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceOfCampaignBudgetOverrides.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceOfLineItemBudgetOverrides.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceOfRetailMediaBrandAccountCreation.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceOfRetailMediaBrands.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceOfRetailMediaSeller.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceOfRetailMediaSellerAccountCreation.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceOutcomeOfCampaignBudgetOverrides.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueResourceOutcomeOfLineItemBudgetOverrides.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueTypeResourceOfAddToBasketIdsUpdateModel202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueTypeResourceOfAddToBasketTarget202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueTypeResourceOfAudienceIdsUpdateModel202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueTypeResourceOfAudienceTarget202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueTypeResourceOfKeywordTarget202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueTypeResourceOfStoreIdsUpdateModel202110.CustomTypeAdapterFactory());
gsonBuilder.registerTypeAdapterFactory(new com.criteo.api.retailmedia.v2024_07.model.ValueTypeResourceOfStoreTarget202110.CustomTypeAdapterFactory());
gson = gsonBuilder.create();
}
/**
* Get Gson.
*
* @return Gson
*/
public static Gson getGson() {
return gson;
}
/**
* Set Gson.
*
* @param gson Gson
*/
public static void setGson(Gson gson) {
JSON.gson = gson;
}
public static void setLenientOnJson(boolean lenientOnJson) {
isLenientOnJson = lenientOnJson;
}
/**
* Serialize the given Java object into JSON string.
*
* @param obj Object
* @return String representation of the JSON
*/
public static String serialize(Object obj) {
return gson.toJson(obj);
}
/**
* Deserialize the given JSON string to Java object.
*
* @param Type
* @param body The JSON string
* @param returnType The type to deserialize into
* @return The deserialized Java object
*/
@SuppressWarnings("unchecked")
public static T deserialize(String body, Type returnType) {
try {
if (isLenientOnJson) {
JsonReader jsonReader = new JsonReader(new StringReader(body));
// see https://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/stream/JsonReader.html#setLenient(boolean)
jsonReader.setLenient(true);
return gson.fromJson(jsonReader, returnType);
} else {
return gson.fromJson(body, returnType);
}
} catch (JsonParseException e) {
// Fallback processing when failed to parse JSON form response body:
// return the response body string directly for the String return type;
if (returnType.equals(String.class)) {
return (T) body;
} else {
throw (e);
}
}
}
/**
* Gson TypeAdapter for Byte Array type
*/
public static class ByteArrayAdapter extends TypeAdapter {
@Override
public void write(JsonWriter out, byte[] value) throws IOException {
if (value == null) {
out.nullValue();
} else {
out.value(ByteString.of(value).base64());
}
}
@Override
public byte[] read(JsonReader in) throws IOException {
switch (in.peek()) {
case NULL:
in.nextNull();
return null;
default:
String bytesAsBase64 = in.nextString();
ByteString byteString = ByteString.decodeBase64(bytesAsBase64);
return byteString.toByteArray();
}
}
}
/**
* Gson TypeAdapter for JSR310 OffsetDateTime type
*/
public static class OffsetDateTimeTypeAdapter extends TypeAdapter {
private DateTimeFormatter formatter;
public OffsetDateTimeTypeAdapter() {
this(DateTimeFormatter.ISO_OFFSET_DATE_TIME);
}
public OffsetDateTimeTypeAdapter(DateTimeFormatter formatter) {
this.formatter = formatter;
}
public void setFormat(DateTimeFormatter dateFormat) {
this.formatter = dateFormat;
}
@Override
public void write(JsonWriter out, OffsetDateTime date) throws IOException {
if (date == null) {
out.nullValue();
} else {
out.value(formatter.format(date));
}
}
@Override
public OffsetDateTime read(JsonReader in) throws IOException {
switch (in.peek()) {
case NULL:
in.nextNull();
return null;
default:
String date = in.nextString();
if (date.endsWith("+0000")) {
date = date.substring(0, date.length()-5) + "Z";
}
return OffsetDateTime.parse(date, formatter);
}
}
}
/**
* Gson TypeAdapter for JSR310 LocalDate type
*/
public static class LocalDateTypeAdapter extends TypeAdapter {
private DateTimeFormatter formatter;
public LocalDateTypeAdapter() {
this(DateTimeFormatter.ISO_LOCAL_DATE);
}
public LocalDateTypeAdapter(DateTimeFormatter formatter) {
this.formatter = formatter;
}
public void setFormat(DateTimeFormatter dateFormat) {
this.formatter = dateFormat;
}
@Override
public void write(JsonWriter out, LocalDate date) throws IOException {
if (date == null) {
out.nullValue();
} else {
out.value(formatter.format(date));
}
}
@Override
public LocalDate read(JsonReader in) throws IOException {
switch (in.peek()) {
case NULL:
in.nextNull();
return null;
default:
String date = in.nextString();
return LocalDate.parse(date, formatter);
}
}
}
public static void setOffsetDateTimeFormat(DateTimeFormatter dateFormat) {
offsetDateTimeTypeAdapter.setFormat(dateFormat);
}
public static void setLocalDateFormat(DateTimeFormatter dateFormat) {
localDateTypeAdapter.setFormat(dateFormat);
}
/**
* Gson TypeAdapter for java.sql.Date type
* If the dateFormat is null, a simple "yyyy-MM-dd" format will be used
* (more efficient than SimpleDateFormat).
*/
public static class SqlDateTypeAdapter extends TypeAdapter {
private DateFormat dateFormat;
public SqlDateTypeAdapter() {}
public SqlDateTypeAdapter(DateFormat dateFormat) {
this.dateFormat = dateFormat;
}
public void setFormat(DateFormat dateFormat) {
this.dateFormat = dateFormat;
}
@Override
public void write(JsonWriter out, java.sql.Date date) throws IOException {
if (date == null) {
out.nullValue();
} else {
String value;
if (dateFormat != null) {
value = dateFormat.format(date);
} else {
value = date.toString();
}
out.value(value);
}
}
@Override
public java.sql.Date read(JsonReader in) throws IOException {
switch (in.peek()) {
case NULL:
in.nextNull();
return null;
default:
String date = in.nextString();
try {
if (dateFormat != null) {
return new java.sql.Date(dateFormat.parse(date).getTime());
}
return new java.sql.Date(ISO8601Utils.parse(date, new ParsePosition(0)).getTime());
} catch (ParseException e) {
throw new JsonParseException(e);
}
}
}
}
/**
* Gson TypeAdapter for java.util.Date type
* If the dateFormat is null, ISO8601Utils will be used.
*/
public static class DateTypeAdapter extends TypeAdapter {
private DateFormat dateFormat;
public DateTypeAdapter() {}
public DateTypeAdapter(DateFormat dateFormat) {
this.dateFormat = dateFormat;
}
public void setFormat(DateFormat dateFormat) {
this.dateFormat = dateFormat;
}
@Override
public void write(JsonWriter out, Date date) throws IOException {
if (date == null) {
out.nullValue();
} else {
String value;
if (dateFormat != null) {
value = dateFormat.format(date);
} else {
value = ISO8601Utils.format(date, true);
}
out.value(value);
}
}
@Override
public Date read(JsonReader in) throws IOException {
try {
switch (in.peek()) {
case NULL:
in.nextNull();
return null;
default:
String date = in.nextString();
try {
if (dateFormat != null) {
return dateFormat.parse(date);
}
return ISO8601Utils.parse(date, new ParsePosition(0));
} catch (ParseException e) {
throw new JsonParseException(e);
}
}
} catch (IllegalArgumentException e) {
throw new JsonParseException(e);
}
}
}
public static void setDateFormat(DateFormat dateFormat) {
dateTypeAdapter.setFormat(dateFormat);
}
public static void setSqlDateFormat(DateFormat dateFormat) {
sqlDateTypeAdapter.setFormat(dateFormat);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy