ImageSetHandler.java 5.04 KB
/*
 * 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());
    }

}