package org.javers.core.json.typeadapter.change; import com.google.gson.JsonDeserializationContext; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import java.util.Optional; import org.javers.core.commit.CommitMetadata; import org.javers.core.diff.changetype.NewObject; import org.javers.core.metamodel.type.TypeMapper; import static java.util.Optional.ofNullable; class NewObjectTypeAdapter extends ChangeTypeAdapter<NewObject> { public NewObjectTypeAdapter(TypeMapper typeMapper) { super(typeMapper); } @Override public NewObject fromJson(JsonElement json, JsonDeserializationContext context) { JsonObject jsonObject = (JsonObject) json; CommitMetadata commitMetadata = deserializeCommitMetadata(jsonObject, context); return new NewObject(deserializeAffectedCdoId(jsonObject,context), Optional.empty(), ofNullable(commitMetadata)); } @Override public Class getValueType() { return NewObject.class; } }