TntExperienceAdapterFactory.java
2.73 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* com.google.gson.JsonArray
* com.google.gson.JsonElement
* com.google.gson.JsonObject
* com.google.gson.JsonPrimitive
*/
package com.day.cq.analytics.testandtarget.impl.serializer;
import com.day.cq.analytics.testandtarget.impl.TestandtargetSegment;
import com.day.cq.analytics.testandtarget.impl.model.TestandtargetExperience;
import com.day.cq.analytics.testandtarget.impl.model.TestandtargetOffer;
import com.day.cq.analytics.testandtarget.impl.model.TntMbox;
import com.day.cq.analytics.testandtarget.impl.serializer.CustomTypeAdapterFactory;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonPrimitive;
import java.util.List;
public class TntExperienceAdapterFactory
extends CustomTypeAdapterFactory<TestandtargetExperience> {
public static final TntExperienceAdapterFactory INSTANCE = new TntExperienceAdapterFactory();
private TntExperienceAdapterFactory() {
super(TestandtargetExperience.class);
}
@Override
protected void beforeWrite(TestandtargetExperience source, JsonElement toSerialize) {
List<TestandtargetOffer> offers;
List<TestandtargetSegment> segments = source.getSegments();
if (!segments.isEmpty()) {
this.writeSegments(segments, toSerialize);
}
if (!(offers = source.getOffers()).isEmpty()) {
this.writeOffers(offers, toSerialize);
}
}
@Override
protected void afterRead(JsonElement deserialized) {
CustomTypeAdapterFactory.super.afterRead(deserialized);
}
private void writeSegments(List<TestandtargetSegment> segments, JsonElement toSerialize) {
JsonArray segmentIds = new JsonArray();
for (TestandtargetSegment s : segments) {
segmentIds.add((JsonElement)new JsonPrimitive((Number)s.getSegmentId()));
}
JsonObject custom = toSerialize.getAsJsonObject();
custom.add("segmentIds", (JsonElement)segmentIds);
}
private void writeOffers(List<TestandtargetOffer> offers, JsonElement toSerialize) {
JsonArray offerLocations = new JsonArray();
for (TestandtargetOffer o : offers) {
TntMbox mbox = o.getTntMbox();
JsonObject offerLocation = new JsonObject();
offerLocation.add("offerId", (JsonElement)new JsonPrimitive((Number)o.getOfferId()));
offerLocation.add("locationLocalId", (JsonElement)new JsonPrimitive((Number)mbox.getLocationLocalId()));
offerLocations.add((JsonElement)offerLocation);
}
JsonObject custom = toSerialize.getAsJsonObject();
custom.add("offerLocations", (JsonElement)offerLocations);
}
}