From 2d3b73bd7e347986b50eef8b49b6b5bb4e342831 Mon Sep 17 00:00:00 2001 From: Daniel Gerhardt <code@dgerhardt.net> Date: Tue, 13 Feb 2018 17:27:14 +0100 Subject: [PATCH] Use format instead of type property for Content deserialization While type works fine for deserialization from CouchDB, it is not part of the public v3 API. The format property is available in both cases. --- src/main/java/de/thm/arsnova/entities/Content.java | 3 ++- .../entities/serialization/CouchDbDocumentModule.java | 8 ++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/de/thm/arsnova/entities/Content.java b/src/main/java/de/thm/arsnova/entities/Content.java index f716d2123..0b1b145e5 100644 --- a/src/main/java/de/thm/arsnova/entities/Content.java +++ b/src/main/java/de/thm/arsnova/entities/Content.java @@ -12,7 +12,8 @@ import java.util.Objects; @JsonTypeInfo( use = JsonTypeInfo.Id.MINIMAL_CLASS, include = JsonTypeInfo.As.PROPERTY, - property = "type" + property = "format", + visible = true ) public class Content extends Entity { public enum Format { diff --git a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentModule.java b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentModule.java index a99adbf97..7584b1556 100644 --- a/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentModule.java +++ b/src/main/java/de/thm/arsnova/entities/serialization/CouchDbDocumentModule.java @@ -36,8 +36,12 @@ public class CouchDbDocumentModule extends SimpleModule { context.setMixInAnnotations(Entity.class, CouchDbDocumentMixIn.class); context.setMixInAnnotations(de.thm.arsnova.entities.migration.v2.Entity.class, CouchDbDocumentV2MixIn.class); context.registerSubtypes( - new NamedType(Content.class, Content.class.getSimpleName()), - new NamedType(ChoiceQuestionContent.class, ChoiceQuestionContent.class.getSimpleName()), + new NamedType(Content.class, Content.Format.TEXT.toString()), + new NamedType(Content.class, Content.Format.NUMBER.toString()), + new NamedType(ChoiceQuestionContent.class, Content.Format.CHOICE.toString()), + new NamedType(ChoiceQuestionContent.class, Content.Format.BINARY.toString()), + new NamedType(ChoiceQuestionContent.class, Content.Format.SCALE.toString()), + new NamedType(ChoiceQuestionContent.class, Content.Format.GRID.toString()), new NamedType(Answer.class, Answer.class.getSimpleName()), new NamedType(ChoiceAnswer.class, ChoiceAnswer.class.getSimpleName()), new NamedType(TextAnswer.class, TextAnswer.class.getSimpleName())); -- GitLab