diff --git a/library/src/main/java/com/pengrad/telegrambot/model/chatbackground/BackgroundFill.java b/library/src/main/java/com/pengrad/telegrambot/model/chatbackground/BackgroundFill.java index b7820600..6744ac35 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/chatbackground/BackgroundFill.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/chatbackground/BackgroundFill.java @@ -2,7 +2,7 @@ import java.util.Objects; -public abstract class BackgroundFill { +public class BackgroundFill { private final String type; diff --git a/library/src/main/java/com/pengrad/telegrambot/model/chatbackground/BackgroundType.java b/library/src/main/java/com/pengrad/telegrambot/model/chatbackground/BackgroundType.java index a04cd3be..bc00799b 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/chatbackground/BackgroundType.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/chatbackground/BackgroundType.java @@ -2,7 +2,7 @@ import java.util.Objects; -public abstract class BackgroundType { +public class BackgroundType { private final String type; diff --git a/library/src/main/java/com/pengrad/telegrambot/model/chatboost/source/ChatBoostSource.java b/library/src/main/java/com/pengrad/telegrambot/model/chatboost/source/ChatBoostSource.java index cf733082..eecd3e25 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/chatboost/source/ChatBoostSource.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/chatboost/source/ChatBoostSource.java @@ -12,6 +12,13 @@ public class ChatBoostSource implements Serializable { protected String source; protected User user; + ChatBoostSource() { + } + + public ChatBoostSource(String source) { + this.source = source; + } + @Override public boolean equals(Object o) { if (this == o) return true; diff --git a/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMedia.java b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMedia.java index 5d8a4271..3f3a7781 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMedia.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMedia.java @@ -3,7 +3,7 @@ import java.io.Serializable; import java.util.Objects; -public abstract class PaidMedia implements Serializable { +public class PaidMedia implements Serializable { private final static long serialVersionUID = 0L; diff --git a/library/src/main/java/com/pengrad/telegrambot/model/reaction/ReactionType.java b/library/src/main/java/com/pengrad/telegrambot/model/reaction/ReactionType.java index 93150887..3d5ff9f0 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/reaction/ReactionType.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/reaction/ReactionType.java @@ -1,8 +1,10 @@ package com.pengrad.telegrambot.model.reaction; +import java.io.Serializable; import java.util.Objects; -public abstract class ReactionType { +public class ReactionType implements Serializable { + private final static long serialVersionUID = 0L; private final String type; @@ -30,7 +32,7 @@ public int hashCode() { @Override public String toString() { return "ReactionType{" + - "type='" + type + '\'' + - '}'; + "type='" + type + '\'' + + '}'; } } diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartner.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartner.java index b7628461..75ab042f 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartner.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartner.java @@ -3,7 +3,7 @@ import java.io.Serializable; import java.util.Objects; -public abstract class TransactionPartner implements Serializable { +public class TransactionPartner implements Serializable { private final static long serialVersionUID = 0L; diff --git a/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalState.java b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalState.java index 09e0ee71..ee5aefd7 100644 --- a/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalState.java +++ b/library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalState.java @@ -1,17 +1,15 @@ package com.pengrad.telegrambot.model.stars.withdrawal; -import com.pengrad.telegrambot.model.chatbackground.BackgroundFill; - import java.io.Serializable; import java.util.Objects; -public abstract class RevenueWithdrawalState implements Serializable { +public class RevenueWithdrawalState implements Serializable { private final static long serialVersionUID = 0L; private String type = "unknown"; - protected RevenueWithdrawalState(String type) { + public RevenueWithdrawalState(String type) { this.type = type; } diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/BackgroundFillAdapter.java b/library/src/main/java/com/pengrad/telegrambot/utility/gson/BackgroundFillAdapter.java index 8ebe2123..6c3bba90 100644 --- a/library/src/main/java/com/pengrad/telegrambot/utility/gson/BackgroundFillAdapter.java +++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/BackgroundFillAdapter.java @@ -13,7 +13,8 @@ public class BackgroundFillAdapter implements JsonDeserializer { @Override public BackgroundFill deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { JsonObject object = element.getAsJsonObject(); - String discriminator = object.getAsJsonPrimitive("type").getAsString(); + JsonPrimitive primitive = object.getAsJsonPrimitive("type"); + String discriminator = primitive != null ? primitive.getAsString() : "unknown"; if (BackgroundFillSolid.TYPE.equals(discriminator)) { return context.deserialize(object, BackgroundFillSolid.class); @@ -23,6 +24,6 @@ public BackgroundFill deserialize(JsonElement element, Type type, JsonDeserializ return context.deserialize(object, BackgroundFillFreeformGradient.class); } - return context.deserialize(object, BackgroundFill.class); + return new BackgroundFill(discriminator); } } diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/BackgroundTypeAdapter.java b/library/src/main/java/com/pengrad/telegrambot/utility/gson/BackgroundTypeAdapter.java index cf0100ab..bfb8af8a 100644 --- a/library/src/main/java/com/pengrad/telegrambot/utility/gson/BackgroundTypeAdapter.java +++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/BackgroundTypeAdapter.java @@ -14,7 +14,8 @@ public class BackgroundTypeAdapter implements JsonDeserializer { @Override public BackgroundType deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { JsonObject object = element.getAsJsonObject(); - String discriminator = object.getAsJsonPrimitive("type").getAsString(); + JsonPrimitive primitive = object.getAsJsonPrimitive("type"); + String discriminator = primitive != null ? primitive.getAsString() : "unknown"; if (BackgroundTypeFill.TYPE.equals(discriminator)) { return context.deserialize(object, BackgroundTypeFill.class); @@ -26,6 +27,6 @@ public BackgroundType deserialize(JsonElement element, Type type, JsonDeserializ return context.deserialize(object, BackgroundTypeChatTheme.class); } - return context.deserialize(object, BackgroundType.class); + return new BackgroundType(discriminator); } } diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/ChatBoostSourceTypeAdapter.java b/library/src/main/java/com/pengrad/telegrambot/utility/gson/ChatBoostSourceTypeAdapter.java index 72a8cb4b..290e1857 100644 --- a/library/src/main/java/com/pengrad/telegrambot/utility/gson/ChatBoostSourceTypeAdapter.java +++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/ChatBoostSourceTypeAdapter.java @@ -13,7 +13,8 @@ public class ChatBoostSourceTypeAdapter implements JsonDeserializer @Override public MessageOrigin deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { JsonObject object = element.getAsJsonObject(); - String discriminator = object.getAsJsonPrimitive("type").getAsString(); + JsonPrimitive primitive = object.getAsJsonPrimitive("type"); + String discriminator = primitive != null ? primitive.getAsString() : "unknown"; if (MessageOriginChannel.MESSAGE_ORIGIN_TYPE.equals(discriminator)) { return context.deserialize(object, MessageOriginChannel.class); @@ -22,6 +23,6 @@ public MessageOrigin deserialize(JsonElement element, Type type, JsonDeserializa return context.deserialize(object, MessageOriginUser.class); } - return context.deserialize(object, MessageOrigin.class); + return new MessageOrigin(discriminator); } } diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/PaidMediaTypeAdapter.java b/library/src/main/java/com/pengrad/telegrambot/utility/gson/PaidMediaTypeAdapter.java index c99b39c4..968a3b7f 100644 --- a/library/src/main/java/com/pengrad/telegrambot/utility/gson/PaidMediaTypeAdapter.java +++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/PaidMediaTypeAdapter.java @@ -13,7 +13,8 @@ public class PaidMediaTypeAdapter implements JsonDeserializer { @Override public PaidMedia deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { JsonObject object = element.getAsJsonObject(); - String discriminator = object.getAsJsonPrimitive("type").getAsString(); + JsonPrimitive primitive = object.getAsJsonPrimitive("type"); + String discriminator = primitive != null ? primitive.getAsString() : "unknown"; if (PaidMediaPreview.TYPE.equals(discriminator)) { return context.deserialize(object, PaidMediaPreview.class); @@ -23,6 +24,6 @@ public PaidMedia deserialize(JsonElement element, Type type, JsonDeserialization return context.deserialize(object, PaidMediaVideo.class); } - return context.deserialize(object, PaidMedia.class); + return new PaidMedia(discriminator); } } diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/ReactionTypeAdapter.java b/library/src/main/java/com/pengrad/telegrambot/utility/gson/ReactionTypeAdapter.java index 69aff521..a175ff89 100644 --- a/library/src/main/java/com/pengrad/telegrambot/utility/gson/ReactionTypeAdapter.java +++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/ReactionTypeAdapter.java @@ -12,7 +12,8 @@ public class ReactionTypeAdapter implements JsonDeserializer { @Override public ReactionType deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException { JsonObject object = element.getAsJsonObject(); - String discriminator = object.getAsJsonPrimitive("type").getAsString(); + JsonPrimitive primitive = object.getAsJsonPrimitive("type"); + String discriminator = primitive != null ? primitive.getAsString() : "unknown"; if (ReactionTypeEmoji.EMOJI_TYPE.equals(discriminator)) { return context.deserialize(object, ReactionTypeEmoji.class); @@ -20,6 +21,6 @@ public ReactionType deserialize(JsonElement element, Type type, JsonDeserializat return context.deserialize(object, ReactionTypeCustomEmoji.class); } - return context.deserialize(object, ReactionType.class); + return new ReactionType(discriminator); } } diff --git a/library/src/main/java/com/pengrad/telegrambot/utility/gson/RevenueWithdrawalStateTypeAdapter.java b/library/src/main/java/com/pengrad/telegrambot/utility/gson/RevenueWithdrawalStateTypeAdapter.java index a5376fad..93893de9 100644 --- a/library/src/main/java/com/pengrad/telegrambot/utility/gson/RevenueWithdrawalStateTypeAdapter.java +++ b/library/src/main/java/com/pengrad/telegrambot/utility/gson/RevenueWithdrawalStateTypeAdapter.java @@ -13,7 +13,8 @@ public class RevenueWithdrawalStateTypeAdapter implements JsonDeserializer -