mirror of
https://codeberg.org/gitnex/tea4j-autodeploy
synced 2026-06-10 11:37:35 +00:00
208 lines
5.5 KiB
Java
208 lines
5.5 KiB
Java
/*
|
|
* Gitea API
|
|
* This documentation describes the Gitea API.
|
|
*
|
|
* OpenAPI spec version: {{AppVer | JSEscape}}
|
|
*
|
|
*
|
|
* NOTE: This class is auto generated by the swagger code generator program.
|
|
* https://github.com/swagger-api/swagger-codegen.git
|
|
* Do not edit the class manually.
|
|
*/
|
|
|
|
package org.gitnex.tea4j.v2;
|
|
|
|
import com.google.gson.Gson;
|
|
import com.google.gson.GsonBuilder;
|
|
import com.google.gson.JsonElement;
|
|
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 io.gsonfire.GsonFireBuilder;
|
|
import java.io.IOException;
|
|
import java.text.DateFormat;
|
|
import java.text.ParseException;
|
|
import java.text.ParsePosition;
|
|
import java.util.Date;
|
|
import java.util.Map;
|
|
import org.gitnex.tea4j.v2.models.*;
|
|
|
|
public class JSON {
|
|
private Gson gson;
|
|
private DateTypeAdapter dateTypeAdapter = new DateTypeAdapter();
|
|
private SqlDateTypeAdapter sqlDateTypeAdapter = new SqlDateTypeAdapter();
|
|
|
|
public static GsonBuilder createGson() {
|
|
GsonFireBuilder fireBuilder = new GsonFireBuilder();
|
|
return fireBuilder.createGsonBuilder();
|
|
}
|
|
|
|
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();
|
|
}
|
|
|
|
private static Class getClassByDiscriminator(
|
|
Map classByDiscriminatorValue, String discriminatorValue) {
|
|
Class clazz = (Class) classByDiscriminatorValue.get(discriminatorValue.toUpperCase());
|
|
if (null == clazz) {
|
|
throw new IllegalArgumentException(
|
|
"cannot determine model class of name: <" + discriminatorValue + ">");
|
|
}
|
|
return clazz;
|
|
}
|
|
|
|
public JSON() {
|
|
gson =
|
|
createGson()
|
|
.registerTypeAdapter(Date.class, dateTypeAdapter)
|
|
.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter)
|
|
.create();
|
|
}
|
|
|
|
/**
|
|
* Get Gson.
|
|
*
|
|
* @return Gson
|
|
*/
|
|
public Gson getGson() {
|
|
return gson;
|
|
}
|
|
|
|
/**
|
|
* Set Gson.
|
|
*
|
|
* @param gson Gson
|
|
* @return JSON
|
|
*/
|
|
public JSON setGson(Gson gson) {
|
|
this.gson = gson;
|
|
return this;
|
|
}
|
|
|
|
/**
|
|
* 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<java.sql.Date> {
|
|
|
|
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<Date> {
|
|
|
|
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 JSON setDateFormat(DateFormat dateFormat) {
|
|
dateTypeAdapter.setFormat(dateFormat);
|
|
return this;
|
|
}
|
|
|
|
public JSON setSqlDateFormat(DateFormat dateFormat) {
|
|
sqlDateTypeAdapter.setFormat(dateFormat);
|
|
return this;
|
|
}
|
|
}
|