ImageSetHandler.java
5.04 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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
/*
* Decompiled with CFR 0_118.
*
* Could not load the following classes:
* com.scene7.is.catalog.util.localization.LocaleMap
* com.scene7.is.provider.ImageSet
* com.scene7.is.provider.JsonResponse
* com.scene7.is.provider.ProcessingStatus
* com.scene7.is.provider.RequestTypeEnum
* com.scene7.is.provider.Response
* com.scene7.is.provider.ResponseData
* com.scene7.is.provider.TextResponseGenerator
* com.scene7.is.provider.TextResponseTypeEnum
* com.scene7.is.sleng.CacheEnum
* com.scene7.is.util.MimeTypeEnum
* com.scene7.is.util.TextEncodingTypeEnum
* com.scene7.is.util.XMLUtil
* com.scene7.is.util.callbacks.Option
* com.scene7.is.util.collections.CollectionUtil
* com.scene7.is.util.collections.MapEntry
* org.jetbrains.annotations.NotNull
*/
package com.scene7.is.ps.provider;
import com.scene7.is.catalog.util.localization.LocaleMap;
import com.scene7.is.provider.ImageSet;
import com.scene7.is.provider.JsonResponse;
import com.scene7.is.provider.ProcessingStatus;
import com.scene7.is.provider.RequestTypeEnum;
import com.scene7.is.provider.Response;
import com.scene7.is.provider.ResponseData;
import com.scene7.is.provider.TextResponseGenerator;
import com.scene7.is.provider.TextResponseTypeEnum;
import com.scene7.is.ps.provider.IZoomException;
import com.scene7.is.ps.provider.ModifierSet;
import com.scene7.is.ps.provider.Request;
import com.scene7.is.ps.provider.RequestHandler;
import com.scene7.is.ps.provider.Util;
import com.scene7.is.ps.provider.defs.ModifierEnum;
import com.scene7.is.sleng.CacheEnum;
import com.scene7.is.util.MimeTypeEnum;
import com.scene7.is.util.TextEncodingTypeEnum;
import com.scene7.is.util.XMLUtil;
import com.scene7.is.util.callbacks.Option;
import com.scene7.is.util.collections.CollectionUtil;
import com.scene7.is.util.collections.MapEntry;
import java.util.HashMap;
import java.util.Map;
import org.jetbrains.annotations.NotNull;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
public class ImageSetHandler
implements RequestHandler {
private static final String CRLF = "\r\n";
private static final String IMAGE_SET_NAME = "IMAGE_SET";
private static final RequestHandler SINGLETON = new ImageSetHandler();
public static RequestHandler apply() {
return SINGLETON;
}
@NotNull
@Override
public Response getResponse(@NotNull Request parsedRequest, @NotNull ProcessingStatus status) throws IZoomException {
ResponseData responseData;
ModifierSet attr = parsedRequest.getGlobalAttributes();
LocaleMap localeMap = parsedRequest.getCatalogValue(ModifierEnum.I_LOCALE_STR_MAP);
String locale = attr.getOrDie(ModifierEnum.LOCALE);
String jsonId = attr.get(ModifierEnum.ID, "");
Option jsonHandler = TextResponseGenerator.callbackToOption((String)attr.get(ModifierEnum.HANDLER, ""));
String imageSet = parsedRequest.getImageSet().generateString(localeMap, locale);
TextResponseTypeEnum responseType = parsedRequest.getResponseType();
TextEncodingTypeEnum responseEncoding = parsedRequest.getResponseEncoding();
switch (responseType) {
case XML: {
Document doc = XMLUtil.createDocument();
Element root = XMLUtil.createElement((Document)doc, (String)"IMAGE_SET");
root.setAttribute("value", imageSet);
doc.appendChild(root);
responseData = ResponseData.createResponseMessage((String)XMLUtil.toXMLString((Document)doc, (TextEncodingTypeEnum)responseEncoding, (boolean)false), (TextEncodingTypeEnum)responseEncoding, (MimeTypeEnum)responseType.getMimeType());
break;
}
case JSON: {
HashMap<String, String> imageSetMap = new HashMap<String, String>();
imageSetMap.put("IMAGE_SET", imageSet);
String jsonResponse = JsonResponse.generateJsonResponse((Option)jsonHandler, imageSetMap, (String)jsonId);
responseData = ResponseData.createResponseMessage((String)jsonResponse, (TextEncodingTypeEnum)responseEncoding, (MimeTypeEnum)responseType.getMimeType());
break;
}
case JAVASCRIPT: {
Map imageSetMap = CollectionUtil.mapOf((MapEntry[])new MapEntry[]{CollectionUtil.mapEntry((Object)"IMAGE_SET", (Object)imageSet)});
byte[] data = TextResponseGenerator.generate((Map)imageSetMap, (TextResponseTypeEnum)responseType, (String)jsonId, (String)((String)jsonHandler.getOrElse((Object)"")));
responseData = ResponseData.createResponseData((byte[])data, (MimeTypeEnum)responseType.getMimeType());
break;
}
default: {
responseData = ResponseData.createResponseMessage((String)(imageSet + "\r\n"), (MimeTypeEnum)MimeTypeEnum.TEXT_PLAIN);
}
}
long expiration = Util.computeNonImgExpiration(parsedRequest);
return new Response().setData(responseData).setExpiration(expiration).setClientCacheUse(CacheEnum.ON).setRequestType(parsedRequest.getType());
}
}