FvctxPipelineBuilderImpl.java 4.61 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.provider.catalog.Catalog
 *  org.jetbrains.annotations.NotNull
 */
package com.scene7.is.ps.provider.fvctx;

import com.scene7.is.provider.catalog.Catalog;
import com.scene7.is.ps.provider.Request;
import com.scene7.is.ps.provider.fvctx.FvctxImagePropsBuilder;
import com.scene7.is.ps.provider.fvctx.FvctxNode;
import com.scene7.is.ps.provider.fvctx.FvctxNodeCanonicalizeImagePath;
import com.scene7.is.ps.provider.fvctx.FvctxNodeDefaultSwatches;
import com.scene7.is.ps.provider.fvctx.FvctxNodeFrame;
import com.scene7.is.ps.provider.fvctx.FvctxNodeFrameset;
import com.scene7.is.ps.provider.fvctx.FvctxNodeFramesetNesting;
import com.scene7.is.ps.provider.fvctx.FvctxNodeImageProps;
import com.scene7.is.ps.provider.fvctx.FvctxNodeInlineNesting;
import com.scene7.is.ps.provider.fvctx.FvctxNodeRequestBuilder;
import com.scene7.is.ps.provider.fvctx.FvctxPipelineBuilder;
import com.scene7.is.ps.provider.fvctx.FvctxRequestBuilder;
import com.scene7.is.ps.provider.fvctx.MediaSetNodeFrame;
import com.scene7.is.ps.provider.fvctx.MediaSetNodeInlineNesting;
import com.scene7.is.ps.provider.fvctx.MediaSetNodeItem;
import com.scene7.is.ps.provider.fvctx.MediaSetNodeSetNesting;
import org.jetbrains.annotations.NotNull;

class FvctxPipelineBuilderImpl
implements FvctxPipelineBuilder {
    @NotNull
    private final FvctxRequestBuilder requestBuilder;
    @NotNull
    private final FvctxImagePropsBuilder imagePropsBuilder;
    @NotNull
    private final FvctxNode outputNode;
    private final int maxFramesPerSet;

    FvctxPipelineBuilderImpl(@NotNull FvctxRequestBuilder requestBuilder, @NotNull FvctxImagePropsBuilder imagePropsBuilder, @NotNull FvctxNode outputNode, int maxFramesPerSet) {
        this.requestBuilder = requestBuilder;
        this.imagePropsBuilder = imagePropsBuilder;
        this.outputNode = outputNode;
        this.maxFramesPerSet = maxFramesPerSet;
    }

    @NotNull
    @Override
    public FvctxNode createSingleImagePipeline() {
        return new FvctxNodeImageProps(this.requestBuilder, this.imagePropsBuilder, new FvctxNodeFrame(new FvctxNodeFrameset(this.maxFramesPerSet, this.outputNode)));
    }

    @NotNull
    @Override
    public FvctxNode createSingleImageMediaSetPipeline(@NotNull Catalog catalog) {
        return FvctxPipelineBuilderImpl.createRequestBuilderPipeline(catalog, this.requestBuilder, new FvctxNodeImageProps(this.requestBuilder, this.imagePropsBuilder, new MediaSetNodeFrame(this.outputNode)));
    }

    @NotNull
    @Override
    public FvctxNode createVideoPipeline(@NotNull Catalog catalog) {
        return FvctxPipelineBuilderImpl.createRequestBuilderPipeline(catalog, this.requestBuilder, new FvctxNodeImageProps(this.requestBuilder, this.imagePropsBuilder, new MediaSetNodeFrame(this.outputNode)));
    }

    @NotNull
    @Override
    public FvctxNode createVideoMediaSetPipeline(@NotNull Catalog catalog) {
        return FvctxPipelineBuilderImpl.createRequestBuilderPipeline(catalog, this.requestBuilder, new FvctxNodeImageProps(this.requestBuilder, this.imagePropsBuilder, new MediaSetNodeFrame(new MediaSetNodeItem(this.outputNode))));
    }

    @NotNull
    @Override
    public FvctxNode createImageSetPipeline(@NotNull Catalog catalog) {
        return new FvctxNodeInlineNesting(catalog, this, FvctxPipelineBuilderImpl.createRequestBuilderPipeline(catalog, this.requestBuilder, new FvctxNodeImageProps(this.requestBuilder, this.imagePropsBuilder, new FvctxNodeDefaultSwatches(new FvctxNodeFrame(new FvctxNodeFrameset(this.maxFramesPerSet, new FvctxNodeFramesetNesting(this, this.outputNode)))))));
    }

    @NotNull
    @Override
    public FvctxNode createImageSetMediaSetPipeline(@NotNull Catalog catalog) {
        return new MediaSetNodeInlineNesting(catalog, this, FvctxPipelineBuilderImpl.createRequestBuilderPipeline(catalog, this.requestBuilder, new FvctxNodeImageProps(this.requestBuilder, this.imagePropsBuilder, new MediaSetNodeFrame(new MediaSetNodeSetNesting(this, new MediaSetNodeItem(this.outputNode))))));
    }

    @NotNull
    @Override
    public FvctxRequestBuilder createFvctxRequestBuilder(@NotNull Request request) {
        return this.requestBuilder.createFvctxRequestBuilder(request);
    }

    @NotNull
    @Override
    public FvctxRequestBuilder getRequestBuilder() {
        return this.requestBuilder;
    }

    @NotNull
    public static FvctxNode createRequestBuilderPipeline(@NotNull Catalog catalog, @NotNull FvctxRequestBuilder requestBuilder, @NotNull FvctxNode outputNode) {
        return new FvctxNodeCanonicalizeImagePath(catalog, new FvctxNodeRequestBuilder(requestBuilder, outputNode));
    }
}