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

com.stratumn.sdk.adapters.IdentifiableGsonAdapter Maven / Gradle / Ivy

There is a newer version: 2.2.0
Show newest version
package com.stratumn.sdk.adapters;

import java.lang.reflect.Type;

import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonDeserializer;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParseException;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.stratumn.sdk.FileRecord;
import com.stratumn.sdk.FileWrapper;
import com.stratumn.sdk.model.misc.Identifiable;

/***
 *  Enables deserialization of Identifiable declared field.
 */
public class IdentifiableGsonAdapter  implements JsonDeserializer, JsonSerializer     {

     
    @Override
    public Identifiable deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
           if(json != null && json instanceof JsonObject) 
              if(((JsonObject) json).get("digest") != null)
                 return context.deserialize(json, FileRecord.class);
              else 
                 return context.deserialize(json, FileWrapper.class);
          return null; 
          
    }

   @Override
   public JsonElement serialize(Identifiable src, Type typeOfSrc, JsonSerializationContext context)
   {
      JsonElement json = context.serialize(src);
      return json;
       
   }
 
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy