All Downloads are FREE. Search and download functionalities are using the official Maven repository.

cn.leancloud.gson.FileUploadTokenAdapter Maven / Gradle / Ivy

package cn.leancloud.gson;

import cn.leancloud.upload.FileUploadToken;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.TypeAdapter;
import com.google.gson.internal.bind.TypeAdapters;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonWriter;

import java.io.IOException;

public class FileUploadTokenAdapter extends TypeAdapter {
  private static final String FIELD_BUCKET = "bucket";
  private static final String FIELD_OBJECTID = "objectId";
  private static final String FIELD_UPLOAD_URL = "upload_url";
  private static final String FIELD_PROVIDER = "provider";
  private static final String FIELD_TOKEN = "token";
  private static final String FIELD_URL = "url";

  public void write(JsonWriter writer, FileUploadToken token) throws IOException {
    JsonObject jsonObject = new JsonObject();
    jsonObject.addProperty(FIELD_BUCKET, token.getBucket());
    jsonObject.addProperty(FIELD_OBJECTID, token.getObjectId());
    jsonObject.addProperty(FIELD_UPLOAD_URL, token.getUploadUrl());
    jsonObject.addProperty(FIELD_PROVIDER, token.getProvider());
    jsonObject.addProperty(FIELD_TOKEN, token.getToken());
    jsonObject.addProperty(FIELD_URL, token.getUrl());
    TypeAdapters.JSON_ELEMENT.write(writer, jsonObject);
  }

  public FileUploadToken read(JsonReader reader) throws IOException {
    JsonElement elem = TypeAdapters.JSON_ELEMENT.read(reader);
    if (null != elem || elem.isJsonObject()) {
      JsonObject jsonObject = elem.getAsJsonObject();
      FileUploadToken token = new FileUploadToken();
      if (jsonObject.has(FIELD_BUCKET)) {
        token.setBucket(jsonObject.get(FIELD_BUCKET).getAsString());
      }
      if (jsonObject.has(FIELD_OBJECTID)) {
        token.setObjectId(jsonObject.get(FIELD_OBJECTID).getAsString());
      }
      if (jsonObject.has(FIELD_UPLOAD_URL)) {
        token.setUploadUrl(jsonObject.get(FIELD_UPLOAD_URL).getAsString());
      }
      if (jsonObject.has(FIELD_PROVIDER)) {
        token.setProvider(jsonObject.get(FIELD_PROVIDER).getAsString());
      }
      if (jsonObject.has(FIELD_TOKEN)) {
        token.setToken(jsonObject.get(FIELD_TOKEN).getAsString());
      }
      if (jsonObject.has(FIELD_URL)) {
        token.setUrl(jsonObject.get(FIELD_URL).getAsString());
      }
      return token;
    }
    return null;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy