Skip to content

Commit ba791f7

Browse files
committed
Fix Gson type adapters fallbacks
1 parent dcb52ff commit ba791f7

18 files changed

Lines changed: 67 additions & 29 deletions

library/src/main/java/com/pengrad/telegrambot/model/chatbackground/BackgroundFill.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.util.Objects;
44

5-
public abstract class BackgroundFill {
5+
public class BackgroundFill {
66

77
private final String type;
88

library/src/main/java/com/pengrad/telegrambot/model/chatbackground/BackgroundType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import java.util.Objects;
44

5-
public abstract class BackgroundType {
5+
public class BackgroundType {
66

77
private final String type;
88

library/src/main/java/com/pengrad/telegrambot/model/chatboost/source/ChatBoostSource.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ public class ChatBoostSource implements Serializable {
1212
protected String source;
1313
protected User user;
1414

15+
ChatBoostSource() {
16+
}
17+
18+
public ChatBoostSource(String source) {
19+
this.source = source;
20+
}
21+
1522
@Override
1623
public boolean equals(Object o) {
1724
if (this == o) return true;

library/src/main/java/com/pengrad/telegrambot/model/paidmedia/PaidMedia.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.io.Serializable;
44
import java.util.Objects;
55

6-
public abstract class PaidMedia implements Serializable {
6+
public class PaidMedia implements Serializable {
77

88
private final static long serialVersionUID = 0L;
99

library/src/main/java/com/pengrad/telegrambot/model/reaction/ReactionType.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package com.pengrad.telegrambot.model.reaction;
22

3+
import java.io.Serializable;
34
import java.util.Objects;
45

5-
public abstract class ReactionType {
6+
public class ReactionType implements Serializable {
7+
private final static long serialVersionUID = 0L;
68

79
private final String type;
810

@@ -30,7 +32,7 @@ public int hashCode() {
3032
@Override
3133
public String toString() {
3234
return "ReactionType{" +
33-
"type='" + type + '\'' +
34-
'}';
35+
"type='" + type + '\'' +
36+
'}';
3537
}
3638
}

library/src/main/java/com/pengrad/telegrambot/model/stars/partner/TransactionPartner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import java.io.Serializable;
44
import java.util.Objects;
55

6-
public abstract class TransactionPartner implements Serializable {
6+
public class TransactionPartner implements Serializable {
77

88
private final static long serialVersionUID = 0L;
99

library/src/main/java/com/pengrad/telegrambot/model/stars/withdrawal/RevenueWithdrawalState.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,15 @@
11
package com.pengrad.telegrambot.model.stars.withdrawal;
22

3-
import com.pengrad.telegrambot.model.chatbackground.BackgroundFill;
4-
53
import java.io.Serializable;
64
import java.util.Objects;
75

8-
public abstract class RevenueWithdrawalState implements Serializable {
6+
public class RevenueWithdrawalState implements Serializable {
97

108
private final static long serialVersionUID = 0L;
119

1210
private String type = "unknown";
1311

14-
protected RevenueWithdrawalState(String type) {
12+
public RevenueWithdrawalState(String type) {
1513
this.type = type;
1614
}
1715

library/src/main/java/com/pengrad/telegrambot/utility/gson/BackgroundFillAdapter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ public class BackgroundFillAdapter implements JsonDeserializer<BackgroundFill> {
1313
@Override
1414
public BackgroundFill deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException {
1515
JsonObject object = element.getAsJsonObject();
16-
String discriminator = object.getAsJsonPrimitive("type").getAsString();
16+
JsonPrimitive primitive = object.getAsJsonPrimitive("type");
17+
String discriminator = primitive != null ? primitive.getAsString() : "unknown";
1718

1819
if (BackgroundFillSolid.TYPE.equals(discriminator)) {
1920
return context.deserialize(object, BackgroundFillSolid.class);
@@ -23,6 +24,6 @@ public BackgroundFill deserialize(JsonElement element, Type type, JsonDeserializ
2324
return context.deserialize(object, BackgroundFillFreeformGradient.class);
2425
}
2526

26-
return context.deserialize(object, BackgroundFill.class);
27+
return new BackgroundFill(discriminator);
2728
}
2829
}

library/src/main/java/com/pengrad/telegrambot/utility/gson/BackgroundTypeAdapter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ public class BackgroundTypeAdapter implements JsonDeserializer<BackgroundType> {
1414
@Override
1515
public BackgroundType deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException {
1616
JsonObject object = element.getAsJsonObject();
17-
String discriminator = object.getAsJsonPrimitive("type").getAsString();
17+
JsonPrimitive primitive = object.getAsJsonPrimitive("type");
18+
String discriminator = primitive != null ? primitive.getAsString() : "unknown";
1819

1920
if (BackgroundTypeFill.TYPE.equals(discriminator)) {
2021
return context.deserialize(object, BackgroundTypeFill.class);
@@ -26,6 +27,6 @@ public BackgroundType deserialize(JsonElement element, Type type, JsonDeserializ
2627
return context.deserialize(object, BackgroundTypeChatTheme.class);
2728
}
2829

29-
return context.deserialize(object, BackgroundType.class);
30+
return new BackgroundType(discriminator);
3031
}
3132
}

library/src/main/java/com/pengrad/telegrambot/utility/gson/ChatBoostSourceTypeAdapter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ public class ChatBoostSourceTypeAdapter implements JsonDeserializer<ChatBoostSou
1313
@Override
1414
public ChatBoostSource deserialize(JsonElement element, Type type, JsonDeserializationContext context) throws JsonParseException {
1515
JsonObject object = element.getAsJsonObject();
16-
String discriminator = object.getAsJsonPrimitive("source").getAsString();
16+
JsonPrimitive primitive = object.getAsJsonPrimitive("source");
17+
String discriminator = primitive != null ? primitive.getAsString() : "unknown";
1718

1819
if (ChatBoostSourceGiftCode.CHAT_BOOST_TYPE.equals(discriminator)) {
1920
return context.deserialize(object, ChatBoostSourceGiftCode.class);
@@ -23,6 +24,6 @@ public ChatBoostSource deserialize(JsonElement element, Type type, JsonDeseriali
2324
return context.deserialize(object, ChatBoostSourcePremium.class);
2425
}
2526

26-
return context.deserialize(object, ChatBoostSource.class);
27+
return new ChatBoostSource(discriminator);
2728
}
2829
}

0 commit comments

Comments
 (0)