FvctxRequestBuilderImpl.java 3.11 KB
/*
 * Decompiled with CFR 0_118.
 * 
 * Could not load the following classes:
 *  com.scene7.is.catalog.util.IPAddressFilter
 *  com.scene7.is.catalog.util.ObjectTypeEnum
 *  com.scene7.is.provider.RequestContext
 *  com.scene7.is.provider.RequestContextEnum
 *  com.scene7.is.provider.catalog.Catalog
 *  com.scene7.is.provider.ruleset.RuleListProcessor
 *  com.scene7.is.provider.ruleset.RuleSetResults
 *  com.scene7.is.util.callbacks.Option
 *  com.scene7.is.util.error.ApplicationException
 *  org.jetbrains.annotations.NotNull
 */
package com.scene7.is.ps.provider.fvctx;

import com.scene7.is.catalog.util.IPAddressFilter;
import com.scene7.is.catalog.util.ObjectTypeEnum;
import com.scene7.is.provider.RequestContext;
import com.scene7.is.provider.RequestContextEnum;
import com.scene7.is.provider.catalog.Catalog;
import com.scene7.is.provider.ruleset.RuleListProcessor;
import com.scene7.is.provider.ruleset.RuleSetResults;
import com.scene7.is.ps.provider.ModifierSet;
import com.scene7.is.ps.provider.Request;
import com.scene7.is.ps.provider.RequestBuilder;
import com.scene7.is.ps.provider.RequestBuilderUtil;
import com.scene7.is.ps.provider.defs.ModifierEnum;
import com.scene7.is.ps.provider.fvctx.FvctxRequestBuilder;
import com.scene7.is.util.callbacks.Option;
import com.scene7.is.util.error.ApplicationException;
import java.util.Collection;
import java.util.List;
import org.jetbrains.annotations.NotNull;

public class FvctxRequestBuilderImpl
implements FvctxRequestBuilder {
    @NotNull
    private final RequestBuilder requestBuilder;
    @NotNull
    private final RequestContext context;
    @NotNull
    private final String publicQuery;
    @NotNull
    private final String remoteAddress;

    public FvctxRequestBuilderImpl(@NotNull RequestBuilder requestBuilder, @NotNull RequestContext context, @NotNull Request request) {
        this.requestBuilder = requestBuilder;
        this.context = context;
        ModifierSet attr = request.getGlobalAttributes();
        this.publicQuery = attr.getOrDie(ModifierEnum.I_NET_QUERY);
        this.remoteAddress = attr.getOrDie(ModifierEnum.I_REMOTE_ADDRESS);
    }

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

    @NotNull
    @Override
    public Request buildRequest(@NotNull String path, @NotNull String query) throws ApplicationException {
        RequestContext nestedContext = this.context.getNestedContext(path, query, null);
        Catalog catalog = nestedContext.getCatalog();
        String imageId = RequestBuilderUtil.parseImageId(catalog, path);
        String imageQuery = query + '&' + this.publicQuery;
        RuleSetResults ruleSetResults = RuleListProcessor.processRuleSet((Iterable)catalog.getRules(), (String)imageId, (String)imageQuery, (String)this.remoteAddress, (RequestContextEnum)RequestContextEnum.IS, (Option)this.context.getIPAddressOverride(), this.requestBuilder.getAllowIPOverrideAddressList());
        return this.requestBuilder.buildRequest(nestedContext, ruleSetResults, this.remoteAddress, false);
    }
}