package org.javers.core.json.typeadapter.commit;
import com.google.gson.JsonDeserializationContext;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;
import org.javers.core.json.JsonTypeAdapterTemplate;
import org.javers.core.metamodel.object.CdoSnapshotState;
/**
* @author bartosz walacik
*/
public class CdoSnapshotStateTypeAdapter extends JsonTypeAdapterTemplate<CdoSnapshotState> {
@Override
public Class getValueType() {
return CdoSnapshotState.class;
}
@Override
public CdoSnapshotState fromJson(JsonElement json, JsonDeserializationContext jsonDeserializationContext) {
throw new UnsupportedOperationException("use CdoSnapshotStateDeserializer");
}
@Override
public JsonElement toJson(CdoSnapshotState snapshotState, JsonSerializationContext context) {
JsonObject jsonObject = new JsonObject();
snapshotState.forEachProperty( (pName, pValue) -> jsonObject.add(pName, context.serialize(pValue)));
return jsonObject;
}
}