From e41dc70f97bd77cccd5dc8cc2647027eb2e7275e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Oskar=20Rasie=C5=84ski?= Date: Wed, 17 Dec 2025 16:19:33 +0100 Subject: [PATCH] Modified Message and its subclasses to work nicely with jackson --- .../ws/messages/CreateIngredientMessage.java | 7 +++++++ .../commons/ws/messages/CreateRecipeMessage.java | 7 +++++++ .../ws/messages/DeleteIngredientMessage.java | 7 +++++++ .../commons/ws/messages/DeleteRecipeMessage.java | 7 +++++++ .../main/java/commons/ws/messages/Message.java | 16 ++++++++++++++++ .../ws/messages/UpdateIngredientMessage.java | 7 +++++++ .../commons/ws/messages/UpdateRecipeMessage.java | 7 +++++++ 7 files changed, 58 insertions(+) diff --git a/commons/src/main/java/commons/ws/messages/CreateIngredientMessage.java b/commons/src/main/java/commons/ws/messages/CreateIngredientMessage.java index a6392cb..8abd1b9 100644 --- a/commons/src/main/java/commons/ws/messages/CreateIngredientMessage.java +++ b/commons/src/main/java/commons/ws/messages/CreateIngredientMessage.java @@ -10,6 +10,8 @@ import commons.Ingredient; public class CreateIngredientMessage implements Message { private Ingredient ingredient; + public CreateIngredientMessage() {} // for jackson + public CreateIngredientMessage(Ingredient ingredient) { this.ingredient = ingredient; } @@ -27,4 +29,9 @@ public class CreateIngredientMessage implements Message { public Ingredient getIngredient() { return ingredient; } + + // for jackson + public void setIngredient(Ingredient ingredient) { + this.ingredient = ingredient; + } } diff --git a/commons/src/main/java/commons/ws/messages/CreateRecipeMessage.java b/commons/src/main/java/commons/ws/messages/CreateRecipeMessage.java index b036c1f..adc5b28 100644 --- a/commons/src/main/java/commons/ws/messages/CreateRecipeMessage.java +++ b/commons/src/main/java/commons/ws/messages/CreateRecipeMessage.java @@ -10,6 +10,8 @@ import commons.Recipe; public class CreateRecipeMessage implements Message { private Recipe recipe; + public CreateRecipeMessage() {} // for jackson + public CreateRecipeMessage(Recipe recipe) { this.recipe = recipe; } @@ -27,4 +29,9 @@ public class CreateRecipeMessage implements Message { public Recipe getRecipe() { return recipe; } + + // for jackson + public void setRecipe(Recipe recipe) { + this.recipe = recipe; + } } diff --git a/commons/src/main/java/commons/ws/messages/DeleteIngredientMessage.java b/commons/src/main/java/commons/ws/messages/DeleteIngredientMessage.java index 879df60..fc6985b 100644 --- a/commons/src/main/java/commons/ws/messages/DeleteIngredientMessage.java +++ b/commons/src/main/java/commons/ws/messages/DeleteIngredientMessage.java @@ -8,6 +8,8 @@ package commons.ws.messages; public class DeleteIngredientMessage implements Message { private Long ingredientId; + public DeleteIngredientMessage() {} // for jackson + public DeleteIngredientMessage(Long ingredientId) { this.ingredientId = ingredientId; } @@ -25,4 +27,9 @@ public class DeleteIngredientMessage implements Message { public Long getIngredientId() { return ingredientId; } + + // for jackson + public void setIngredientId(Long ingredientId) { + this.ingredientId = ingredientId; + } } diff --git a/commons/src/main/java/commons/ws/messages/DeleteRecipeMessage.java b/commons/src/main/java/commons/ws/messages/DeleteRecipeMessage.java index 1802525..8eab4e6 100644 --- a/commons/src/main/java/commons/ws/messages/DeleteRecipeMessage.java +++ b/commons/src/main/java/commons/ws/messages/DeleteRecipeMessage.java @@ -8,6 +8,8 @@ package commons.ws.messages; public class DeleteRecipeMessage implements Message { private Long recipeId; + public DeleteRecipeMessage() {} // for jackson + public DeleteRecipeMessage(Long recipeId) { this.recipeId = recipeId; } @@ -25,4 +27,9 @@ public class DeleteRecipeMessage implements Message { public Long getRecipeId() { return recipeId; } + + // for jackson + public void setRecipeId(Long recipeId) { + this.recipeId = recipeId; + } } diff --git a/commons/src/main/java/commons/ws/messages/Message.java b/commons/src/main/java/commons/ws/messages/Message.java index 9e20df0..5c05d7f 100644 --- a/commons/src/main/java/commons/ws/messages/Message.java +++ b/commons/src/main/java/commons/ws/messages/Message.java @@ -1,5 +1,21 @@ package commons.ws.messages; + +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +@JsonTypeInfo( + use = JsonTypeInfo.Id.NAME, + property = "type" +) +@JsonSubTypes({ + @JsonSubTypes.Type(value = CreateRecipeMessage.class, name = "RECIPE_CREATE"), + @JsonSubTypes.Type(value = UpdateRecipeMessage.class, name = "RECIPE_UPDATE"), + @JsonSubTypes.Type(value = DeleteRecipeMessage.class, name = "RECIPE_DELETE"), + @JsonSubTypes.Type(value = CreateIngredientMessage.class, name = "INGREDIENT_CREATE"), + @JsonSubTypes.Type(value = UpdateIngredientMessage.class, name = "INGREDIENT_UPDATE"), + @JsonSubTypes.Type(value = DeleteIngredientMessage.class, name = "INGREDIENT_DELETE") +}) public interface Message { public enum Type { /** diff --git a/commons/src/main/java/commons/ws/messages/UpdateIngredientMessage.java b/commons/src/main/java/commons/ws/messages/UpdateIngredientMessage.java index e997873..e45e5a5 100644 --- a/commons/src/main/java/commons/ws/messages/UpdateIngredientMessage.java +++ b/commons/src/main/java/commons/ws/messages/UpdateIngredientMessage.java @@ -10,6 +10,8 @@ import commons.Ingredient; public class UpdateIngredientMessage implements Message { private Ingredient ingredient; + public UpdateIngredientMessage() {} // for jackson + public UpdateIngredientMessage(Ingredient ingredient) { this.ingredient = ingredient; } @@ -27,4 +29,9 @@ public class UpdateIngredientMessage implements Message { public Ingredient getIngredient() { return ingredient; } + + // for jackson + public void setIngredient(Ingredient ingredient) { + this.ingredient = ingredient; + } } diff --git a/commons/src/main/java/commons/ws/messages/UpdateRecipeMessage.java b/commons/src/main/java/commons/ws/messages/UpdateRecipeMessage.java index c623b75..72c9fd6 100644 --- a/commons/src/main/java/commons/ws/messages/UpdateRecipeMessage.java +++ b/commons/src/main/java/commons/ws/messages/UpdateRecipeMessage.java @@ -10,6 +10,8 @@ import commons.Recipe; public class UpdateRecipeMessage implements Message { private Recipe recipe; + public UpdateRecipeMessage() {} // for jackson + public UpdateRecipeMessage(Recipe recipe) { this.recipe = recipe; } @@ -27,4 +29,9 @@ public class UpdateRecipeMessage implements Message { public Recipe getRecipe() { return recipe; } + + // for jackson + public void setRecipe(Recipe recipe) { + this.recipe = recipe; + } }