• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

stripe / stripe-java / #16493

03 Oct 2024 07:15PM UTC coverage: 12.942% (+0.08%) from 12.864%
#16493

push

github

web-flow
Merge Stripe-java v27.0.0 to beta branch (#1888)

409 of 1651 new or added lines in 88 files covered. (24.77%)

31 existing lines in 7 files now uncovered.

18773 of 145050 relevant lines covered (12.94%)

0.13 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

91.67
/src/main/java/com/stripe/model/v2/EventTypeAdapterFactory.java
1
package com.stripe.model.v2;
2

3
import com.google.gson.*;
4
import com.google.gson.reflect.TypeToken;
5
import com.google.gson.stream.JsonReader;
6
import com.google.gson.stream.JsonWriter;
7
import java.io.IOException;
8
import java.util.LinkedHashMap;
9
import java.util.Map;
10

11
public final class EventTypeAdapterFactory implements TypeAdapterFactory {
1✔
12
  @Override
13
  public <R> TypeAdapter<R> create(Gson gson, TypeToken<R> type) {
14
    if (type == null) {
1✔
NEW
15
      return null;
×
16
    }
17

18
    if (!Event.class.equals(type.getRawType())) {
1✔
19
      return null;
1✔
20
    }
21

22
    final TypeAdapter<JsonElement> elementAdapter = gson.getAdapter(JsonElement.class);
1✔
23
    final TypeAdapter<R> fallbackAdapter = gson.getDelegateAdapter(this, type);
1✔
24
    final Map<String, TypeAdapter<?>> eventAdapters = new LinkedHashMap<>();
1✔
25

26
    for (Map.Entry<String, Class<? extends Event>> entry :
27
        EventDataClassLookup.eventClassLookup.entrySet()) {
1✔
28
      TypeAdapter<?> delegate = gson.getDelegateAdapter(this, TypeToken.get(entry.getValue()));
1✔
29
      eventAdapters.put(entry.getKey(), delegate);
1✔
30
    }
1✔
31

32
    return new TypeAdapter<R>() {
1✔
33
      @Override
34
      @SuppressWarnings("unchecked")
35
      public R read(JsonReader in) throws IOException {
36
        JsonElement jsonElement = elementAdapter.read(in);
1✔
37
        JsonElement typeElement = jsonElement.getAsJsonObject().get("type");
1✔
38

39
        TypeAdapter<R> selectedAdapter = null;
1✔
40

41
        if (typeElement != null && !typeElement.isJsonNull()) {
1✔
42
          String eventType = typeElement.getAsString();
1✔
43
          selectedAdapter = (TypeAdapter<R>) eventAdapters.get(eventType);
1✔
44
        }
45

46
        if (selectedAdapter == null) {
1✔
47
          selectedAdapter = fallbackAdapter;
1✔
48
        }
49

50
        return selectedAdapter.fromJsonTree(jsonElement);
1✔
51
      }
52

53
      @Override
54
      public void write(JsonWriter out, R value) throws IOException {
NEW
55
        throw new UnsupportedOperationException();
×
56
      }
57
    }.nullSafe();
1✔
58
  }
59
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc