FvctxRequestBuilderImpl.java
3.11 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
/*
* 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);
}
}