FvctxImageSetRequest.java 3.44 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.provider.ImageSet
 *  com.scene7.is.provider.catalog.Catalog
 *  com.scene7.is.provider.catalog.ObjectRecord
 *  com.scene7.is.util.error.ApplicationException
 *  org.jetbrains.annotations.NotNull
 */
package com.scene7.is.ps.provider.fvctx;

import com.scene7.is.provider.ImageSet;
import com.scene7.is.provider.catalog.Catalog;
import com.scene7.is.provider.catalog.ObjectRecord;
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.defs.ModifierEnum;
import com.scene7.is.ps.provider.fvctx.FvctxNode;
import com.scene7.is.ps.provider.fvctx.FvctxNodeFrameRequestExtractor;
import com.scene7.is.ps.provider.fvctx.FvctxPipelineBuilderImpl;
import com.scene7.is.ps.provider.fvctx.FvctxPipelineProcessor;
import com.scene7.is.ps.provider.fvctx.FvctxRequestBuilder;
import com.scene7.is.ps.provider.fvctx.FvctxUtil;
import com.scene7.is.util.error.ApplicationException;
import java.util.List;
import org.jetbrains.annotations.NotNull;

public class FvctxImageSetRequest {
    @NotNull
    public final Request request;
    @NotNull
    public final ImageSet imageset;

    public static FvctxImageSetRequest createImageSetRequest(@NotNull Request request, @NotNull FvctxRequestBuilder requestBuilder) throws ApplicationException {
        ModifierSet attr = request.getGlobalAttributes();
        ImageSet imageSet = FvctxUtil.filterEmptyFrames(attr.get(ModifierEnum.IMAGESET, ImageSet.imageSet()));
        if (imageSet.isEmpty()) {
            return new FvctxImageSetRequest(request, FvctxUtil.filterEmptyFrames(request.getImageSet()));
        }
        if (imageSet.size() == 1) {
            Catalog mainCatalog = request.getRecord().getCatalog();
            List<Request> requests = FvctxImageSetRequest.getFrameRequests(mainCatalog, imageSet, requestBuilder);
            assert (requests.size() == 1);
            Request r = requests.get(0);
            String query = request.getGlobalAttributes().get(ModifierEnum.I_NET_QUERY, null);
            if (query != null && !query.isEmpty()) {
                r.getGlobalAttributes().set(ModifierEnum.I_NET_QUERY, query);
            }
            if (!r.getImageSet().isEmpty()) {
                return new FvctxImageSetRequest(r, r.getImageSet());
            }
        }
        return new FvctxImageSetRequest(request, imageSet);
    }

    public boolean isEmpty() {
        return this.request.isEmptyImageRequest() && this.imageset.isEmpty();
    }

    public boolean isSingleImage() {
        return !this.request.isEmptyImageRequest() && this.imageset.isEmpty();
    }

    public boolean isImageSet() {
        return !this.imageset.isEmpty();
    }

    private FvctxImageSetRequest(@NotNull Request request, @NotNull ImageSet imageset) {
        this.request = request;
        this.imageset = imageset;
    }

    @NotNull
    static List<Request> getFrameRequests(@NotNull Catalog catalog, @NotNull ImageSet imageset, @NotNull FvctxRequestBuilder requestBuilder) throws IZoomException {
        FvctxNodeFrameRequestExtractor requestExtractor = new FvctxNodeFrameRequestExtractor();
        FvctxNode pipeline = FvctxPipelineBuilderImpl.createRequestBuilderPipeline(catalog, requestBuilder, requestExtractor);
        FvctxPipelineProcessor.processImageSet(imageset, pipeline);
        return requestExtractor.getFrameRequests();
    }
}